Difference between revisions of "Cutscene tutorial/ru"

From Dragon Age Toolset Wiki
Jump to: navigation, search
(Использование GAD.)
(Перемещение актера)
 
(48 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{rupage|Инструкция по созданию роликов|Инструкции|Ролики}}
 
{{Infobox cutscenes}}
 
{{Infobox cutscenes}}
  
 
Катсцены ([[Cutscene]]s) могут быть автономными кинематографическими эпизодами, которые запускаются скриптами в ходе игры, или могут быть вставлены в разговоры вместо упрощенных роликов, которые ими (разговорами) автоматически генерируются.
 
Катсцены ([[Cutscene]]s) могут быть автономными кинематографическими эпизодами, которые запускаются скриптами в ходе игры, или могут быть вставлены в разговоры вместо упрощенных роликов, которые ими (разговорами) автоматически генерируются.
  
Наша приведенная в качестве примера ситуация в этом учебнике будет служить началом разговора между игроком и двумя НПС. Игрок только что прибыл к месту разбития лагеря, где эти НПС и находятся. Он приближается к огню. Один из НПС рад видеть игрока и приветствует его, а другой – подозрителен (недоверчив). Это двое обменялись краткими репликами, чтобы показать это до того, как интерактивная часть разговора началась.
+
Наша, приведенная в качестве примера ситуация в этом учебнике, будет служить началом разговора между игроком и двумя НПС. Игрок только что прибыл к месту разбития лагеря, где эти НПС и находятся. Он приближается к огню. Один из НПС рад видеть игрока и приветствует его, а другой – подозрителен (недоверчив). Эти двое обменялись краткими репликами, чтобы показать это до того, как интерактивная часть разговора началась.
  
 
== Создание новой кат-сцены ==
 
== Создание новой кат-сцены ==
Line 69: Line 70:
 
Установка настроек катсцены делается в «object inspector» в группе свойств, помеченных как «Settings» (настройка). Самая важная из свойств – это  [[area]](область), которая позволяет вам разместить вашу катсцену в доступной локации. Мы уже имеем подходящую область, которая была создана в предыдущем учебнике – локация «great_outdoors».
 
Установка настроек катсцены делается в «object inspector» в группе свойств, помеченных как «Settings» (настройка). Самая важная из свойств – это  [[area]](область), которая позволяет вам разместить вашу катсцену в доступной локации. Мы уже имеем подходящую область, которая была создана в предыдущем учебнике – локация «great_outdoors».
  
По умолчанию, МАСТЕР объект и Camera 1 будут расположены в области с координатами 0,0,0. Вы захотите переместить камеру в более подходящее место внутри области, используя стандартный набор инструментов [[3D control]]s для перемещения и управления «сектором обозрения» камеры. МАСТНР объект невидим, когда катсцена воспроизводится в игре, поэтому, совершенно неважно, где вы его расположите. Однако, есть некоторые настройки, которые  зависят от места расположения МАСТЕР объекта – например, вы можете установить уровень детализации моделей так, чтобы LOD модели изменялся, в зависимости от того, насколько близко от МАСТЕР объекта она находится. Поэтому желательно разместить МАСТЕР объект где-нибудь в средней точке того места, где будет происходить действие катсцены.
+
По умолчанию, МАСТЕР объект и Camera 1 будут расположены в области с координатами 0,0,0. Вы захотите переместить камеру в более подходящее место внутри области, используя стандартный набор инструментов [[3D control]]s для перемещения и управления «сектором обозрения» камеры. МАСТНР объект невидим, когда катсцена воспроизводится в игре, поэтому, совершенно неважно, где вы его расположите. Однако, есть некоторые настройки, которые  зависят от места расположения МАСТЕР объекта – например, вы можете установить уровень детализации моделей так, чтобы LOD модели изменялся, в зависимости от того, насколько близко от МАСТЕР объекта она находится. Поэтому желательно разместить МАСТЕР объект где-нибудь возле эпицентра того места, где будет происходить действие катсцены.
  
 
Вы также можете задать сцену (уже созданную) для катсцены. Это необязательно, но настройка сцены позволяет использовать действие «Jump to Stage Place» (перейти к месту сцены) и действие «Jump to Stage Camera» (перейти к камере сцены), которые могут помочь сделать настройку катсцену намного проще если вы уже имеете хорошую сцену (stage), определенную в данной области (Area).
 
Вы также можете задать сцену (уже созданную) для катсцены. Это необязательно, но настройка сцены позволяет использовать действие «Jump to Stage Place» (перейти к месту сцены) и действие «Jump to Stage Camera» (перейти к камере сцены), которые могут помочь сделать настройку катсцену намного проще если вы уже имеете хорошую сцену (stage), определенную в данной области (Area).
Line 181: Line 182:
  
 
Движения обрабатываются, задавая позицию и ориентацию объекта в определенные моменты времени, названные ключевыми кадрами, и затем – интерполяция промежуточных позиций и ориентаций. Чтобы задать ключевой кадр, кликните правой кнопкой мыши на актерской записи в шкале хронологии и выберите «key position» (позиция ключа). Это установит ключ для конкретной позиции и ориентации в конкретный момент времени на шкале хронологии. Вы можете, если хотите, установить ключ позиции и ориентации самостоятельно. Так как эта операций очень распространена, для нее есть очень удобный ярлык: «k» - вставляет ключ для текущей позиции выбранного объекта и ориентации, «p» - вставляет ключ для его позиции, «o» - вставляет ключ для его ориентации. Альтернатива – выберите объект и нажмите на команду «key» на панели инструментов: [[Image:IconKey.png]]
 
Движения обрабатываются, задавая позицию и ориентацию объекта в определенные моменты времени, названные ключевыми кадрами, и затем – интерполяция промежуточных позиций и ориентаций. Чтобы задать ключевой кадр, кликните правой кнопкой мыши на актерской записи в шкале хронологии и выберите «key position» (позиция ключа). Это установит ключ для конкретной позиции и ориентации в конкретный момент времени на шкале хронологии. Вы можете, если хотите, установить ключ позиции и ориентации самостоятельно. Так как эта операций очень распространена, для нее есть очень удобный ярлык: «k» - вставляет ключ для текущей позиции выбранного объекта и ориентации, «p» - вставляет ключ для его позиции, «o» - вставляет ключ для его ориентации. Альтернатива – выберите объект и нажмите на команду «key» на панели инструментов: [[Image:IconKey.png]]
 +
 +
'''Чтобы сгладить переходы между одной и другой анимацией - Выберите две анимации, которые вы совмещаете, клик правой кнопкой мыши, затем выберите "add transition". Это должно вам помочь.'''
  
 
[[Image:Cutscene key selection.png]]
 
[[Image:Cutscene key selection.png]]
Line 190: Line 193:
 
Эти маркеры по существу означают, что «в этот конкретный момент времени «dummy_player»  будет находиться в этом конкретном месте, и направлен лицом в этом конкретном направлении.»
 
Эти маркеры по существу означают, что «в этот конкретный момент времени «dummy_player»  будет находиться в этом конкретном месте, и направлен лицом в этом конкретном направлении.»
  
Чтобы актер двигался все это время, вы должны задать два ключевых кадра: один – в начале движения, с актером в его стоячем положении, второй – в конце движения, с актером в его конечном положении. Вы можете задать, как движок катсцены интерполирует между двумя позициями, установив свойство «Transition Out» начального ключевого кадра либо «Bezier» (Безье - гладкая кривая), либо «Linear» (Линейный - прямой), либо «Step» (Шаг – резкий скачок из исходного положения в конечное). Для более подробной информации смотрите страницу  [[curve editor]] (редактор кривых).
+
Чтобы актер двигался все это время, вы должны задать два ключевых кадра: один – в начале движения, с актером в его стоячем положении, второй – в конце движения, с актером в его конечном положении. Вы можете задать, как движок катсцены интерполирует между двумя позициями, установив свойство «Transition Out» начального ключевого кадра либо «Bezier» (Безье - гладкая кривая), либо «Linear» (Линейный - прямой), либо «Step» (Шаг – резкий скачок из исходного положения в конечное). Для более подробной информации смотрите страницу  '''[[curve editor/ru|curve editor]]''' ''[[curve editor|(en)]]'' (редактор кривых).
  
 
В нашем случае, мы не станем этого делать, однако, мы попробуем это на более позднем этапе в этом учебнике, для перемещения камеры по окружности. Для конкретно этого актера, было бы трудно вручную подгонять действие ходьбы актера с его движением по земле. Если анимация и движение не совпадают, ноги актера будут нереалистично скользить вдоль поверхности.  
 
В нашем случае, мы не станем этого делать, однако, мы попробуем это на более позднем этапе в этом учебнике, для перемещения камеры по окружности. Для конкретно этого актера, было бы трудно вручную подгонять действие ходьбы актера с его движением по земле. Если анимация и движение не совпадают, ноги актера будут нереалистично скользить вдоль поверхности.  
Line 199: Line 202:
  
 
{{sidebox|
 
{{sidebox|
* GAD is a mechanism by which an animation applies a built-in displacement to the object it's animating.
+
*GAD – это механизм, с помощью которого анимация применяет встроенное смещение объекта, которого она анимирует.  
* You need to set at least one key frame for an object to use GAD, even if you don't otherwise use key frames to move it.
+
* Вам необходимо задать как минимум один ключевой кадр для объекта, чтобы использовать GAD, даже если вы не используете ключевые кадры иным способом для перемещения его.
 
}}
 
}}
  
