XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Желтая пресса: обучающие статьи
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

 
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Аспекты создания кинематики
Вотъ. Уже существует статья на эту тему, но она не полная. Так что создаю отдельную тему. Она будет потихоньку пополняться пришедшими в голову идеями, а пока - то что есть в наличии. Итак:

Содержание



Триггеры (структура ролика)
Некоторые ухищрения и фишки
Предварительная загрузка файлов (оптимизация, ликвидация тормозов)

» Глава 1: Триггеры
Приветствую, дорогой читатель. Долгих приветствий не будет, сразу тронем с места в карьер.
Чтобы составить правильный ролик, необходимо качественно написать триггеры, которые будут не затормаживая его контролировать как можно больше параметров: в окружающей среде, в действиях героев, например.
Также, триггеры подготавливают сцену для "съёмок" и к последующей игре (сбрасывают установки и сцену, декорации и проч. на игровые умолчания) - в случае, если этот ролик - лишь вводный в игре; запускают задания, музыку и сам геймплэй (будь то собирание бегающих/летающих овец или отстройка лагеря). Необходим также в ряде случаев, пропуск ролика нажатием Esc, что тоже не всегда удаётся :). Ну и наконец, параллельно, в процессе кинематики могут запускаться не в очередь (RunTrigger Action) триггеры, контролирующие тот или иной аспект на карте, добавляющий либо убирающий ту или иную чёрточку в общей картине, будь то создание действующих лиц за кадром для последующего использования, или создание спецэффекта, отрисовывающего проход в иные миры.
Для более детального изучения создания геометрии спецэффектов, зайдите по этой ссылке: ().
Итак, подробнее о триггерах:

СПИСОК ТРИГГЕРОВ, НЕОБХОДИМЫЙ ДЛЯ ЛЮБОЙ КИНЕМАТИКИ:

- <Cinematic name> setup. Это триггер-установка, запускаемый из главного триггера ролика (<cin name> cinematic Q) параллельно ему, не в очередь (ConditionalTriggerExecute Action). Здесь проводится подготовка к кинематике по следующим параметрам:

- variables
- game settings
(game time, day/night cycle, game speed (locking in cin))
- selection param
- player states/allies/properties.
- unit groups
- units
(очень широкий спектр действий)
--animations ( включая по желанию: vertex coloring, body part facing, blend/animation/turn/movement time/speed, flying height)
--abilityes
--buffs

- destructibles
- environment
(fog, weather effects, water etc)
- floating text (if needed)
- sounds/music.(3d sound для профи ;) )

В общем, заносите сюда всё, что будет во время кинематики не по умолчанию.
Все эти параметры устанавливаются таким образом, какими оны должны быть в ролике. Те параметры и группы с объектами, которые надо будет потом восстановить в умолчание, как-то поменять или удалить, запоминаются переменными. Например, чтобы в поле зрения не попала безобразная гурьба вашей армии, она добавляется в группу HiddenUnits, которая потом, после окончательного редактирования (добавления некоторых нейтральных юнитов, исключения рудников из группы и др.), здесь же и прячется действием (HideUnit<Group - ?> Action); юниты, выделенные игроком в момент начала ролика добавляются в другую группу, затем выделение очищается; текущая камера запоминается в соотв. переменную, учитываются все пришедшие на ум параметры. ОСОБЕННО обращайте внимание на отвечающие за игровые/окружение настройки - запоминайте скорость, камеру, ин-гейм время. НЕ ЗАБУДТЕ PAUSE`ить ВСЕХ НЕАКТИВНЫХ ЮНИТОВ, дабы не возникало щекотливых ситуаций . Также неплохо бы запрещать на время кинематики спать тем, кому этого не следует делать. (смотри скрин 1)

- <Cinematic name> cleanup. Здесь проводится по аналогии с подготовкой к ролику сброс параметров на нуль, дефолт, то есть на игровой режим . Кстати, если ваша карта являет собой один сплошной ролик, без вмешательства игрока, то в этом триггере нужда автоматически отпадает - как и в <cin name> cinematic (смотри далее). В этом триггере производится возврат к объявленным в Setup`е значениям для различных вещей - к игровой скорости, к камере, к выделенной группе (selection) (выбираем бывшую выделенной в момент начала ролика группу - естественно после того, как она станет видима (unhidden))... В общем, ко всему тому, чему в setup`е вы давали переменную. Также здесь юниты "продолжаются" после паузы (Pause(All)Units Action); те, что спрятаны, вновь станотся видимыми, кое-кто убирается из игры, настраивается на умолчание туман, камера, анимация, звук. И здесь, и в setup`е в зависимости от строения карты могут быть какие-то объекты/величины, которые тоже придётся заносить на время воспроизведения в память и прятать, менять. А то и в кэш - всё зависит от пользователя, его чувства юмора, карты и целей, здесь же я описываю общие черты.

