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

Без ответа.


Просмотров: 593

» Лучшие комментарии


8gabriel8 #1 - 3 месяца назад 0
DGUI не предлагать.
А как ты фреймы тогда сделал? DGUI размещает модельки перед камерой игрока, чтобы казалось, что они являются частью интерфейса. У тебя иначе?
NazarPunk #2 - 3 месяца назад (отредактировано ) 0
А как ты фреймы тогда сделал?
BlzCreateFrameByType() и дальше по накатанной. Скриншот кстати из инвентаря на DGUI, я его для наглядности прикрепил.
Hate #3 - 3 месяца назад 0
8gabriel8:
DGUI не предлагать.
А как ты фреймы тогда сделал? DGUI размещает модельки перед камерой игрока, чтобы казалось, что они являются частью интерфейса. У тебя иначе?
это как бы на последних патчах новые нативки на создание нормального интерфейса
noyl #4 - 3 месяца назад -2
prog #5 - 3 месяца назад (отредактировано ) 0
Есть нативка BlzFrameSetModel. К сожалению, вращать и масштабировать не выйдет т.к. идет привязка к камере в модели, до которой вроде как невозможно добраться имеющимися способами. И фрейм вроде как нужен правильный для этого.
NazarPunk #6 - 3 месяца назад 0
noyl, вы вопрос читали? Создавать фрэймы я умею.
Есть нативка BlzFrameSetModel
Нативку я нашёл, но не к каждому фрэйму она применима.
И фрейм вроде как нужен правильный для этого.
Написал парсер фрэймов, чтоб каждый не открывать. Скорей всего, нужен фрэйм с типом MODEL, например
Frame "MODEL" "ScoreScreenBackground" {
			BackgroundArt "UI\Glues\ScoreScreen\ScoreScreen-Background\ScoreScreen-Background.mdl",
			SetAllPoints,
			LayerStyle "NOSHADING",
		}
Как будет время, буду тестировать и отпишусь о результатах.
NazarPunk #7 - 3 месяца назад (отредактировано ) 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
Начало положено, будем копать дальше.
прикреплены файлы
quq_CCCP #8 - 3 месяца назад 0
Это как то делали с уберсплатами, мб покадровая анимация?
NazarPunk #9 - 3 месяца назад 0
Это как то делали с уберсплатами, мб покадровая анимация?
Да нет, берётся фрэйм и в него вставляется модель из кампании.
quq_CCCP #10 - 3 месяца назад 0
NazarPunk, раньше это было, задолго до мемхака и патчей близзардов.
NazarPunk #11 - 3 месяца назад 0
раньше это было, задолго до мемхака и патчей близзардов.
Нативки для создания своего интерфейса?
quq_CCCP #12 - 3 месяца назад 0
NazarPunk, нет, просто трекабли и камеры, но так делали древа талантов как в диабле и системы выбора персонажей и экипировки.
8gabriel8 #13 - 3 месяца назад 0
quq_CCCP, а где можно посмотреть такую систему с трекаблями? А то уже очень давно про них слышал, но единственный пример был отвратительно убог.
Hate #14 - 3 месяца назад 0
8gabriel8:
quq_CCCP, а где можно посмотреть такую систему с трекаблями? А то уже очень давно про них слышал, но единственный пример был отвратительно убог.
например
pro100master #15 - 3 месяца назад -1
вы на хайве читаете хоть?
Все по палочками... а для модель нужен тип Модель и наследуй и в игре триггерно даем путь
например как создать бар www.hiveworkshop.com/threads/ui-creating-a-bar.316254
врашать нельзя а масташ можно...
NazarPunk #16 - 3 месяца назад 0
вы на хайве читаете хоть?
А вы по своим ссылкам ходите? Там ниразу не сказано ка взять например units\human\HeroMountainKing\HeroMountainKing.mdx и отобразить поверх стандартного интерфейса.
а для модель нужен тип Модель и наследуй и в игре триггерно даем путь
Вы сами пробовали? Попробуйте, вас ждёт много интересного.
pro100master #17 - 3 месяца назад (отредактировано ) -2
NazarPunk, мда! я уже выкладывал
Вот файл
прикреплены файлы
NazarPunk #18 - 3 месяца назад (отредактировано ) 0
мда! я уже выкладывал
Если вы имеете ввиду этот комментарий, то модель не поверх стандартного интерфейса. А если заменить модель на вышеуказанную можно увидеть много чего интересного.
Притом изменить размеры фрейма с моделью никак нельзя.
прикреплены файлы
pro100master #19 - 3 месяца назад -1
NazarPunk, потому что начни уже fdf ковырято как раз он и отвечает наследование фрейма поверх создание..
NazarPunk, там он стоит после наследование оригинала GAME UI на весь экран 100% ширину и высоту..
NazarPunk #20 - 3 месяца назад 0
потому что начни уже fdf ковырято
И какой из .fdf мне расковырять, если модель создаётся не из них?
local GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0)
local MODEL_WRAP = BlzCreateFrameByType("MENU", "", GAME_UI, "StandardPopupMenuMenuTemplate", 0)
BlzFrameSetSize(MODEL_WRAP, 0.000001, 0.000001)
BlzFrameSetPoint(MODEL_WRAP, FRAMEPOINT_CENTER, GAME_UI, FRAMEPOINT_CENTER, 0.0, 0.0)
local MODEL = BlzCreateFrameByType("SPRITE", "", MODEL_WRAP, "StandardFrameTemplate", 0)
BlzFrameSetPoint(MODEL, FRAMEPOINT_CENTER, MODEL_WRAP, FRAMEPOINT_CENTER, 0.0, 0.0)
BlzFrameSetModel(MODEL, "UI\\Glues\\Singleplayer\\Nightelfcampaign3d\\nightelfcampaign3d.mdx", 0)
И как видно из BlzFrameSetSize(MODEL_WRAP, 0.000001, 0.000001) на размер фрэйму вообще наплевать.
pro100master #21 - 3 месяца назад (отредактировано ) 0
NazarPunk, StandardFrameTemplate это наследует от fdf оригинала
SPRITE а есть и MODEL
например это с fdf
потрет в батленет иконка где там клан
Frame "SPRITE" "IconSelectPortrait" {
        Width 0.0900,
        Height 0.09185,
        SetPoint CENTER, "IconSelectPortraitBorder", CENTER, 0.0, 0.0,

        Frame "BACKDROP" "IconSelectPortraitHighlight" {
            SetAllPoints,
            BackdropBlendAll,
            BackdropBackground  "UI\Widgets\BattleNet\bnet-profileportrait-cover.blp",
        }
    }