Line 215: Line 218:
 
Как только мы задали ключевой кадр и установили опции «Play GAD» действия значение TRUE, вы увидите, что теперь актер двигается вперед так, как он и шагает, Это хорошо, но, так как мы стартовали движение из позиции, которая предполагалась как конечная, в результате актер пройдет прямо сквозь огонь костра. Вам нужно переместить актера назад так, что бы он стартовал подальше от огня.
 
Как только мы задали ключевой кадр и установили опции «Play GAD» действия значение TRUE, вы увидите, что теперь актер двигается вперед так, как он и шагает, Это хорошо, но, так как мы стартовали движение из позиции, которая предполагалась как конечная, в результате актер пройдет прямо сквозь огонь костра. Вам нужно переместить актера назад так, что бы он стартовал подальше от огня.
  
Отметьте себе, что если вы уже задали ключевой кадр как описано в разделе выше, вам необходимо переустановить его для нового положения актера (или альтернатива – задать режим «update keys» с помощью инструмента[[Image:IconUpdateKeys.png]]). В противном случае, в тот момент, когда анимация стартует, актер будет мгновенно перемещаться назад на то место, где вы задали ключевой кадр. Как только вы задали ключевой кадр для актера, перемещение актера в редакторе катсцены не изменит его позиции до тех пор, пока вы не переустановите ключевой кадр для новой позиции. Ключевые кадры и кривые интерполяции между позициями всегда имеют преоритет.  
+
Отметьте себе, что если вы уже задали ключевой кадр как описано в разделе выше, вам необходимо переустановить его для нового положения актера (или альтернатива – задать режим «update keys» с помощью инструмента [[Image:IconUpdateKeys.png]]). В противном случае, в тот момент, когда анимация стартует, актер будет мгновенно перемещаться назад на то место, где вы задали ключевой кадр. Как только вы задали ключевой кадр для актера, перемещение актера в редакторе катсцены не изменит его позиции до тех пор, пока вы не переустановите ключевой кадр для новой позиции. Ключевые кадры и кривые интерполяции между позициями всегда имеют преоритет.  
 
^
 
^
 
|
 
|
Line 221: Line 224:
  
 
{{sidebox|
 
{{sidebox|
* An animation's "Extend Gad Beyond Action" property makes Gad's displacement persist after the animation ends.
+
* Свойство анимации "Extend Gad Beyond Action" сохраняет перемещения по окончанию анимации.
 
}}
 
}}
  
The other GAD properties are set to the most appropriate defaults automatically when you select an animation but one particular property bears mention here in case you run into trouble with it later on; the "Extend Gad Beyond Action" property. In the case of this walking animation it defaults to true. That means that once the animation ends, the displacement that the actor has undergone as a result of it will remain in effect - he will stay in the final position he walked to. If this were set to false, once the animation ended all of the displacement the actor had gained as a result would be undone and he'd instantly jump back to where he started walking from again. If at some point in the future you find your actors doing this, this property is the first place to look for the answer.
+
Другие свойства GAD автоматически заданы в наиболее подходящей по умолчанию форме, когда вы выбираете анимацию, но одно конкретное свойство необходимо упомянуть здесь на случай, если вы столкнетесь с проблемами при использовании его позднее; свойство  "Extend Gad Beyond Action" (Расширение GAD за пределы действий). В случае этого, значение пешеходной анимации (Walk), будет по умолчанию TRUE. Это означает, что как только анимация закончится, перемещение, которое актер претерпел, в результате останется в силе – он будет стоять в конечной позиции, к которой он пришел. Если бы значение было FALSE, то как  только анимация закончится, все перемещения актера, которые он приобрел в результате, будут отменены и он мгновенно переместится туда, откуда начал ходьбу. Если в какой-то момент в будущем вы обнаружите, что с актерами это происходит, это свойство является первым местом, где нужно искать ответ.
  
There's one final detail we'll tweak here. The walking animation begins with the player starting from a standstill, which is not the impression we want to convey; the player has supposedly been walking for some time before the camera started rolling. We could set the animation to begin playing partway through by changing the animation action's "Start Offset" property, but since this is happening at the beginning of the cutscene's timeline an easier approach is to simply select the animation action and drag it so that it begins a half second before the cutscene does. The cutscene will only begin displaying at the 0 mark and anything that falls before this point in time will never be shown so the initial half second of the actor's walk animation will go unseen.
+
Осталась одна последняя деталь, которую мы настроим здесь. Шагающая анимация начинается с того, что игрок стоит в бездействии, а это не дает того  впечатления, которое мы хотим передать. Игрок должен идти некоторое время до того, как камера включится. Мы могли бы задать, что бы анимация начала проигрываться на полпути, изменив свойство действия «Start Offset», но так как это происходит в самом начале шкалы хронологии, более простой способ – это просто выбрать анимационное действие  и расположить его так,  что бы оно начиналось на полсекунды раньше катсцены. Катсцена будет отображаться только с нулевой отметки, и ничего, что делается до этой отметки во времени, никогда не будет показано, поэтому начальные пол секунды анимационной ходьбы актера не будут видимы.
  
== Moving a camera ==
+
== Перемещение камеры. ==
  
The scene now has some of the dynamic action we wanted, showing the player walking up to the campfire and stopping at its edge. But it's still a rather dull introduction and we can do better. Instead of a static camera shot we can set the camera so that it pans across the scene to follow the player's arrival.
+
Сейчас сцена имеет некоторые динамические действия, которые мы и хотели использовать, показывая актера шагающим в направлении костра и остановившимся возле него. Но это все еще скучное внедрение, и мы можем сделать лучше. Вместо статического кадра, мы можем установить камеру так, чтобы она панорамировала через всю сцену, следя за прибытием актера.
  
Select the Arrival Camera and open up its track list. It has Position and Orientation tracks just like the other actors, and can have keyframes set just the same. With the time marker set to 0, move the Arrival Camera so that its view shows how you want the shot framed at the beginning of the cutscene. In our example we're going to set it so that it shows the player in the center of the frame. With the camera still selected, press "k" to set a key frame for the camera.
+
Выберите «камеру прибытия» (Arrival Camera) и откройте ее трек-лист. Она так же как и актеры  имеет треки Позиции и Ориентации, и может иметь ключевые кадры, установленные точно также. При указателе времени, установленном на 0, переместите Камеру Прибытия так, чтобы ее обзор показывал, как вы хотите, чтобы кадр смотрелся в начале ролика. В нашем примере, мы собираемся установить ее так, чтобы она показывала игрока в центре кадра. Выделите камеру и нажмите «k», чтобы задать ключевой кадр для камеры.
  
 
[[Image:Cutscene camera start position.png]]
 
[[Image:Cutscene camera start position.png]]
  
(You may notice that the Field of View (FOV) track also gets a key marker. We won't be changing the camera's FOV so you can ignore that.)
+
Вы можете заметить, что трек поля зрения (FOV – Field Of View) также получает отметку «ключ». Мы не хотим изменять FOV камеры, поэтому можете проигнорировать его.)
  
Next move the timeline scrubber to the end of the walking animation at the 5 second mark. The player's actor will now be at the final position where he'll be standing for the conversation. Change the camera's orientation, panning to the right so that all of the actors can be seen in its field of view. In our case the camera's too close to encompass everyone so we'll also move its position to allow it to see them all.
+
Далее, переместите указатель в конец анимации ходьбы, на отметку 5 секунд. Теперь актер будет находиться на конечной позиции, где он будет стоять для разговора. Измените ориентацию камеры, панорамируя вправо так, чтобы все актеры были видны в ее поле зрения. В случае нашей камеры, она находится слишком близко, чтобы охватить каждого, поэтому мы также переместим ее позицию, чтобы позволить ей всех их.  
  
Once you have the shot lined up correctly, press "k" to set a second keyframe.
+
Как только ваш кадр выставлен правильно, нажмите «k» для установки второго ключевого кадра.
  
 
[[Image:Cutscene camera end position.png]]
 
[[Image:Cutscene camera end position.png]]
  
You may notice that the User viewports now show a red line tracing out the selected object's trajectory through space (if not, you may need to click the "show trajectories" [[Image:IconShowTrajectory.png]] button in the toolbar). As the first five seconds of the cutscene plays, the Arrival Camera should slide smoothly along the red line and rotate smoothly on its axes to transition from the first keyframe to the second keyframe (If it suddenly jumps from one position to the other instead you may need to click the "default curve mode" tool [[Image:IconDefaultCurveMode.png]] and try setting the keys again, or change the "transition out" property of the keyframe to Bezier).
+
Вы можете заметить, что окно вида User теперь показывает красные линии, прослеживающие траекторию выбранного объекта в пространстве (если нет, вы должны нажать на кнопку «show trajectories» [[Image:IconShowTrajectory.png]] на панели инструментов). На протяжении первых пяти секунд проигрывания катсцены, Камера Прибытия будет плавно скользить вдоль красной линии и плавно поворачиваться вокруг своих осей, перемещаясь от первого ключового кадра ко второчу (если вместо этого, она мгновенно переместится из одной позиции, вам нужно кликнуть на инструменте "default curve mode" [[Image:IconDefaultCurveMode.png]] и попробовать установить ключи снова, или изменить свойство "transition out" ключевого кадра для кривой Безье) .
  