- <Cinematic name> skipped. Этот пропускающий триггер по умолчанию выключен, но включается в кинематике во временном промежутке, доступном для пропуска ролика, это время определяется пользователем. Служит для прекращения ролика, делает это следующим образом - по всей <cin name> cinematic Q расставляется нечто вроде контрольных точек - функция вида Если/то/иначе, но о ней позже. Так вот, когда этот триггер включен и игрок жмёт пропуск (Esc), триггер выключается, становясь непригодным для дальнейшего использования, и возвращает логическую, которая при проверке обрывает дальнейшую последовательность действий в основном триггере ролика; тем временем здесь идёт копия финальных действий от затемнения в <cin name> cinematic Q (смотри ниже код финальных действий или скрин номер 3) запускает cleanup, сбрасывает камеру к игровой , запускает отвечающие за геймплэй триггеры (типа надоевших уже заданий) и убирает из очереди триггеров основной. Начинается игра.
Кстати - если триггеров типа <cin name> cinematic Q больше одного, то убираются из очереди они все. И ещё кстати - если опять же ваш ролик - и есть всё, что произойдёт на карте, если это чистый кинематик, то после пропуска ролика нажатием Esc, cleanup не запускается, а всё что произойдёт - обрыв действия, затемнение и высвечивание диалога ПОБЕДА! (Поражение), либо просто выход из карты.

- <Сinematic name> (например, "Intro cin") cinematic. Этот триггер, в сущности, реакция на какое-то событие, которое приводит в действие кинематику (Add <cin name> cinematic Q to Trigger Queue Action). Если с этого ролика стартует карта (нечто вроде предисловия), то надобность в этом триггере отпадает - <cin name> cinematic Q добавляется в очередь в инициализации.

- <Cinematic name> cinematic Q. "Q" означает, что этот триггер добавляется в очередь. Это делается для того, чтобы никаких лишних действий из других триггеров, типа объявления подсказок, подкрепления или заданий, не наслаивалось в процессе. Вот почему сообщения типа " Подказка:" стоит также добавлять в очередь (AddTrigerToTriggerQueue Action). Здесь происходит непосредственно само действие, манипуляция с камерами, репликами юнитов; здесь мы применяем фильтры, и, во время применения финального и стартового, мы запускаем <cin name> setup и <cin name> cleanup (RunTrigger Action), включаем и выключаем cinematic mode. И здесь же мы вставляем функцию вида

If/then/else -
if <cin name> scipped (boolean var) = true
then do skip remaining actions
else do nothing
.

после каждого "Wait x.xx sec" в разумных пределах - в равных временных промежутках от 2-х до 5-и сек. Это необходимо для прерывания кинематики в случае нажатия Esc. Временной промежуток характеризует то, как быстро будет реагировать на нажатие ролик. Не стоит заставлять ждать зрителя слишком долго - он может и решить, что пропуска попросту нет =).
Прим.: НЕ ЗАБУДТЕ в самом конце этого и <cin name> skipped триггеров убрать <cin name> cinematic Q триггер из очереди, иначе остальные, добавленные после (например, подсказки) будут очень долго не вступать в действие. (RemoveTrigFromTrigQueue Action (GetTriggeringTrigger)).
Вот примерное построение стартовой части этого триггера.
Код:
function Trig_Midgame_cinematic_Q_Actions takes nothing returns nothing
    set udg_Mid_cinematic = true
    // Fade out
    call CinematicModeBJ( true, GetPlayersAll() )
    call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, 1.00, "ReplaceableTextures\\CameraMasks\\White_mask.blp", 0, 0, 0, 0 )
    call TriggerSleepAction( 0.80 )
    call ConditionalTriggerExecute( gg_trg_Midgame_setup )
    call CameraSetupApplyForPlayer( true, gg_cam_Mid_01, Player(6), 0 )
    call TriggerSleepAction( 0.20 )
    // Fade in
    call CinematicFadeBJ( bj_CINEFADETYPE_FADEIN, 1.00, "ReplaceableTextures\\CameraMasks\\Black_mask.blp", 0, 0, 0, 0 )
    call TriggerSleepAction( 1.00 )
см. скрин номер 2.

Вот примерное построение финальной части этого триггера.
Код:
if ( Trig_Midgame_cinematic_Q_Func124001() ) then
        return
    else
        call DoNothing(  )
    endif
    call ResetToGameCameraForPlayer( Player(6), 2.00 )
    set udg_Mid_cinematic = false
    call DisableTrigger( gg_trg_Midgame_scipped )
    // zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    // ---------Cinematic ends------------
    // CINEMATIC CAN NO MORE BE SCIPPED
    // zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
    // Fade out
    call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUT, 0.50, "ReplaceableTextures\\CameraMasks\\White_mask.blp", 0, 0, 0, 0 )
    call TriggerSleepAction( 0.50 )
    call ConditionalTriggerExecute( gg_trg_Midgame_cleanup )
    // Fade in
    call CinematicModeBJ( false, GetPlayersAll() )
    call ResetToGameCameraForPlayer( Player(6), 0.00 )
    call CameraSetupApplyForPlayer( true, udg_Nightmare_c_nul, Player(6), 0 )
    call CinematicFadeBJ( bj_CINEFADETYPE_FADEIN, 0.50, "ReplaceableTextures\\CameraMasks\\White_mask.blp", 0, 0, 0, 0 )
    call TriggerSleepAction( 0.50 )
    call ConditionalTriggerExecute( gg_trg_I_Main_Quest_Updated )
    call ConditionalTriggerExecute( gg_trg_Midgame_gameplay )
    call QueuedTriggerRemoveBJ( GetTriggeringTrigger() )
