Захотелось сделать свой инвентарь на фрэймах, только вон никак не могу найти способ отобразить модель героя. Желательно с возможностью вращать и масштабировать.
DGUI не предлагать.

Принятый ответ

вопрос очень актуален

кароче
модель которую мы хотим отобразить, нужно сначала отредактировать
на всякий случай, нужно удалить все камеры внутри модели
сделать все материалы незатененными
сделать глобальную анимацию, в которой используя имеющуюся рут кость (к которой прикрепляются все остальные кости), либо, сделав новую рут кость и прикрепить старую к ней, повернуть модель сначала на 90 градусов вправо относительно лица, затем "назад" на спину на 90, так что бы если вы включили позицию камеры сверху, модель была прямо перед вами
сделать в той же глобальной анимации скейлинг на рут кости на 1 от оригинала в 100
в самой игре, сделать фрейм по типу спрайта использовав и наследовав вар3лого
new_Frame = BlzCreateFrameByType("SPRITE", "justAName", GAME_UI, "WarCraftIIILogo", 0)
настраивать размер можно через
BlzFrameSetScale(new_Frame, 0.15)
учтите что модель может быть все еще огромна для экрана, так что используйте минимальные скейлы, убедитесь что она есть где то на экране
BlzFrameSetSize(new_Frame, 0.35,0.35)
BlzFrameSetAbsPoint(new_Frame, FRAMEPOINT_CENTER, 0.4, 0.3)
задав размер, можно менять положение на какое угодно
BlzFrameSetModel(new_Frame, "war3mapImported\\myModel.mdx", 0)
прописывать нужно модель как обычно, двойными слешами и с путем как обычно в импорте
BlzFrameSetSpriteAnimate(new_Frame, 3, 0)
воспроизводит анимацию модели по индексу, узнать их можно сконвертировав модель в MDL и открыв через блокнот посмотреть какая анимация в списке, начиная с нуля сверху вниз, последняя цифра в функции скорее всего зациклить ли анимацию, не тестил.
сама модель воспроизводит постоянно Stand 1
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
24
5 лет назад
Отредактирован prog
0
Есть нативка BlzFrameSetModel. К сожалению, вращать и масштабировать не выйдет т.к. идет привязка к камере в модели, до которой вроде как невозможно добраться имеющимися способами. И фрейм вроде как нужен правильный для этого.
0
29
5 лет назад
0
noyl, вы вопрос читали? Создавать фрэймы я умею.
Есть нативка BlzFrameSetModel
Нативку я нашёл, но не к каждому фрэйму она применима.
И фрейм вроде как нужен правильный для этого.
Написал парсер фрэймов, чтоб каждый не открывать. Скорей всего, нужен фрэйм с типом MODEL, например
Frame "MODEL" "ScoreScreenBackground" {
			BackgroundArt "UI\Glues\ScoreScreen\ScoreScreen-Background\ScoreScreen-Background.mdl",
			SetAllPoints,
			LayerStyle "NOSHADING",
		}
Как будет время, буду тестировать и отпишусь о результатах.
3
29
5 лет назад
Отредактирован nazarpunk
3
Итак выудил из комментариев карту с моделью кампании на весь экран. Как и думал, копать нужно в сторону фрэймов с типом MODEL.
library UItest initializer init

	globals
		private framehandle gameUI
		private framehandle customUI
		private framehandle customUI_Backdrop
		private framehandle editbox
		private framehandle editbox_Backdrop
		private integer case = 0
	endglobals
	
	private function act takes nothing returns nothing
		if case == 0 then
			call BlzFrameSetVisible(editbox, false)
			set case = 1
		elseif case == 1 then
			call BlzFrameSetVisible(editbox, true)
			set case = 0
		endif
	endfunction
	private function init takes nothing returns nothing
		local trigger tr = CreateTrigger()
		
		set gameUI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
		set customUI = BlzCreateFrameByType("MENU", "customUI", gameUI, "StandardPopupMenuMenuTemplate", 0)
		call BlzFrameSetSize(customUI, 0.032, 0.032)
		call BlzFrameSetPoint(customUI, FRAMEPOINT_BOTTOM, gameUI, FRAMEPOINT_BOTTOM, 0.0, 0.12)
		set editbox = BlzCreateFrameByType("SPRITE", "SlidingDoors", customUI, "StandardFrameTemplate", 0)
		call BlzFrameSetPoint(editbox, FRAMEPOINT_CENTER, customUI, FRAMEPOINT_CENTER, 0.0, 0.0)
		call BlzFrameSetModel(editbox, "UI\\Glues\\Singleplayer\\Nightelfcampaign3d\\nightelfcampaign3d.mdx", 0)
	
		call BlzFrameSetSpriteAnimate(editbox, 1, 0)

	endfunction
endlibrary
Начало положено, будем копать дальше.
Загруженные файлы
0
32
5 лет назад
0
Это как то делали с уберсплатами, мб покадровая анимация?
0
29
5 лет назад
0
Это как то делали с уберсплатами, мб покадровая анимация?
Да нет, берётся фрэйм и в него вставляется модель из кампании.
0
32
5 лет назад
0
NazarPunk, раньше это было, задолго до мемхака и патчей близзардов.
0
29
5 лет назад
0
раньше это было, задолго до мемхака и патчей близзардов.
Нативки для создания своего интерфейса?
0
32
5 лет назад
0
NazarPunk, нет, просто трекабли и камеры, но так делали древа талантов как в диабле и системы выбора персонажей и экипировки.
0
26
5 лет назад
0
quq_CCCP, а где можно посмотреть такую систему с трекаблями? А то уже очень давно про них слышал, но единственный пример был отвратительно убог.
0
26
5 лет назад
0
8gabriel8:
quq_CCCP, а где можно посмотреть такую систему с трекаблями? А то уже очень давно про них слышал, но единственный пример был отвратительно убог.
например
1
23
5 лет назад
1
вы на хайве читаете хоть?
Все по палочками... а для модель нужен тип Модель и наследуй и в игре триггерно даем путь
например как создать бар www.hiveworkshop.com/threads/ui-creating-a-bar.316254
врашать нельзя а масташ можно...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.