You can fine-tune the trajectory of the camera by adding additional keyframes between the starting and ending ones. In our case we see that when the time marker is set to the middle of the camera's movement the player slips slightly out of frame.
+
Вы можете настроить траекторию камеры путем добавления дополнительных ключевых кадров между начальным и конечным. В нашем случае  мы видим, что, когда маркер времени установлен в середине движения камеры, игрок слегка проскальзывает мимо кадра.
  
 
[[Image:Cutscene camera middle position unadjusted.png]]
 
[[Image:Cutscene camera middle position unadjusted.png]]
  
We can fix this by changing the camera's position and orientation as needed, and then adding a new keyframe with "k". In this case we'll pull the camera back slightly so that its motion through space becomes a curve instead of a straight line.
+
Это можно поправить изменяя позиции и ориентации камеры, и до давая новый ключевой кадр с "K". В этом случае мы слегка переместим камеру назад так, что бы ее движение в пространстве было по кривой а не по прямой линии.
  
 
[[Image:Cutscene camera middle position adjusted.png]]
 
[[Image:Cutscene camera middle position adjusted.png]]
  
We now have a nice, dynamic establishing shot. The scene begins with the player alone and in the center of the camera's shot, and as he walks toward the fire the camera moves and pans around him to show him arriving in the presence of our two campers.
+
У нас теперь есть хороший динамический кадр. Сцена начинается с того, что игрок находится в центре кадра и идет к костру. Камера движется и перемещается вокруг игрока, показывая его прибывающего к расположению наших двоих обитателей лагеря.
  
== Switching cameras ==
+
== Переключение между камерами. ==
  
 
{{sidebox|
 
{{sidebox|
* A track on the MASTER object defines which camera is currently "active."
+
* Трек МАСТЕР объекта определяет, какая из камер в настоящее время активна."
 
}}
 
}}
  
Once the player arrives he is going to be greeted by the camper who is happy to see him. To give a clear shot of who's doing the talking, we'll want to switch the active camera from Arrival Camera to Happy Camera.
+
Как только игрок прибывает, его собирается встретить обитатель лагеря, который счастлив видеть его. Чтобы дать четкий кадр того, кто ведет разговор, мы должны переключить активную камеру с Камеры Прибытия на Счастливую Камеру.
  
The track where the active camera gets changed is attached to the MASTER object. Move the timeline's time indicator to the point in time where you wish to switch active cameras, in this case 5.5 seconds (giving the scene a half-second view of the player after he's come to a halt). Right-click on the Active Camera track and select Add Action. The only option available for this track is the "Switch Camera" action so go ahead and add one. In the new Switch Camera action's properties set it to switch the active camera to Happy Camera.
+
Трек, где активная камера меняется, привязан к МАСТЕР объекту. Переместите индикатор времени на шкале хронологии в точку времени, когда вы хотите переключить камеры, в данном случае 5,5 секунд, давая сцене полсекунды отобразить игрока, после того, как он пришел к месту остановки. Правый щелчок мыши на треке Активной Камеры и выбор команды «Add Action» (добавить действие). Единственная опция, доступная для этого трека – это действие «Switch Camera» (переключить камеру), поэтому добавляем эту опцию. В новых свойствах действия  «Switch Camera» задайте переключение активной камеры на Happy Camera (счастливую камеру).
  
Now when the cutscene is played we'll get an establishing shot showing the player walking up to the fire and then switch to a closeup of the happy camper so that he can deliver his greeting.
+
Теперь, когда катсцена проигрывается, мы получили съемку дальним планом , показывающую, как подходит к огню, а затем идет переключение на крупный план счастливого обитателя лагеря, так чтобы он мог произнести свое приветствие.
  
 
[[Image:Cutscene switch active camera.png]]
 
[[Image:Cutscene switch active camera.png]]
  
== Adding dialogue ==
+
== Добавление диалога. ==
  
 
{{sidebox|
 
{{sidebox|
* Lines of dialog can be inserted from an existing [[conversation]] resource. For convenience, create a new conversation to hold the dialog for a cutscene.
+
* Строки диалога могут быть вставлены из уже существующего разговорного ресурса. Для удобства, создайте новый разговор, чтобы вставить диалог для катсцены.
* Caption text, voice over, and facial performance are all included with each line.
+
* Титры, озвучка и лицевая анимация все вложено в каждую строку.
* If you edit the conversation later, the changes will be reflected in the cutscene. Remember to generate new VO and FaceFX in the conversation editor.
+
* Если вы потом начнете редактировать разговор, изменения будут отражаться в катсцене. Не забудьте заново сгенерировать VO и FaceFX в редакторе разговора.
 
}}
 
}}
  
There are three major components to dialog in Dragon Age; the text of the line being spoken (which is displayed as a caption at the top of the screen), the voice-over for the line being spoken, and the facial performance that makes the virtual actor lip-synch and display appropriate emotions.
+
Существует три главных компонента в диалоге Dragon Age: текстовая строка розговора (та, которая отображается как титр в верхней части экрана), голос за кадром для строки розговора, и лицевая деятельность (лицевая анимация), которая делает движение губ актера синхронизированым и отображает соответствующие эмоции.  
  
There's already a tool in the toolset that is designed for handling all of these things; the conversation editor. Actors in a cutscene can be given "Speak Line" actions that cause them to deliver lines from an existing dialog, with all three components added together into the actor's performance automatically.
+
В данном Тулсете имеется набор инструментов, разработанный для обработки всего этого – это редактор розговора. Актеру в катсцене может быть дано действие «Speak Line» (озвучить строку),  которое заставляет его произнести строку с существующего диалога, со всемя тремя компонентами, собранными вместе в актерской игре автоматически.  
  
To create the dialog for this cutscene we'll now create a new conversation resource. This conversation is not going to be used in the game directly so we'll be able to ignore many of the more advanced features and settings covered in the conversation tutorial; its only purpose is to serve as a repository of dialog lines for use in this cutscene.
+
Чтобы создать диалог для этой катсцены, мы создадим новый ресурс розговора. Этот розговор не будет использован в игре напрямую, поэтому, мы можем проигнорировать большинство более сложных функций и настроек, замененных в этом разговорном учебнике. Его единственная цель – это служить хранилищем такста диалога для использования его в этой катсцене.
  
The following screenshot shows our intended conversation. The only things that we need to define for it is the text of the dialog and optionally the emotion settings for RoboBrad to use when generating facial performance. As with our previous conversation we'll generate synthesized placeholder voice-over and generate FaceFX based on that; when we record real voice over later on we can simply update this conversation with it and the cutscene's performance will change to match.
+
На следующих скриншотах показан наш намеченный разговор. Все, что нам необходимо определить для него – это текст диалога, и опционально, настройки эмоций для RoboBrad для генерации выражений лица. Как говорилось выше, мы генерируем синтезируемый заполнитель голоса, и генерируем FaceFX на его основе. Когда мы запишем реальный голос позднее, мы просто сможем обновить этот разговор с уже новым голосом, и исполнение катсцены изменится в соответствии с этим.
  
 
[[Image:Cutscene conversation.png]]
 
[[Image:Cutscene conversation.png]]
  
To help keep track of which lines are spoken by which actors you could also optionally set the speaker tag on each line to identify who's doing the talking. This particular conversation has only two speakers so we won't bother with that. The cutscene engine won't need speaker tags, we'll be explicitly telling it who is saying each line. You'll only need to set those things if you wish to preview the conversation before using its lines in the cutscene.
+
Чтобы отслеживать, какие строки каким актером озвучиваются, вы должны дополнительно задать метку (тег) актера на каждой строке, чтобы определить, кто по этой строке говорит. Этот конкретный разговор имеет только двух говорящих, поэтому мы не будем беспокоиться об этом. Движку катсцены не требуется тег говорящего, мы явно сообщим движку, кто по какой строке говорит. Если вы хотите просмотреть разговор до использования его строк в катсцене, вы просто должны задать эти свойства.
  
Once you've created your dialogue go back to the cutscene editor and add a new track to the camp_happy actor. Rename it to something informative, such as "Dialogue". Move the timeline marker to the spot where you want the actor to start speaking and add a new "Speak Line" action.
+
Как только вы создали диалог, возвращайтесь к редактору катсцены и добавьте новый трек для актера «camp_happy». Переименуйте этот трек на что-нибудь информативное, такое как «Dialogue» (диалог). Переместите маркер шкалы хронологии в позицию, откуда вы хотите, чтобы ваш актер начал разговор и добавьте новое действие «Speak Line».
  
In the Speak Line action's properties, set the "Source Conversation" property to the conversation resource we just created. Then, select the specific line you want the actor to speak in the "Source Line" property (it will have a drop-down menu with all of the lines from the source conversation in it).
+
В свойствах действия Speak Line, задайте свойство «Source Conversation» для ресурса разговора, который вы только что создали. Затем, в свойствах «Source Line» выберите конкретную строку, которую вы хотите, чтобы читал ваш актер (оно будет иметь выпадающее меню со всеми строками разговоров ресурса в нем).  
  