endfunction
см. скрин номер 3.
» Глава 2: Некоторые ухищрения и фишки
Body Part Facing.

Это одна из возможностей микроуправления всеми теми действиями и мимикой героев/юнитов, которые вам предстоит двигать, заставлять колдовать и что-то говорить. Эта функция позволяет закрепить часть тела юнита направленной на другого юнита. Особенно хорошо, когда это летающий юнит - герой очень красиво провожает его взглядом, ТЕМ БОЛЕЕ, если юнит взлетает с земли.

Для более опытных режиссёров ещё советую - вы можете придать юниту эмоциональность - с этой целью делаем невидимого юнита (без модели) и различно им манипулируем - двигаем по карте, резко перемещаем из угла в угол - герой будет нервно озираться по сторонам, можем опустить невидимку на землю возле героя - он повешает нос, уставится в землю. О строении - функция представляет собой следующее -

***
Lock Unit`s (это чью голову/грудь вы повернёте) body-part (здесь вы выберете, что же у героя вам заблокировать в режиме обзора на юнита - голову или грудь. Голову надёжнее - грудь не стоит сильно вращать - будет глупо но весело смотреться) facing on Unit (это собственно тот, на кого смотрят) offset by x, y, z (здесь указывается, насколько точка, в которую направлен взгляд отстсоит от x0, y0, z0 позиции юнита-цели. Допустим, чтобы взглянуть в лицо ему - ставьте 0, 0, 70 - 100)
***

Unit`s Blend Time.

Ещё, при использовании вышеописанной функции очень важную роль играет ещё одна, расположенная ниже этой в списке в триггерах, которая отвечает за скорость поворота части тела в указанную позицию для модели юнита. Эта функция – Change Unit`s Blend Time. Для всех моделек юнитов в варе, что я видел, по умолчанию Blend Time = 150. Итак, Читатель, в твоих руках мощное оружие - экспериментируй. :)

Play/Queue Unit`s Animation.

Иногда возникает реальная необходимость проиграть повторяющуюся, лупинговую (:)) анимацию только ОДИН раз. Можно посмотреть, сколько времени идёт анимация, запустить Wait (sec) на приближённое этому время - однако это вызов лишний раз функции, занятие лишнего места (а перегруженные обилием строк триггеры начинают довольно ощутимо тормозить), да и всё равно, есть возможность того, что не попадёте в секунду, и анимация самым наглым и некрасивым образом прервётся. Можно и нужно поступить проще - есть кроме действия Play animation ещё и Queue animation - действие также удобно в использовании. Суть в том, что к текущей анимации юнита в очередь ставится другая, к поставленной следом можно ещё добавить - целый плэйлист получается =). Чтобы сбросить очередь и анимацию - используйте Reset Unit Animation.

Flying Height.

*I Ещё неплохо смотрится возможномсть с Change Unit`s Flying Height - она действует только на летающих или имеющих альтернативную летающую форму боевой единицы (об этом чуть позже), и в определённом темпе опускает/поднимает юнита на нужную высоту полёта. Так с дирижабля можно "выгружать" юнитов.

*II Если необходимо поднять нелетающего юнита на определённую высоту, а Change unit flying height не действует на нелетающих, вы можете поступить следующим образом: создайте две нестандартных способности - одну на основе "Книги заклинаний" (SpellBook), и добавте в неё второе - на основе "Перевоплощения" (Demon Hunter`s "Morph") с альтернативной формой боевой единицы, способной летать. Дайте способность на базе "Книги заклинаний" нелетающему юниту. А затем триггерно заблокируйте её - она исчезнет с интерфэйса пользователя, но способность на базе "Перевоплощения" останется активной. Теперь вы сможете менять высоту полёта этого юнита.
Система с "Книгой заклинаний" разработана Sergey.