как видим создаем спрйат а внутри рисуем фон. а во время код внедряем модель и радуем!
А это кинеметик потрет который низу показывает
Frame "FRAME" "CinematicScenePanel" {

        // This is used to hide whatever is below the portrait from showing through.
        Frame "BACKDROP" "CinematicPortraitBackground" {
            Width 0.116,
            Height 0.116,
            SetPoint BOTTOMLEFT, "CinematicPanel", BOTTOMLEFT, 0.014, 0.014,
            DecorateFileNames,
            BackdropBackground  "EscMenuBlankBackground",
        }

        // NOTE: If you change the dimensions or location of the "CinematicPortrait",
        //       then you also need to change the above "CinematicPortraitBackground"
        //       to match those same dimensions.
	    Frame "SPRITE" "CinematicPortrait" {
	        Width 0.116,
	        Height 0.116,
	        SetPoint BOTTOMLEFT, "CinematicPanel", BOTTOMLEFT, 0.014, 0.014,
	    }

	    Frame "BACKDROP" "CinematicPortraitCover" {
	        Width 0.144,
	        Height 0.144,
	    
	        SetPoint BOTTOMLEFT, "CinematicPanel", BOTTOMLEFT, 0.0, 0.0,
	    
	        DecorateFileNames,
	        BackdropTileBackground,
	        BackdropBackground  "EscMenuBlankBackground",
	        BackdropCornerFlags "UL|UR|BL|BR|T|L|B|R",
	        BackdropCornerSize  0.048,
	        BackdropBackgroundSize  0.256,
	        BackdropBackgroundInsets 0.01 0.01 0.01 0.01,
	        BackdropEdgeFile  "EscMenuBorder",
	        BackdropBlendAll,
	    }

	    Frame "TEXT" "CinematicSpeakerText" INHERITS "EscMenuTitleTextTemplate" {
	        SetPoint TOPLEFT, "CinematicPortraitCover", TOPRIGHT, 0.015, -0.035,
	    }
	    
	    Frame "TEXT" "CinematicDialogueText" INHERITS "EscMenuTitleTextTemplate" {
	        Width 0.6,
	        SetPoint TOPLEFT, "CinematicSpeakerText", BOTTOMLEFT, 0.0, -0.004,
	        FontColor 1.0 1.0 1.0,
	    }

    }
NazarPunk #22 - 3 месяца назад 0
pro100master, а почему тогда сразу не взять фрэйм MODEL?
Frame "MODEL" "ScoreScreenBackground" {
	BackgroundArt "UI\Glues\ScoreScreen\ScoreScreen-Background\ScoreScreen-Background.mdl",
	SetAllPoints,
	LayerStyle "NOSHADING",
}
Неработает оно ничерта.

На CinematicScenePanel последняя надежда, его я ещё не проверял.
pro100master #23 - 3 месяца назад 0
NazarPunk, потому что не знаеш как он работает.... SetAllpoint значит на все экран растягивает и модель который загружает из указаный путь файла текстур. Который вы видите фон после победы игры. он там отрисован целиком как и загрузчик модель с текстурами....
NazarPunk, просто тренируйся =) Тот платформер модель с текстурами сделално.
NazarPunk #24 - 3 месяца назад (отредактировано ) 0
потому что не знаеш как он работает.... SetAllpoint значит на все экран растягивает
Если вы такой знаток, то скажите почему именно на этот фрэйм не работает BlzFrameClearAllPoints()?
просто тренируйся =)
Просто отличный совет и как он поможет мне в решении поставленного вопроса?
Тот платформер модель с текстурами сделално.
А это здесь вообще причём?
pro100master #25 - 3 месяца назад 0
Вопрос: BlzFrameClearAllPoints()?
Ответ: www.hiveworkshop.com/threads/ui-positionate-frames.315860
Вопрос: Просто отличный совет и как он поможет мне в решении поставленного вопроса?
Ответ: Ошушение что ты ни разу fdf не создавал под свой настройку моделя...
А последный то что невозможное возможно. старайся!
если не сможеш то завтра я тебе скину пример как починят комп!
NazarPunk #26 - 3 месяца назад (отредактировано ) 0
Ошушение что ты ни разу fdf не создавал под свой настройку моделя...
Если бы создавал, то не завал бы вопросов, логично? А если бы вы хотели помочь, то вместо всей этой писанины уже бы пример сбросили и вопрос был бы закрыт.
то что невозможное возможно. старайся!
Только давайте без розовой мотивационной лапши. Каким образом мне нужно стараться, чтоб получить ответ на поставленный вопрос?