That's all you need to do to get the actors to talk. You may wish to add one other detail at this point; head tracking. This is the action that causes actors to turn their heads toward a specific target, usually the person they're talking to or who is talking to them. It's added as its own action, so create another track and add a headtracking action to it with the player as the target. In this case we want the happy camper to turn his head toward the player right before he starts speaking.
+
Это все, что вам необходимо, чтобы заставить актера говорить. Вы можете добавить еще одну деталь этот случай – прослеживание направления головы. Это действие, которое заставляет актера поворачивать свою голову к конкретной цели. Обычно – к персоне, с которой он ведет беседу, или которая обращается к нему. Это действие добавляется как его собственное, поэтому создайте еще один трек и добавьте ему действие «Headtracking» и цель – игрока (player). В данном случае, мы хотим, чтобы дружелюбный обитатель лагеря повернул свою голову в направлении игрока перед тем, как заговорить.
  
== Adding other details ==
+
== Добавление других деталей ==
  
 
{{sidebox|
 
{{sidebox|
* Headtracking actions make actors look at other objects in the cutscene.
+
* Действие «Headtracking» заставляет актера смотреть на другой объект катсцены.  
* You can have more than one action on a track provided they don't overlap.
+
* Вы можете иметь более одного действия на трек, если они не пересекаются.
 
}}
 
}}
  
We've now gone through all the basics, so we'll just finish fleshing out the conversation with a few other details that are done the same way as the examples above.
+
На данный момент мы прошлись по всем основам, поэтому мы просто доделаем этот разговор с некоторыми другими деталями, которые делают все то же, что и в примере выше.
  
To add a little more animation to the scene, we add another track for camp_happy with an animation action (mh.dg_hnd_salute_01, a salute) to play during his spoken line. This animation is simpler to deal with than the walking animation because it doesn't displace the actor; there's no need to define position keys or worry about enabling GAD.
+
Чтобы добавить катсцене немного больше анимации, добавим еще один трек для camp_happy (дружелюбного) с анимационным действием (mh.dg_hnd_salute_01, приветствие) на протяжении его разговорной линии. С этой анимацией проще иметь дело чем с анимацией ходьбы, потому что она не перемещает актера, нет необходимости в определении ключей позиции или беспокоиться о разрешении GAD.
  
We'll set camp_angry's headlook so that she turns toward camp_happy while he's speaking; when we subsequently switch cameras to show her line of dialog she'll already be looking in his direction.
+
Мы зададим направление взгляда для NPC camp_angry (сердитому) так, чтобы она повернула голову в направлении NPC camp_happy (дружелюбного), пока тот говорит. Когда мы в дальнейшем переключим камеры, чтобы показать ее линию диалога, она уже будет смотреть в его направлении.  
  
For camp_happy's next line, however, we'll make the headtracking change visible during his shot so the player will see how his attention has switched to camp_angry. Note that we can reuse the existing "Dialogue" and "Headtracking" tracks for this actor; we don't need to create a new track for every single action that an actor performs. So long as the durations of the actions on a track don't overlap they can coexist peacefully.
+
Для следующей строки разговора NPC camp_happy, мы сделаем изменение «headtraking» (направление взгляда/головы) видимым во время показа его (NPC) крупным планом так, чтобы игрок увидел, как внимание актера camp_happy переключается на NPC camp_angry (сердитого). Отметьте себе, что мы можем повторно использовать существующие треки «Dialogue» и «Headtraking» для этого актера. Нам не нужно создавать новый трек для каждого одиночного действия, которое выполняет актер. До тех пор, пока продолжительность действий на трек не перекрываются, они могут мирно сосуществовать.
  
Finally, after camp_angry's last line we'll set her headtracking to look back toward the player. He's going to get the next word in when we integrate this cutscene into a conversation so this is a good way to indicate that the conversation's focus has gone to the player now.
+
Наконец, после последней разговорной строки обитателя лагеря camp_angry, мы зададим для него headtraking (направление головы) так, чтобы он посмотрел обратно на игрока. Мы интегрируем эту катсцену в разговор в тот момент, когда он собирается произнести следующее слово, так что это хороший способ указать,  что фокус разговора теперь перешел к игроку.
  
Once we've finished crafting the cutscene we now know how long its duration needs to be. You can now go to the conversation's properties in the Object Inspector and set the cutscene's duration to the desired length.
+
Как только мы закончили разработку катсцены, мы знаем, какова должна быть ее продолжительность. Теперь вы можете перейти к свойствам разговоров в Object Inspector и задать продолжительность катсцены такую, какую вы пожелаете.
  
The finished timeline of our cutscene:
+
Окончательно шкала хронологии будет иметь такой вид:
  
 
[[Image:Cutscene finished timeline.png]]
 
[[Image:Cutscene finished timeline.png]]
  
[[Category:Tutorials]]
+
=== Как протестировать катсцену ===
[[Category:Cutscenes]]
+
Во вкладке триггеры создаете триггер. Потом устанавливаете его на локацию. Далее пишете скрипт
  
 +
#include "log_h"
 +
#include "log_h"
 +
#include "utility_h"
 +
#include "wrappers_h"
 +
#include "events_h"
  
=== Cutscene Tips and Tricks ===
+
void main()
 +
{
 +
event ev = GetCurrentEvent();
 +
int nEventType = GetEventType(ev);
 +
Log_Events("", ev);
 +
switch(nEventType) {
 +
case EVENT_TYPE_ENTER:
 +
{
 +
object oHero = GetHero();
 +
DisplayFloatyMessage(oHero, "Test", FLOATY_MESSAGE, 16777215, 2.f);
 +
CS_LoadCutscene(R"1catscene.cut");
 +
PlayCutscene();
 +
break;
 +
}
 +
}
 +
}
  
Here are a few tips and tricks that might save the cutscene creator some time and perhaps hair pulling.
+
Для триггера нужно сделать скрипт, а название этого скрипта (справа в pallete window) указать в атрибутах триггера (attributes). Скрипт запускает "1catscene.cut" (файл катсцены)
 +
CS_LoadCutscene(R"1catscene.cut");
  
- Head tracking is often used to look at another actor or a visible item in the cutscene. However you can further manipulate the head of the actor by having the actor look at invisible objects. You can have the actor look from one invisible object to another or move the invisible object around in the cutscene to get the actor to look at things independent of visible actors or items.
+
=== Полезности ===
  
- You may find it useful to give meaningful names to your cameras if you are using more than one or two. (You might name a camera after the actor or placeable that it follows or name one camera ‘close-up’ and another ‘wide-angle’ for example.)
+
Здесь мы приведём кое-какие советы, которые позволят вам сэкономить время и нервы при создании роликов.
  
- If you are panning a camera around a room following a series of actors or placeables and you find that the camera suddenly decides to rotate in the other direction you can force it to stay moving in the direction you desire by adding or subtracting 360 degrees from the position/orientation you are using to move the camera.
+
- '''Head tracking''' (слежение) часто используется, чтобы заставить одного актёра посмотреть на другого либо на какой-либо видимый предмет в ролике. Однако вы можете манипулировать глазами актёра, заставляя его смотреть и на невидимые объекты. Вы можете заставить актёра смотреть то на один невидимый предмет, то на другой, а можете и передвигать отслеживаемый невидимый предмет, заставляя актёра поворачивать голову и смотреть на что-либо независимо от других видимых актёров или предметов.  
  
- Feel free to experiment with animations. Try using animations that are not normally meant for your actor type, you might find some interesting or bizarre movements for your actor.
+
- Полезно давать используемым камерам осмысленные имена. Можно назвать камеру именем актёра или предмета, на который смотрит камера, например '''cam_actor_1''', или указать на какую-либо характеристику камеры, наппример '''close-up''' (крупным планом) или '''wide-angle''' (широкоугольная).
  
- You can put multiple actions along one track as long as they do not overlap rather than using many different tracks.
+
- Если вы передвигаете камеру вокруг объекта (комнаты) наблюдая за группой актёров или предметов, может появиться проблема с внезапным вращением камеры в другом направлении. Заставить камеру двигаться так, как нужно вам, можно добавляя или вычитая 360 градусов позиции/ориентации.
  
- Pay attention to what your key frames ‘transition out’ are set to when moving your cameras. Step will jump the camera from position to position while Bezier and Linear will move the camera in a smoother motion. If you are not getting the desired effect when moving cameras check what your key frames ‘transition out’ are set to.
+
- Не стесняйтесь экспериментировать с анимацией. Попробуйте использовать анимацию, которая обычно не предназначена для выбранного актера, и вы можете обнаружить некоторые интересные или странные движения, которые, возможно, сможете использовать в своём ролике.
  
- If you have a longer more detailed cutscene you can keep the number of cameras you use to a reasonable number by just moving one (or more) around while another camera is the ‘active’ camera.
+
- На одной дорожке можно разместить несколько действий, при условии, что они не будут перекрываться по времени. Это позволит избежать большого количества дорожек.
  
- For testing purposes change the length of the cutscene in the cutscenes properties to a smaller value and enlarge that number as you add on to the cutscene. In this way you won’t need to wait for a long period of time for the cutscene to end.
+
- Обратите внимание на то, что при перемещении камеры с использованием ключевых кадров (key frames) необходимо правильно установить параметр '''transition out''', который устанавливает каким образом происходит переход к следующей позиции камеры. По умолчанию этот параметр установлен в '''Step''' (шаговый переход), то есть рывком, в то время как '''Bezier''' и '''Linear''' заставят камеру двигаться плавно. Таким образом, если вам не нравится, как двигается камера, проверьте это параметр.
  