Unit`s Vertex Coloring.

Экспериметируйте ещё и с прозрачностью и изменением цвета юнита – Change unit vertex coloring, помните, как в РОК Джайна имела становиться прозрачной, вплоть до полной невидимости? Просто её с периодом в 0.1 сек делали прозрачнее и прозрачнее - единственно видна была тень её, даже когда Джайна была уже не видна, но с этим уже ничего не сделаешь.
Я так проделывал в кино интересную вещь - когда я осознал, что прозрачность декораций, типа арки или колонны, менять нереально иначе, чем через Jass, я просто продублировал эту арку юнитом с соответствующей моделью, спрятал арку на время ролика (Play HIDE animation for all doodads in Region), а с юнитом-аркой уже делал всё, что хотел.

Animation Speed.
Movement Speed.

И конечно же, меняйте скорость анимации и движения для юнитов (анимация – Change Unit`s animation speed, скорость передвижения - в подразделе Боевая единица), это позволит вам тормозить кровавую сечу на поле боя, облетать его камерой, проскальзывая между застывшими в смертельной схватке пехотинцем и вуралаком, приподнять камеру и, поднимаясь всё выше, показать истинный масштаб, всю громадность занятого бьющимися войсками. Или делайте что-то вроде матрицы. Ускоряйте юнита - сделайте из него берсерка - он станет бегать и наносить молниеносные удары всем, кого встретит на пути... Дальше всё зависит от вашей фантазии.

Fog.

Экспериментируйте с туманом – в конкурсе на battle.net в числе победивших оказался ролик, где автор вёл съемки под водой. Всё было просто – увеличенные модели разбитых кораблей, рыб, пузырей, мимо проплывающих, и хорошо настроенный туман, имитирующий сокращённую видимость под водой.
Есть и ещё одно преимущество тумана - если камера смотрит параллельно земле и нет тумана - то должно быть видно далеко, и при таком режиме обзора игра будет сильно тормозить. Другое дело - с туманом - можно поставить границу отсечения или дальнюю граница камеры на расстояние, где туман уже полностью поглотит видимые объекты. Это сильно повысит производительность игры.

Sound.

Звуку тоже стоит уделить достаточно внимания – во время ролика ОБЯЗАТЕЛЬНО должна играть музыка, пусть даже и стандартная – иначе ролик обречён на непереносимую скуку - за исключением очень немногих ярких и динамичных. И всё равно, правильно подобранное музыкальное сопровождение может быть больше чем отличным фоном к происходящему в ролике, НО значительно увеличит его объём.
Так же, не стоит забывать и просто про озвучку - выставляйте на определённой местности и при даных погодных эффектах определённые Ambient sounds, фоновые звуки. К примеру - в гористой местности уместен повторяющийся фоновый звук ветра. На воде рисуйте несколько областей и дублируйте там повтор плеска воды или волн о крутой берег. В моментах с грозой в случайное (скажем, от 5 и до 30 сек. перерыва) в случайной же точке карты триггерно воспроизводите (Play 3d sound at Point Action) RollingThunder – звук раскатов грома, только для этого надо предварительно отметить в Редакторе звука в настройках этого звука окошко «Позиционный звук».

Camera Objects.

Работа с КАМЕРОЙ является одной из самых необходимых и, фактически, основных и незаменимых особенностей (в умелых руках - преимуществ) кинематики. Когда вы создали камеру, вы можете её так и оставить - вы создали камеру из стандартного обзора, из поля зрения и высоты по Z камеры, которая по умолчанию является обзором игры. А можете поменять обзор камеры, для этого нажмите Enter (или клавишу, которая заменяет эту по умолчанию) - тут широкий спектр действий. От высоты по Z и до угла крена, от угла атаки и до поля зрения. Примечательно то, что эдитор показывает иногда переход от одной камеры к другой (ApplyCameraObject (timed) Action) неклорректно, не так, как это будет выглядеть в игре, так что не отчаивайтесь, если к камере, которую вы накренили, ваш предпросмотр в редакторе полетит, вращаясь, под землёй - это ошибка редактора.
***
Пара интересных действий с камерой - когда камера, расположенная в лесу и слегка накренённая (в лесу - чтобы был заметен крен) плавно переходит в обычную, ненакренённую камеру несколько впереди - сам полёт её выглядит как есл бы съёмка шла с вертолёта.
И вторая - её опять таки использовали вездесущие Blizzard. Поле зрения и расстояние до цели хоть отвечают и каждые за своё разное, но если между ними установить определённый балланс - увеличивать поле зрения и уменьшать расстояние до цели и наоборот (скажем, на 10 точек поля зрения, 100 до цели), то камера, ОСТАВАЯСЬ НА МЕСТЕ, будет увеличивать или уменьшать поле зрения, таким образом, как будто перспектива искажается, придвигаясь или удаляясь от неподвижного зрителя. Так хорошо акцентировать камеру на каком-то объекте. И запомните - хотите показать величественного героя во всей красе - не расстояние сокращайте, а поле зрения, если же он стоит на поле битвы и вам надо объемлеть всю картину - увеличивайте, опять же, поле зрения.
» глава 3: Предвартельная загрузка файлов (оптимизация)
Когда карта большая или в ней много импортированных моделей, которые ещё не размещены непосредственно на карте и будут там появляться уже в процессе игры, не при инициализации, надо эти модели с текстурами предварительно загружать (PreloadFiles Action). Так, вы бывало наблюдали, что при использовании впервые заклинания со сложным артом, карта "подвисает", а потом дёргается и опять всё идёт ровно. Дабы избежать таких тормозов, в лецензионной кампании Reign of Chaos и, вероятно, в The Frozen Throne, широко использовали предварительную загрузку, её следует применять и при создании (create)/ замещении (replace) юнитов. Это сильно сгладит процесс.