- After placing an animation on a track you can speed up the animation by left clicking on the small circular arrows on one end and dragging it shorter or make the animation play slower by dragging the animation longer on the track.
+
- Если вы создаёте длительный ролик с большим количеством деталей, то возможно вместо того, чтобы использовать большое количество камер, следует передвигать по всей сцене несколько камер, то есть пока активной является одна камера, вы можете передвинуть на требуемое место другую камеру.
  
- You can make the content of your scene seem to change by placing invisible objects in the cutsence, using an fx to obscure the view and making the object visible while the fx is playing. (For example you might have some invisible rock debris. Use a cave in fx with clouds of dust to obscure the screen. While the fx is playing make the debris visible. When the fx is finished your debris will be in place.)
+
- С целью тестирования измените длину ролика к меньшему значению и, по мере добавлени действий,  увеличивайте это число. Таким образом вам не придется постоянно ждать окончания ролика, если в нём ещё много пустого места.
 +
 
 +
- После размещения анимации на дорожке вы можете ускорить её, укоротив её отображение на дорожке, либо наоборот замедлить, соответственно удлинив её отображение на дорожке
 +
 
 +
- Вы можете разнообразить содержание вашего ролика, используя различные эффекты при появлении или исчезновении актёров или предметов. Например, разместите невидимые обломки скалы, потом, когда возникнет необходимость, запустите эффект с облаками пыли и, пока этот эффект проигрывается, сделайте обломки скалы видимыми. Когда эффект закончится, обломки скалы останутся на месте.
 +
 
 +
- Если вы обнаружите, что актер идёт по любой поверхности (даже по такой, например, как вода), в то время, как он должен двигаться только по земле, вы можете установить для локации, на которой базируется ролик, параметр '''items follow surface''', тогда актёр сможет ходить только по земле и сможет залезть в воду. Если же вы хотите, чтобы актёр или предмет не следовали по вертикали за землёй, а, например, плыли частично погружёнными в воду, то придётся регулировать вертикальное положение актёра или лодки по оси '''z'''.
 +
 
 +
- При создании ролика вы можете столкнуться с проблемой при активации не уникальных для локации, на которой создатся ролик, предметов. Например, если на локации размещены три одинаковых сундука, то при попытке активировать их в ролике, возникнет ошибка. В таком случае необходимо использовать разные сундуки, то есть с разными идентификаторами.
  
- If you find that your actor is walking across surfaces (such as water for instance) when they should be following the ground you can set ‘items follow surface’ in the area that your cutscene is based on. The actor should then walk on the ground and thus wade into the water. Conversely if you want a character or placeable to not follow the surface of the ground (for instance if you want a placeable or actor to be near or on the surface of water) move the actor or placeable higher by adjusting the Z axis of the boat or actor. (An example of using a placeable partly submerged in water might be something like a boat.)
 
  
- In a cutscene you can only activate things that are unique. As in if you plopped down three identical chests in an area, when trying to activate them all in a cutscene it will not allow this and gives you a warning message. In the example above you would have to make three different chests (though they could look the same) to be able to activate them all in the cutscene.
 
 
{{Languages|Cutscene_tutorial}}
 
{{Languages|Cutscene_tutorial}}
 +
[[Category:Tutorials]]
 +
[[Category:Cutscenes]]

Latest revision as of 09:55, 21 July 2012

Инструкция по созданию роликов
Начало / Русская DA Builder Wiki / Поделиться ВКонтакте
Cutscene topics

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

Наша, приведенная в качестве примера ситуация в этом учебнике, будет служить началом разговора между игроком и двумя НПС. Игрок только что прибыл к месту разбития лагеря, где эти НПС и находятся. Он приближается к огню. Один из НПС рад видеть игрока и приветствует его, а другой – подозрителен (недоверчив). Эти двое обменялись краткими репликами, чтобы показать это до того, как интерактивная часть разговора началась.

Создание новой кат-сцены

Чтобы создать новый ресурс - катсцену, создайте этот ресурс в обычном порядке:

New resource.png

Результат открыт в редакторе кат-сцен.

Cutscene new.png

В cutscene редакторе есть два основных раздела; экраны видов (в верхней части редактора) и временная шкала (внизу).

Экраны видов (Viewports)

  • Экраны видов могут быть привязаны к разным камерам для предварительного просмотра того, что они могут видеть
  • Установите «Safe frame» для камеры экрана вида, чтобы обеспечить правильное соотношение сторон
  • Задать для экрана вида установку «User» (пользователь), чтобы увидеть, где камера расположена с другой перспективы. Это можно сделать кликнув правой кнопкой мыши в титульной строке экрана вида и в меню выбрав «Detach From Camera»

Камера в экранах видов catscene редактора работает также как и в редакторе сцены (Stage editor). Вы можете установить количество и расположение экранов видов в меню "View" (Вид).

Cutscene tutorial viewport layout.png

И для каждого индивидуального экрана вида (области просмотра) вы можете выбрать, какую камеру он показывает, и установить другие опции отображения, кликнув правой кнопкой по титульной строке.

Cutscene tutorial viewport properties.png

При установке видового экрана для показа вида через одну из камер кат-сцены, желательно включить для этого экрана опцию «Safe Frame».Это вставит в экран вида границы, отображающие, что именно будет видно при воспроизведении кат-сцены.

Обратите внимание, что при воспроизведении кат-сцены в самом редакторе, только в настоящий момент активном экране вида (тот, который с синим заголовком), будет транслировать воспроизведение «наживо», другие же экраны не будут обновлять вид, отображенный в них пока они не будут выбраны (активны). Для предварительного просмотра сцены в таком виде, в каком ее должен видеть игрок, вам нужно задать для одного из экранов вида установку «Active Camera» и убедиться, что окно вида активно при воспроизведении кат-сцены в редакторе. Если активное окно вида стало серым, попробуйте установить свойству «Enable Level Effects» катсцены значение «false».

Шкала хронологии (Timeline)

  • В катсцене присутствует всегда только один Мастер Объект.
  • Каждый активный объект отображен в шкале хронологи с множеством своих «трэков».
  • Все объекты имеют позиционные трэки (которые делятся на X, Y и Z трэки). Некоторые объекты имеют дополнительные встроенные трэки.
  • Другие действия и эффекты могут быть добавлены к общим трэкам. Объекты могут иметь столько общих трэков, сколько вы захотите.

Под экраном вида находится шкала хронологи. Вдоль верхней части шкалы простилается временная шкала. Она может быть установлена либо для отображения кадров (до 30 кадров в секунду), либо в миллисекундах, путем изменения свойств «временной шкалы» катсцены в «object inspector». Маркер указывает, какая точка времени на шкале хронологи экрана вида в данный момент показана.

Под ней расположены набор строк, содержащих разных актеров, камеры, и другие объекты, активные в этой катсцене. Именно здесь будет иметь место большая часть редактирования катсцены. Каждый объект будет иметь определенное количество «треков», которые будут содержать команды, направленные актерам в определенное время при воспроизведении катсцены.

Cutscene tutorial timeline.png

Первый объект в трэк-листе – это «Мастер» объект. Это специальный объект, который каждая катсцена имеет только один. «Мастер» объект это эквивалент корневого узла дерева разговоров, хранилище для общих настроек и эффектов. Например, «Мастер» объект содержит трек, который определяет, какая из камер активно в любой момент времени. Мастер объект не может быть удален. По умолчанию, Мастер объект выглядит как маленькая зеленоватая сфера. Вы можете изменить внешний вид Мастер объекта в настройках опций катсцены.

Новая катсцена также имеет камеру под названием Camera 1.Эта камера может быть удалена или изменена так, как вы пожелаете. Мы можем добавить новую камеру позднее, тогда, когда нам необходимо.

Каждый объект имеет трек «позиции» (Position) и трек «ориентации» (Orientation), которые контролируют расположение объекта в пространстве. Камеры также имеют треки FOV (fields of view) поля зрения.

Объекты также могут иметь другие «общие» треки, добавленные редактором, если необходимо.Эти общие треки содержат все те другие команды и инструкции, которые мы можем задать.

Настройки катсцены

  • МАСТЕР объект должен быть перемещен в любое место возле центра действия вашей катсцены.
  • Вы можете задать сцену (Stage) для вашей катсцены, делая доступными привязанные к сцене действия для объектов.

Установка настроек катсцены делается в «object inspector» в группе свойств, помеченных как «Settings» (настройка). Самая важная из свойств – это area(область), которая позволяет вам разместить вашу катсцену в доступной локации. Мы уже имеем подходящую область, которая была создана в предыдущем учебнике – локация «great_outdoors».

По умолчанию, МАСТЕР объект и Camera 1 будут расположены в области с координатами 0,0,0. Вы захотите переместить камеру в более подходящее место внутри области, используя стандартный набор инструментов 3D controls для перемещения и управления «сектором обозрения» камеры. МАСТНР объект невидим, когда катсцена воспроизводится в игре, поэтому, совершенно неважно, где вы его расположите. Однако, есть некоторые настройки, которые зависят от места расположения МАСТЕР объекта – например, вы можете установить уровень детализации моделей так, чтобы LOD модели изменялся, в зависимости от того, насколько близко от МАСТЕР объекта она находится. Поэтому желательно разместить МАСТЕР объект где-нибудь возле эпицентра того места, где будет происходить действие катсцены.

Вы также можете задать сцену (уже созданную) для катсцены. Это необязательно, но настройка сцены позволяет использовать действие «Jump to Stage Place» (перейти к месту сцены) и действие «Jump to Stage Camera» (перейти к камере сцены), которые могут помочь сделать настройку катсцену намного проще если вы уже имеете хорошую сцену (stage), определенную в данной области (Area).

Добавление объектов и существ.

  • Объекты уже представлены в области, где установлена катсцена, но по умолчанию – неактивны. Вы должны активировать их для контроля над ними.
  • Другие объекты могут быть добавлены из палитры ресурсов как стандартные.

Все объекты, которые обычно присутствуют в области, (такие как существа, размещаемые предметы) будут видимы в редакторе катсцен, но все они первоначально будут помечены как «неактивные» (inactive). Это означает, что хотя они и будут видимы во время воспроизведения катсцены, они не будут контролируемы: они просто будут выполнять те же действия, которые выполняют в обычном окружении. В случае нашей области расположения лагеря, двое существ, которые расположены здесь в редаеторе области (Area editor), счастливый обитатель лагеря под именем «camp_happy» и сердитый обитатель под именем «camp_angry». Нам необходимо взять контроль над ними, чтобы сделать их активными участниками катсцены. Чтобы сделать их активными, щелкните правой кнопкой мыши по ним и в меню выберите «Activate objects»:

Cutscene activate object.png

Объект после этого станет активным объектом в катсцене, получив свою собственную запись в шкале хронологии, которая позволит вам контролировать его действия.

Cutscene object activated.png

Мы активируем обоих обитателей лагеря и после этого они оба будут брать участие в диалоге катсцены.

Вы также можете добавить объекты, которые, обычно, не часть области. Просто откройте палитру объектов, выберите существо или размещаемый предмет, которые вы желаете использовать в катсцене и затем, кликните по экрану вида для добавления объекта в локацию. Он автоматически будет создан активным и получит запись в шкале хронологии. Игрок не захочет видеть эти объекты во время обычного процесса игры, поскольку они не есть частью области – они находятся только в катсцене.

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

Добавление игрока

  • Используйте свойство «Mapping Tag» актера, чтобы заставить игру заменить его (актера) другим объектом (таким как ИГРОК) на время воспроизведения.

Обычно, мы не имеем проблем с добавлением игрока в область, поскольку игрок сам контролирует свои движения и действия. Но когда мы делаем катсцену, мы можем контролировать игрока только как любого другого актера, так что нам понадобится какой-нибудь способ вставить игрока как активный объект. Кроме того, так как мы не имеем понятия, как игрок будет выглядеть в каждый момент времени, нам нужно иметь способ вставить игрока, поскольку он появляется в игре, когда катсцена запускается.

Это делается путем добавления «модели, манекена» виртуального актера и затем присвоения свойству «Mapping Tag» актера тега «Player»

Cutscene dummy player.png

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

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

Добавление камер.

  • Не забудьте разрешить опцию «Safe Frame», когда привязываете окно вида к камере.
  • Используйте окно активной камеры «Active Camera» для предварительного просмотра катсцены.
  • Используйте видовой экран «User» чтобы увидеть позицию камеры сбоку. Это можно сделать, щелкнув правой кнопкой мыши по заголовку видового экрана и выбрав в меню опцию «Detach From Camera».

Мы можем снимать катсцену, если захотим, только одной камерой в виде одиночного статичного кадра, либо двигая камеру по кругу к новой позиции, если необходимо. В большинстве случаев, проще и более удобно просто добавить несколько разных камер, и просто использовать трек «Active Camera» в МАСТЕР объекте для переключения между ними.

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

Камеры добавляются щелчком правой кнопкой мыши по экрану вида и выбору команды «Insert -> Camera».

Cutscene insert camera.png

Вы можете расположить их, используя стандартную панель 3D controls. Для того, более простого получения настройки камеры с приемлемым ракурсом, хорошей методикой будет установление одного из экранов вида на отображение материала, поданного этой камерой. Вы можете затем переориентировать и переместить камеру, используя кнопки управления этой камерой, одновременно видя то изображение, которое видит камера в своем новом положении.

Мы также собираемся переименовать эти три камеры по этому случаю теми именами, которые будут напоминать нам, какое предназначение каждой камеры. Мы назовем их «Arrival Camera» (камера прибытия), «Happy Camera» (дружелюбная камера) и «Angry Camera» (сердитая камера). Нам нужно, чтобы вначале была активна «Arrival Camera», по этому, для этой роли можно использовать оригинальною камеру (ту, которая была установлена в самом начале). Она уже задана активной по умолчанию. Как переключаться с одной камеры на другую, мы рассмотрим в этом учебнике позднее.

Теперь мы имеем все основные реквизиты (объекты и предметы), необходимые нам для работы катсцены.

Добавление анимации актеру.

  • Задайте свойство «Pose» для актера, чтобы заставить его дышать и естественно ерзать, когда не действуют другие анимации.
  • Другие виды анимации задаются добавлением действия «Play Animation» (проиграть анимацию) к общему треку.
  • Имена файлов анимаций часто имеют мистический, непонятный смысл и их трудно найти.

Если вы проигрываете катсцену сейчас, то первое, на что вы скорее всего обратите внимание, это полная неподвижность актеров. Обычно, когда кто-то стоит на месте, он не стоит полностью неподвижно, он дышит, переминается с ноги на ногу, и так далее. Так как каждый актер, которого мы используем, будет нуждаться в этом, мы не хотим прикладывать много усилий для настройки каждого из них, и к счастью, мы и не должны. Каждый актер имеет свойство «Pose» (позирование) в «Object Inspector». Просто установите его позу в положение «Standing Neutral» (стоять спокойно), и актеры будут показывать эти стандартные, едва различимые движения, если никакие другие анимации в данный момент на них не наложены явно.

Cutscene set pose.png

Наше следующее задание будет менее тривиальным. Нам нужно показать игрока, приближающегося к огню. Мы должны добавить анимацию ходьбы актеру игрока, которая запустится на короткий промежуток времени и затем остановится

Что бы сделать это, нам нужно добавить новый трек в шкале хронологии актера. Щелкните правой кнопкой мыши по актерской записи в шкале хронологии и в появившемся меню выберите команду «Add Track» (добавить трек):

Cutscene add track.png

Новый трек по умолчанию будет называться «New Track», и он будет пустым. Актеры в катсценах иногда будут иметь дюжину треков, управляющих их действиями, по этому, мы хотим переименовать этот трек на что-нибудь немного более информативное. В нашем случае, мы присвоим ему имя «Walk to fire». Что бы фактически актера заставить идти к огню, мы должны добавить ему действе "Play animation" (играть анимацию). Что бы сделать это, нужно правой кнопкой мыши щелкнуть на треке и в меню выбрать «Add Action» (добавить действие).

Cutscene add action.png

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

Изначально, действие не имеет анимации, привязанной к нему. Чтобы задать анимацию, выберите действие (action) на шкале хронологии и, затем, в Object Inspector перейти к свойству «Animation», и щелкнуть на кнопке (Ellipsis.png).

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

Отметьте себе, что только одиночная анимация может проигрываться в любое время в данном треке. Однако, можно иметь несколько анимаций для персонажа, каждая из которых должна быть на разных треках. Это необходимо для того, чтобы было возможным сопрягать анимации вместе, как подробно описано вPlay_animation#Blending_Animations. Плавное сопряжение анимаций необходимо для того, чтобы ваши персонажи переходили «без швов» от одной анимации к другой, что является основной задачей для того, что бы движения персонажа выглядели естественно.

В нашем случае, анимация "mh.dg_f_5p" ("male human dialog forward five paces" - мужской человек диалог вперед 5 шагов), которая нам нужна, не отображается в стандартном перечне анимаций, доступном в сортировщике анимаций. Вам понадобится нажать кнопку «Next» в поле «Custom Animation» и найти ее в полном перечне всех анимационных ресурсов.

Cutscene finding an animation.png

Если вы попробуете проиграть катсцену сейчас, вы увидите, что актер игрока проведет немногим больше пяти секунд, шагая, а затем естественно остановится – все так, как нам нужно. Но актер будет анимирован на одном месте, его ноги, отмеряющие шаги, никуда его не поведут. Вот где нам теперь пригодятся позиционный ключ и GAD.

Перемещение актера

Ключи позиции и ориентации.

  • Объекты будут перемещаться в течении времени благодаря установке «Key frames» (ключевых кадров) на своих треках позиции и ориентации.
  • Промежуточные кадры интерполируются между ключевыми кадрами.
  • Вы можете задать тип кривой между ключевыми кадрами с помощью свойства «transition out» для любого ключа.

Каждый объект катсцены имеет предопределенный трек «Position» (позиция) с тремя под-треками для его (объекта) X, Y, Z координат. Большинство объектов также имеют предопределенный трек «Orientation» (ориентация), с тремя подтеками для pitch (тонгаж, поворот вокруг оси X ), yaw (рыскание, поворот вокруг оси Y) и roll (крен – поворот вокруг оси Z ). Эти треки могут быть использованы, чтобы заставить объект перемещаться в пределах зоны катсцены.