Три возможных действия с предварительной загрузкой -

1)Preload File - указывает путь к подгружаемому файлу. НО НЕ ЗАГРУЖАЕТ ЕГО! Это действие будто создаёт строку в листфайле, по которому уже потом будет загружать из указанных директорий.
2)Begin Preloading with a (x.xx) sec. timeout - вот эта строчка как раз и начинает подгрузку, здесь указывается время, за какое она должна пройти.
3)САМОЕ ИНТЕРЕСНОЕ!
"Preload Batch" - Preload all files, listed in filname - здесь указывается непосредственно Lisfile, в формате *pld, где прописаны пути до всех моделей/текстур/др. типов файлов; прописано время выполнения. Это может быть листфайл в Вар3.мпку или в импорте. В Вар3.мпк - это листфайлы для Credits и некоторых карт-интерлюдий - чтобы не дёргало и не тормозило. Это очень сильное и мощное действие, хотя им почти никто не пользуется (судя по просмотренным мною лично картам, а их было немало)

Некоторые правила пользования/составления

1) Необязательно но желательно, чтобы триггер с действием данного типа выполнялся в инициализации карты. Потому что при загрузке файлов подтормаживает всё равно, да ещё и не факт, что заданный спустя некоторое время после инициализации, во время игры, файл вообще загрузится. В любом случае, тормоз, тот которого мы пытались избежать случится при загрузке, если опять таки не при инициализации.
2) Если вы загружаете небольшой объём (например, 2 модели и две - четыре текстуры) пользуйтесь триггером. Можно - конвертированном в текст. Даже лучше. НО если вы используете большой объём загрузки - именно количеством загружаемых файлов - то проще составить прелоад-лист и сослаться на него в Preload Batch.
3) Прелоад-лист - та же функция, что и триггер с загрузкой, конвертированный в текст. Содержит следующие обязательные строчки:

I Function *** takes nothing, то же и returns
II Call preload( "Folder//Filefolder//Filename.xxx" ) (данный путь не обязателен так выглядеть, так выглядят большинство в Вар3.mpq)
III Call begin preload( x.xx )
IV endfunction

Код:
function PreloadFiles takes nothing returns nothing

call Preload( "abilities\\Weapons\\Dryadmissile\\Dryadmissile.mdx" )
call Preload( "Textures\\Dryad.blp" )
call Preload( "Textures\\Grad3.blp" )
call PreloadEnd( 4.0 )

endfunction


Как видите, та же функция, что и текстовой триггер, но только он не потребляет ещё и функцию "Create_trigger_action", так что немного выгоднее. Создать же непосредственно файл в формате *pld можно просто сменив расширение *txt файла, скопировав текст из конвертированного триггера, или написав (что дольше) от руки всё то, что необходимо. Потом импортируйте его в игру и в инициализации в Preload Batch ссылайтесь на этот файл.

//===========================================
В карте-примере, что я оставил внизу есть примеры по работе с предварительной загрузкой и триггерами, но вот все ухищрения вместить в неё не смог. Хотя некоторые там есть, остальные же вам предстоит освоить самим...

Пока всё. Как я уже говорил, статья будет пополняться внезапно осенившими мыслями, надеюсь на скорое их посещение. Удачи, жду от вас качественных роликов!
Миниатюры
Кликните на картинку для увеличения
Название:  Setup.PNG
Просмотров: 778
Размер:  43.7 Кбайт  

Отредактировано Q, 31.10.2007 в 20:53.
Старый 16.02.2006, 06:27
MapMan
Corey 8 Taylor
offline
Опыт: 21,554
Активность:
Афтар многобукф недочатал!
Старый 16.02.2006, 12:37
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Что?

FellGuard добавил:
MapMan, честно, не понял что значило
Цитата:
Афтар многобукф недочатал!
Это хорошо или плохо? :D
Старый 16.02.2006, 12:49
J
expert
offline
Опыт: 48,447
Активность:
Это значит нормальная, но долго и туго читаемая статья, и новичку прийдется вникать в каждое слово чтобы ее понять.
Но мне принцепи понравилась:)

Отредактировано Jon, 05.10.2006 в 10:05.
Старый 16.02.2006, 13:56
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Спасибо.
Хм, о трудночитаемости не слишком-то думаеш, когда упорядочиваеш и записываеш мысли относительно вопроса... Новичок навряд ли стал бы работать с Preload Batch, я сам о нём узнал вот недавно. :( Блин, можно попробовать облегчить её, но опять же, в каждом предложении есть не конкретизированная мысля, ох уж мне мой стиль изложения... Пусть это останется чем-то типа досужего чтения на ночь - так лучше усвоится ;) просто пытался апихать всё что знаю в ограниченную форму.
Старый 16.02.2006, 14:03
NETRAT