Движения обрабатываются, задавая позицию и ориентацию объекта в определенные моменты времени, названные ключевыми кадрами, и затем – интерполяция промежуточных позиций и ориентаций. Чтобы задать ключевой кадр, кликните правой кнопкой мыши на актерской записи в шкале хронологии и выберите «key position» (позиция ключа). Это установит ключ для конкретной позиции и ориентации в конкретный момент времени на шкале хронологии. Вы можете, если хотите, установить ключ позиции и ориентации самостоятельно. Так как эта операций очень распространена, для нее есть очень удобный ярлык: «k» - вставляет ключ для текущей позиции выбранного объекта и ориентации, «p» - вставляет ключ для его позиции, «o» - вставляет ключ для его ориентации. Альтернатива – выберите объект и нажмите на команду «key» на панели инструментов: IconKey.png

Чтобы сгладить переходы между одной и другой анимацией - Выберите две анимации, которые вы совмещаете, клик правой кнопкой мыши, затем выберите "add transition". Это должно вам помочь.

Cutscene key selection.png

Для наших целей, все, что нам необходимо прямо сейчас, это задать ключевой кадр в начале шкалы хронологии. Переместите указатель к началу, выберите актера и установите ключ. На треках позиции и ориентации появятся маленькие четырехугольники, для отметки ключевого кадра.

Cutscene key marker.png

Эти маркеры по существу означают, что «в этот конкретный момент времени «dummy_player» будет находиться в этом конкретном месте, и направлен лицом в этом конкретном направлении.»

Чтобы актер двигался все это время, вы должны задать два ключевых кадра: один – в начале движения, с актером в его стоячем положении, второй – в конце движения, с актером в его конечном положении. Вы можете задать, как движок катсцены интерполирует между двумя позициями, установив свойство «Transition Out» начального ключевого кадра либо «Bezier» (Безье - гладкая кривая), либо «Linear» (Линейный - прямой), либо «Step» (Шаг – резкий скачок из исходного положения в конечное). Для более подробной информации смотрите страницу curve editor (en) (редактор кривых).

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

Существует более простой способ для подгонки анимации, такой как вот этот механизм перемещения по сцене, называемый «GAD».

Использование GAD.

  • GAD – это механизм, с помощью которого анимация применяет встроенное смещение объекта, которого она анимирует.
  • Вам необходимо задать как минимум один ключевой кадр для объекта, чтобы использовать GAD, даже если вы не используете ключевые кадры иным способом для перемещения его.

GAD – это смещение, которое автоматически добавляется текущей позиции актера, когда проигрывается анимация. Каждая анимация имеет свою собственную информацию о GAD, встроенную в нее, специально разработанную, чтобы актер мог двигаться сообразно его действиям. Если мы разрешили это, актер будет двигаться вперед, как и проигрывается в анимации.

Не все анимации имеют GAD связанный с ними. Например, взмах рукой не переместит актера, так как здесь нет GAD, связанного с этой анимацией. Нам нужно беспокоится о GAD только в случаях, таких как этот, когда анимация должна аккомпанировать движению.

Чтобы разрешить GAD, выберите действие анимации и задайте «Play GAD» значение TRUE в object inspector. Если нет ключевых кадров, определенных для актера, редактор катсцены высветит предупреждение на этот счет, предлагая нам добавить ключи позиции и ориентации до того, как мы добавим GAD:

Cutscene gad warning.png

Важно задать по крайней мере один набор ключей для объекта используя GAD. Без этого, GAD анимации может работать правильно первое время, но неожиданные и непредсказуемые ошибки могут возникнуть позднее и из-за этого актер может просто далеко убежать.

Как только мы задали ключевой кадр и установили опции «Play GAD» действия значение TRUE, вы увидите, что теперь актер двигается вперед так, как он и шагает, Это хорошо, но, так как мы стартовали движение из позиции, которая предполагалась как конечная, в результате актер пройдет прямо сквозь огонь костра. Вам нужно переместить актера назад так, что бы он стартовал подальше от огня.

Отметьте себе, что если вы уже задали ключевой кадр как описано в разделе выше, вам необходимо переустановить его для нового положения актера (или альтернатива – задать режим «update keys» с помощью инструмента IconUpdateKeys.png). В противном случае, в тот момент, когда анимация стартует, актер будет мгновенно перемещаться назад на то место, где вы задали ключевой кадр. Как только вы задали ключевой кадр для актера, перемещение актера в редакторе катсцены не изменит его позиции до тех пор, пока вы не переустановите ключевой кадр для новой позиции. Ключевые кадры и кривые интерполяции между позициями всегда имеют преоритет. ^ | ((РЕД: это требует более глубокого объяснения кем-то, кто знает как сделать это правильно, так как этот параграф звучит бестолково!!)

  • Свойство анимации "Extend Gad Beyond Action" сохраняет перемещения по окончанию анимации.

Другие свойства GAD автоматически заданы в наиболее подходящей по умолчанию форме, когда вы выбираете анимацию, но одно конкретное свойство необходимо упомянуть здесь на случай, если вы столкнетесь с проблемами при использовании его позднее; свойство "Extend Gad Beyond Action" (Расширение GAD за пределы действий). В случае этого, значение пешеходной анимации (Walk), будет по умолчанию TRUE. Это означает, что как только анимация закончится, перемещение, которое актер претерпел, в результате останется в силе – он будет стоять в конечной позиции, к которой он пришел. Если бы значение было FALSE, то как только анимация закончится, все перемещения актера, которые он приобрел в результате, будут отменены и он мгновенно переместится туда, откуда начал ходьбу. Если в какой-то момент в будущем вы обнаружите, что с актерами это происходит, это свойство является первым местом, где нужно искать ответ.

Осталась одна последняя деталь, которую мы настроим здесь. Шагающая анимация начинается с того, что игрок стоит в бездействии, а это не дает того впечатления, которое мы хотим передать. Игрок должен идти некоторое время до того, как камера включится. Мы могли бы задать, что бы анимация начала проигрываться на полпути, изменив свойство действия «Start Offset», но так как это происходит в самом начале шкалы хронологии, более простой способ – это просто выбрать анимационное действие и расположить его так, что бы оно начиналось на полсекунды раньше катсцены. Катсцена будет отображаться только с нулевой отметки, и ничего, что делается до этой отметки во времени, никогда не будет показано, поэтому начальные пол секунды анимационной ходьбы актера не будут видимы.

Перемещение камеры.

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

Выберите «камеру прибытия» (Arrival Camera) и откройте ее трек-лист. Она так же как и актеры имеет треки Позиции и Ориентации, и может иметь ключевые кадры, установленные точно также. При указателе времени, установленном на 0, переместите Камеру Прибытия так, чтобы ее обзор показывал, как вы хотите, чтобы кадр смотрелся в начале ролика. В нашем примере, мы собираемся установить ее так, чтобы она показывала игрока в центре кадра. Выделите камеру и нажмите «k», чтобы задать ключевой кадр для камеры.

Cutscene camera start position.png

Вы можете заметить, что трек поля зрения (FOV – Field Of View) также получает отметку «ключ». Мы не хотим изменять FOV камеры, поэтому можете проигнорировать его.)

Далее, переместите указатель в конец анимации ходьбы, на отметку 5 секунд. Теперь актер будет находиться на конечной позиции, где он будет стоять для разговора. Измените ориентацию камеры, панорамируя вправо так, чтобы все актеры были видны в ее поле зрения. В случае нашей камеры, она находится слишком близко, чтобы охватить каждого, поэтому мы также переместим ее позицию, чтобы позволить ей всех их.

Как только ваш кадр выставлен правильно, нажмите «k» для установки второго ключевого кадра.

Cutscene camera end position.png

Вы можете заметить, что окно вида User теперь показывает красные линии, прослеживающие траекторию выбранного объекта в пространстве (если нет, вы должны нажать на кнопку «show trajectories» IconShowTrajectory.png на панели инструментов). На протяжении первых пяти секунд проигрывания катсцены, Камера Прибытия будет плавно скользить вдоль красной линии и плавно поворачиваться вокруг своих осей, перемещаясь от первого ключового кадра ко второчу (если вместо этого, она мгновенно переместится из одной позиции, вам нужно кликнуть на инструменте "default curve mode" IconDefaultCurveMode.png и попробовать установить ключи снова, или изменить свойство "transition out" ключевого кадра для кривой Безье) .

Вы можете настроить траекторию камеры путем добавления дополнительных ключевых кадров между начальным и конечным. В нашем случае мы видим, что, когда маркер времени установлен в середине движения камеры, игрок слегка проскальзывает мимо кадра.

Cutscene camera middle position unadjusted.png

Это можно поправить изменяя позиции и ориентации камеры, и до давая новый ключевой кадр с "K". В этом случае мы слегка переместим камеру назад так, что бы ее движение в пространстве было по кривой а не по прямой линии.

Cutscene camera middle position adjusted.png

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

Переключение между камерами.

  • Трек МАСТЕР объекта определяет, какая из камер в настоящее время активна."

Как только игрок прибывает, его собирается встретить обитатель лагеря, который счастлив видеть его. Чтобы дать четкий кадр того, кто ведет разговор, мы должны переключить активную камеру с Камеры Прибытия на Счастливую Камеру.

Трек, где активная камера меняется, привязан к МАСТЕР объекту. Переместите индикатор времени на шкале хронологии в точку времени, когда вы хотите переключить камеры, в данном случае 5,5 секунд, давая сцене полсекунды отобразить игрока, после того, как он пришел к месту остановки. Правый щелчок мыши на треке Активной Камеры и выбор команды «Add Action» (добавить действие). Единственная опция, доступная для этого трека – это действие «Switch Camera» (переключить камеру), поэтому добавляем эту опцию. В новых свойствах действия «Switch Camera» задайте переключение активной камеры на Happy Camera (счастливую камеру).