offline
Опыт: 83,712
Активность:
Эскейпа -> "Эскейпа(кнопкой ESC)"
Если в статье используются жаргонизмы, то либо в скобках, либо по сноске, либо в части, которая посвящена словарю следует давать разьяснение. Аналогично при использовании иностранных слов, необходимо соблюдать языковую целостность:
locking in cin
if needed
такого типа фразы не следует использовать если ты пишешь статью-таки на русском
Клинап,Сэтап - в этих случаях следует писать аглицкое слово, и в сноске или в скобках значение на русском языке.
scipped -> skipped
Цитата:
а всё что происходит - обрыв действия, затемнение и высвечивание диалога ПОБЕДА! (VictoryPlayer Action)
а почему бы просто милишный триггер с инициализацией и условиями победы не удалить или не заблокировать?
гм, еще было бы интересно все эти приемы(или хотя бы некоторые) в примерах посмотреть

кстати, быстрые диалоги, почему-то никому не нравятся :? а я думаю что 2-5 секунд для фразы вполне достаточно

NETRAT добавил:
Этот пост возможно уже не актуален, я его вчера писал, да не успел поправить, просто возьми на заметку
Старый 16.02.2006, 16:15
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Т.е. срочно нужно править? Ок, будет сделано.
Цитата:
а почему бы просто милишный триггер с инициализацией и условиями победы не удалить или не заблокировать?
Тут ты не понял, вернее, я не ясно выразился. Я имел ввиду то, что если это завершающий ролик, или это ТОЛЬКО ролик, и никакого геймплэя и впомине нет - cleanup запускать и вообще делать нет смысла. Вместо этого нужно всего-то использовать вот это самое действие. И жаль что я про систему инициализации в campaign - type картах не написал, там тоже много интересного... :) В двух словах - от стандартного тригера мelee initialization ам мало что остаётся, если остаётся вообще.
Гм, однако, насчёт примеров. Ну ты требования предъявил... Скажи хоть, что трудится буду не зря. Щас поправлю статью, наклепаю какой-нибудь сэмпл, или на худой конец одну из своих карт урежу до необходимого в ролике.
Цитата:
кстати, быстрые диалоги, почему-то никому не нравятся а я думаю что 2-5 секунд для фразы вполне достаточно
Ты знаеш, я придерживаюсь подобного же мнения, только вот к чему это ты здесь вспомнил?

Вот сэмпл. Может быть, он сделан несколько коряво - всё потому что начинал я его в прошлом году. О Prelaod Files я тогда и слыхом не слыхивал. Зато вот систему триггеров воплотил на все сто. Это был сценарий, так что не обижайтесь , я его малость обрезал.
Прикрепленные файлы
Тип файла: w3x Sample.w3x (468.6 Кбайт, 120 просмотров )

Отредактировано FellGuard, 16.02.2006 в 17:11.
Старый 16.02.2006, 17:05
NETRAT

offline
Опыт: 83,712
Активность:
Цитата:
Ещё неплохо смотрится фича с Change Unit Flying Height - она действует только на летающих
Это не верно, он действует не только на летающих. Изучая эту функцию я обнаружил такую особенность - она распространяется только на тип Flying, однако, нам не всегда нужно чтобы юнито мог летать(допустим юнит наземный, если поставиь ему flying то он сможет передвигаться и по воде), совершенно случайно(действительно интересная случайность) я обнаружил что юнит Обсидановая Статуя может летать, однако его тип передвижения - сухопутный. Решение оказалось предельно простым - достаточно юниту дать способность морфинга, где конечная форма имеет юнита, который может летать(для обсиданки это сфинкс - его способ передвижения Flying). Далее вносим абилу в спеллбук даем юниту спеллбук, запрещаем его и вуа-ля юнит может изменять высоту, хотя он и сухопутный и нет никаких признаков отличающих его от других юнитов. На базе этой фичи я написал систему управления юнитами вроде того Objector'a Сергея, однако система боевая, а не для кинематиков. Кстати, советую глянуть Objector - спецэффект портал оставляет неизгладимые впечатления. В роликах это панацея для создания красивых спецэффектов. Правда, она не очень то проста в использовании, но Сергей привел много примеров, так что сильно напрягаться не приходится.

По поводу ролика - структура неплохая, прямо-таки форматная - собственно как ты и описал. Сделай карту полностью кинематиком и уменьши размер карты - убери лишние модели - это же карта пример - она не должна содержать излишеств. Когда показываешь спящих юнитов, проигрывай им анимацию смерти(только смотри чтобы крови в кадре оказалось как можно меньше - они же спят) и останови ее.

Еще советую оставить ссылку на великолепные примеры роликов с обилием спецэффектов Rox Battle(в базе есть) и The Vision (http://xgm.guru/forum/showthread.php?t=1918) так же на те ролики с конкурса близзов, которые ты упомянул(они у нас в базе есть)
Старый 16.02.2006, 17:55
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
Далее вносим абилу в спеллбук даем юниту спеллбук, запрещаем его и вуа-ля юнит может изменять высоту
Гм, а если это чистый кинематик - может достаточно ограничиться просто морфингом? Переделать на юнитскую и усё, а потом убрать по окончании - попробую, может без спеллбука не будет действовать. Конечно, я должен был вставить оговорку на статью, где это отступление указано (видел на форуме, а вот статью...) такая ведь существует?. Теперь далее.
Цитата:
стати, советую глянуть Objector - спецэффект портал оставляет неизгладимые впечатления.
Глянул - вот это величие... У меня даже челюсть отпала, а я и не заметил. При создании кодированных спеллов можно прямо в код включить некоторые функции, и прсото потом там же в коде и менять путь к основывающему арту... Супер. Обязательно дам ссылку.
Цитата:
в функции SetUnitFlyingHeigh НЕЛЬЗЯ ставить время отличное от нуля
Тоже верно. Это моя ошибка, сорри - там не время там всё так выглядит -Change Unit`s flying height to Height at Rate. Дак вот, чем меньшее значение вводиш в поле Rate, ем медленне юнит выходит на заданную высоту.
Насчёт анимации дэтх - не стал этого делать сразу, дабы соблюсти старую традицию близзов Спать стоя... :D ОК, зачту, поменяю.
Цитата:
я их тебе если хочешь скину без музыки, это 2/3 обьема урежжжжжит.
Да я скачал одну такую (*вздох*). Ожидал нечто экстраординарное - э там музыка весила.. Тьфу, и спецэффектами перегрузили - всё потому что вешали их не впрямую, а на юнита-дамми. Кароче, спасибо, не стоит, я же буду указывать ссылки на кинематик, не сами же карты выкладывать.

ЗЫ - Нетрат, кинь пожалуйста ссылку на сайте с мапами-победителями у близзардов на конкурсе кинематик.

Отредактировано FellGuard, 17.02.2006 в 06:52.
Старый 17.02.2006, 07:33
J
expert
offline
Опыт: 48,447
Активность:
А мне больше всех из неих понравился Fury, хотя он и не занял первое место.
Старый 17.02.2006, 09:01
J
expert
offline
Опыт: 48,447
Активность:
FellGuard, Че-то я у тебя в статье не увидел вот этих вопросов, разьясни их в статье, так как новичку до них не додуматся
1. Как сделать чтобы понель управления была убрана вообще и вместо нее был только черный фон.
2. Как Минипулировать с камерой с частотой 0.01 сек.
Так же может быть полезен, этот вопрос:
3. Как поернуть юнита набок, в перед или то и другое на любой градус через редактор обьектов.
Старый 17.02.2006, 15:05
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
1.Границы для ролика(Cinematic border) - здесь указывай импорт, в импорт клади текстурку - *tga в один чёрный (так, чтобы альфа-канал его определил как прозрачный) пиксель. Всё, остальное эдитор сам долумает :). Вообще, не вижу смысла в этом.
2. Не понял... Можно применять amera Objects а 0.01 сек...
3.Чтобы, например, распластался в воздухе, как плывущий? Либо модель делаеш повёрнутой на 90гр., либо через декарацию с макс. углом крена в редакторе объедков делаеш - но тогда это уже не юнит. Вот так-то...

FellGuard добавил:
Нетрат, ставь Rate == 100 и больше! Он поднимается , но Слишком МЕДЛЕННО... Это как со скоростью анимации 0.01%..

FellGuard добавил:
Люди, кто может и знает, скажите как тут у вас на форуме вставлять ссылки на участок текста той же статьи?
Старый 17.02.2006, 15:30
J
expert
offline
Опыт: 48,447
Активность:
FellGuard, да я то это все знаю, я имел ввиду чтобы ты это у себя в статье запечатлил.
1.
Цитата:
Вообще, не вижу смысла в этом.

А вот зря, статья о кинематиках, а иногда, НАМНОГО лучше смотрится кинематик если у него нет этой синей панели, ты когда фильм по компу ну или хоть по телеку смотриш, у него че внизу? Синяя панель с узорами, или черный фон, а? И как ты думаеш? Лучше бы смотрелось если бы там была синяя понель? а?
2.
Иногда возникает потребность, быстро поменять камеры 20-30 штук, Например, делаеш синематику, и там такой трагический момент, герой-юнит умирает, и вот один пример - надо сделать как будто вся его жизнь перенеслась перед глазами, в виде слайдов в промежутках 0.05 сек, это сделать просто:
делаем мисив переменной камера "CAMERA[]", и integer "i", и потом заносим в нее все камеры по порядку, и делаем триг:
Событие: каждые 0.05 сек
условие: "i" меньше 30
Действие:
Переключить камеру на CAMERA[i], за 0 сек.
Set i = i + 1
- это 1-ый способ применения, есть еще и множество других.
3.
Эти углы можно поменять так:
Удерживаем клавишу Shift и двойным щелчком нажымаем на строки:
"Макс. угл поворота" или "Макс. угл крена" и ставим отрицательное значение того градуса на сколько хотим повернуть модель в ту или иную сторону, все очень просто.
Цитата:
но тогда это уже не юнит

В синематике, и не обезательно чтобы юнит был юнитом.
Кстате, этот способ используется в этой карте.

Отредактировано Jon, 17.02.2006 в 15:44.
Старый 17.02.2006, 15:34
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Цитата:
Лучше бы смотрелось если бы там была синяя понель? а?
Наше дело - на вкус и на цвет... =) То то и оно, что уж лучше Альянсовская панелька или Ордынская, чем две чёрные полосы - такое моё мнение.

NETRAT, а-вот-это-вы-зря... Щасс как дам тебе пример с нормальной сукоростью смены.

FellGuard добавил:
Вот, забахал прикольную фичу. СМОТРЕТЬ ВСЕМ ОБЯЗАТЕЛЬНО :D
Там короче, вертолёты как надо поднимаются на опр. высоту, а со столбиками можно и эквалайзер прямо в варе (0_о) заделать. Как идея, а ? :)
Старый 18.02.2006, 08:39
shaman x

offline
Опыт: 100
Активность:
Обожаю делать ролики :) Если тренироваться, можно сделать интерессный небольшой фильм со своим сюжетом.
П.с.: вроде, делать это совсем не сложно, главное тут - творчество.
Старый 22.04.2007, 13:53
Nowise

offline
Опыт: 3,441
Активность:
Статья норм, вот только первую часть не понял, хотелось бы увидеть там нормальные команды редактора триггеров, как их комбинировать и че они бделают, а так както расплывчато..
Старый 21.10.2007, 21:45
Itachi

offline
Опыт: 348
Активность:
вот я нуб например ваше както неоч въехал чё делать=) даже недочитал доконца потомучто в начале непонял нечё=)
Старый 09.03.2008, 21:18
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Itachi, открой дополнительную кампанию за орду ( директория_вара/Campaigns/DemoCamapign.w3n ), там есть карты, в которых в редакторе триггеров можно найти папочку с триггерами с приятным кусочком названия "cinematic" Изучи внимательно, можно параллельно читать статью.. просто статья писалась чорти когда, не сохранились ни скрины, ни пример (тут был приаттачен пример в карте).. будет время - все приведу в человеческий вид, пока же..
Старый 09.03.2008, 21:58
FREEZE_ball
Cataclysm => жара
offline
Опыт: 15,247
Активность:
Вообще статья норм, но влом читать, многобукафф((
Старый 10.03.2008, 11:55
Lord_Romzess_V
FOR THE SWARM!!!
offline
Опыт: 5,716
Активность:
Я то уж точно новичёк, причём конкретный:) И я согласен с :
Цитата:
Сообщение от Jon
Это значит нормальная, но долго и туго читаемая статья, и новичку прийдется вникать в каждое слово чтобы ее понять.
Но мне принцепи понравилась:
)

Вот я прочитал часть этого описания "как делать ролики" и до сих пор в себя не пришёл, я в триггерах искал - <Cinematic name> setup. , так не нашёл, подскажите чё не так, может я не там ищю или мне надо прокачать Редактор варкрафт, вот токо когда я обновления скачал, и обновил себе вар3 он начал просить диск, вот игру я ещё включить смог а редактор карт просил вставить диск . Хотя у меня действительно слабый редактор, в неё у мя никаким макаром нельзя сделать триггеры скрещивания предметов. А статью я почитал, слов много... Непонятных слов ещё больше)... Непонятных предложений хоть отбавляй, так что я прочитал про - <Cinematic name> setup. , а дальше мне даже лень было читать, потому что зачем читать если в начале до тя никакая информация недошла, и ты сидишь перед компьютером в недоумении. так что в принципе главные мои вопросы я лучше выделю, а то в моём сообщении всёравно ничё не поймёшь:
1. Где мне найти - <Cinematic name> setup. ?
2. Как мне решить проблему с просьбой диска после прокачивания версии вар3?
3. А может мне просто не связываться с этим?) Я про триггеры, точнее про то что с ними можно что-то делать если ты не профессионал, а английском языке я почти вообще ничё не понимаю...
Заранее блогадорю за ответ) Потому что я могу зайти сюда может через день, а может и через 3 месяца...


А вообще, я не ругаю статью чтоб вы ненароком не подумали, статья норм (наверно) просто я совсем слаб в триггерах и программах к вар3 поэтому до меня ничего не дошло.

Цитата:
Сообщение от shaman x
Обожаю делать ролики :) Если тренироваться, можно сделать интерессный небольшой фильм со своим сюжетом.
П.с.: вроде, делать это совсем не сложно, главное тут - творчество.

А ты уже что-нибудь сделал, скинь в форум, я так думаю не только мне будет любопытно посмотреть.

Отредактировано Romzess III, 21.06.2008 в 20:13.
Старый 21.06.2008, 20:08

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 14:42.