Теперь, когда катсцена проигрывается, мы получили съемку дальним планом , показывающую, как подходит к огню, а затем идет переключение на крупный план счастливого обитателя лагеря, так чтобы он мог произнести свое приветствие.

Cutscene switch active camera.png

Добавление диалога.

  • Строки диалога могут быть вставлены из уже существующего разговорного ресурса. Для удобства, создайте новый разговор, чтобы вставить диалог для катсцены.
  • Титры, озвучка и лицевая анимация все вложено в каждую строку.
  • Если вы потом начнете редактировать разговор, изменения будут отражаться в катсцене. Не забудьте заново сгенерировать VO и FaceFX в редакторе разговора.

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

В данном Тулсете имеется набор инструментов, разработанный для обработки всего этого – это редактор розговора. Актеру в катсцене может быть дано действие «Speak Line» (озвучить строку), которое заставляет его произнести строку с существующего диалога, со всемя тремя компонентами, собранными вместе в актерской игре автоматически.

Чтобы создать диалог для этой катсцены, мы создадим новый ресурс розговора. Этот розговор не будет использован в игре напрямую, поэтому, мы можем проигнорировать большинство более сложных функций и настроек, замененных в этом разговорном учебнике. Его единственная цель – это служить хранилищем такста диалога для использования его в этой катсцене.

На следующих скриншотах показан наш намеченный разговор. Все, что нам необходимо определить для него – это текст диалога, и опционально, настройки эмоций для RoboBrad для генерации выражений лица. Как говорилось выше, мы генерируем синтезируемый заполнитель голоса, и генерируем FaceFX на его основе. Когда мы запишем реальный голос позднее, мы просто сможем обновить этот разговор с уже новым голосом, и исполнение катсцены изменится в соответствии с этим.

Cutscene conversation.png

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

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

В свойствах действия Speak Line, задайте свойство «Source Conversation» для ресурса разговора, который вы только что создали. Затем, в свойствах «Source Line» выберите конкретную строку, которую вы хотите, чтобы читал ваш актер (оно будет иметь выпадающее меню со всеми строками разговоров ресурса в нем).

Это все, что вам необходимо, чтобы заставить актера говорить. Вы можете добавить еще одну деталь этот случай – прослеживание направления головы. Это действие, которое заставляет актера поворачивать свою голову к конкретной цели. Обычно – к персоне, с которой он ведет беседу, или которая обращается к нему. Это действие добавляется как его собственное, поэтому создайте еще один трек и добавьте ему действие «Headtracking» и цель – игрока (player). В данном случае, мы хотим, чтобы дружелюбный обитатель лагеря повернул свою голову в направлении игрока перед тем, как заговорить.

Добавление других деталей

  • Действие «Headtracking» заставляет актера смотреть на другой объект катсцены.
  • Вы можете иметь более одного действия на трек, если они не пересекаются.

На данный момент мы прошлись по всем основам, поэтому мы просто доделаем этот разговор с некоторыми другими деталями, которые делают все то же, что и в примере выше.

Чтобы добавить катсцене немного больше анимации, добавим еще один трек для camp_happy (дружелюбного) с анимационным действием (mh.dg_hnd_salute_01, приветствие) на протяжении его разговорной линии. С этой анимацией проще иметь дело чем с анимацией ходьбы, потому что она не перемещает актера, нет необходимости в определении ключей позиции или беспокоиться о разрешении GAD.

Мы зададим направление взгляда для NPC camp_angry (сердитому) так, чтобы она повернула голову в направлении NPC camp_happy (дружелюбного), пока тот говорит. Когда мы в дальнейшем переключим камеры, чтобы показать ее линию диалога, она уже будет смотреть в его направлении.

Для следующей строки разговора NPC camp_happy, мы сделаем изменение «headtraking» (направление взгляда/головы) видимым во время показа его (NPC) крупным планом так, чтобы игрок увидел, как внимание актера camp_happy переключается на NPC camp_angry (сердитого). Отметьте себе, что мы можем повторно использовать существующие треки «Dialogue» и «Headtraking» для этого актера. Нам не нужно создавать новый трек для каждого одиночного действия, которое выполняет актер. До тех пор, пока продолжительность действий на трек не перекрываются, они могут мирно сосуществовать.

Наконец, после последней разговорной строки обитателя лагеря camp_angry, мы зададим для него headtraking (направление головы) так, чтобы он посмотрел обратно на игрока. Мы интегрируем эту катсцену в разговор в тот момент, когда он собирается произнести следующее слово, так что это хороший способ указать, что фокус разговора теперь перешел к игроку.

Как только мы закончили разработку катсцены, мы знаем, какова должна быть ее продолжительность. Теперь вы можете перейти к свойствам разговоров в Object Inspector и задать продолжительность катсцены такую, какую вы пожелаете.

Окончательно шкала хронологии будет иметь такой вид:

Cutscene finished timeline.png

Как протестировать катсцену

Во вкладке триггеры создаете триггер. Потом устанавливаете его на локацию. Далее пишете скрипт

#include "log_h" 
#include "log_h"
#include "utility_h"
#include "wrappers_h"
#include "events_h"
void main()
{
event ev = GetCurrentEvent();
int nEventType = GetEventType(ev);
Log_Events("", ev);
switch(nEventType) {
case EVENT_TYPE_ENTER:
{
object oHero = GetHero();
DisplayFloatyMessage(oHero, "Test", FLOATY_MESSAGE, 16777215, 2.f);
CS_LoadCutscene(R"1catscene.cut");
PlayCutscene();
break;
}
}
}

Для триггера нужно сделать скрипт, а название этого скрипта (справа в pallete window) указать в атрибутах триггера (attributes). Скрипт запускает "1catscene.cut" (файл катсцены)

CS_LoadCutscene(R"1catscene.cut");

Полезности

Здесь мы приведём кое-какие советы, которые позволят вам сэкономить время и нервы при создании роликов.

- Head tracking (слежение) часто используется, чтобы заставить одного актёра посмотреть на другого либо на какой-либо видимый предмет в ролике. Однако вы можете манипулировать глазами актёра, заставляя его смотреть и на невидимые объекты. Вы можете заставить актёра смотреть то на один невидимый предмет, то на другой, а можете и передвигать отслеживаемый невидимый предмет, заставляя актёра поворачивать голову и смотреть на что-либо независимо от других видимых актёров или предметов.

- Полезно давать используемым камерам осмысленные имена. Можно назвать камеру именем актёра или предмета, на который смотрит камера, например cam_actor_1, или указать на какую-либо характеристику камеры, наппример close-up (крупным планом) или wide-angle (широкоугольная).

- Если вы передвигаете камеру вокруг объекта (комнаты) наблюдая за группой актёров или предметов, может появиться проблема с внезапным вращением камеры в другом направлении. Заставить камеру двигаться так, как нужно вам, можно добавляя или вычитая 360 градусов позиции/ориентации.

- Не стесняйтесь экспериментировать с анимацией. Попробуйте использовать анимацию, которая обычно не предназначена для выбранного актера, и вы можете обнаружить некоторые интересные или странные движения, которые, возможно, сможете использовать в своём ролике.

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

- Обратите внимание на то, что при перемещении камеры с использованием ключевых кадров (key frames) необходимо правильно установить параметр transition out, который устанавливает каким образом происходит переход к следующей позиции камеры. По умолчанию этот параметр установлен в Step (шаговый переход), то есть рывком, в то время как Bezier и Linear заставят камеру двигаться плавно. Таким образом, если вам не нравится, как двигается камера, проверьте это параметр.

- Если вы создаёте длительный ролик с большим количеством деталей, то возможно вместо того, чтобы использовать большое количество камер, следует передвигать по всей сцене несколько камер, то есть пока активной является одна камера, вы можете передвинуть на требуемое место другую камеру.

- С целью тестирования измените длину ролика к меньшему значению и, по мере добавлени действий, увеличивайте это число. Таким образом вам не придется постоянно ждать окончания ролика, если в нём ещё много пустого места.

- После размещения анимации на дорожке вы можете ускорить её, укоротив её отображение на дорожке, либо наоборот замедлить, соответственно удлинив её отображение на дорожке

- Вы можете разнообразить содержание вашего ролика, используя различные эффекты при появлении или исчезновении актёров или предметов. Например, разместите невидимые обломки скалы, потом, когда возникнет необходимость, запустите эффект с облаками пыли и, пока этот эффект проигрывается, сделайте обломки скалы видимыми. Когда эффект закончится, обломки скалы останутся на месте.

- Если вы обнаружите, что актер идёт по любой поверхности (даже по такой, например, как вода), в то время, как он должен двигаться только по земле, вы можете установить для локации, на которой базируется ролик, параметр items follow surface, тогда актёр сможет ходить только по земле и сможет залезть в воду. Если же вы хотите, чтобы актёр или предмет не следовали по вертикали за землёй, а, например, плыли частично погружёнными в воду, то придётся регулировать вертикальное положение актёра или лодки по оси z.

- При создании ролика вы можете столкнуться с проблемой при активации не уникальных для локации, на которой создатся ролик, предметов. Например, если на локации размещены три одинаковых сундука, то при попытке активировать их в ролике, возникнет ошибка. В таком случае необходимо использовать разные сундуки, то есть с разными идентификаторами.



Язык: English  • русский