Добро пожаловать Гость, Вы в разделе: Вход

Энциклопедия по редактору Arma, Arma 2, Arma 3 и Operation Flashpoint

VKRSSRSS
На главную

Навигация


Искать в энциклопедии:
»


Важная информация




Сайт управляется

Учебник по написанию скриптов
Изображение



Учебник по созданию роликов


Изображение



Наши партнеры



ArmA 3, ArmA 2 news Russian community, SARMAT community

Создание роликов: Урок 2


Теперь мы знаем как создать камеру, как закончить наш ролик, как сделать плавное затемнение.

В этом уроке мы попробуем создать ролик по сложнее.
Для этого копируем из наш файл из прошлой миссии и вставляем его в новую. Да и учитесь подгонять все свои скрипты под миссию, чтобы не писать или искать по интернету заново. Итак по сути мы имеем начало и конец. Все как в предыдущем уроке. Не много дополним его.
Теперь наш танк должен поехать. Да-да! А камера должна медленно последовать за ним, сфокусироваться и экран снова уйдет в "завесу"
Что для этого нужно?
Создаем танк и называем его tank, ставим его на тоже место где он у нас стоял и в прошлом ИНТРО.

Пишем команду tank disableai "MOVE" в нашем скрипте. Для чего мы это сделали?! Чтобы наш танк не уехал пока наша камера создается, а экран входит в рабочее состояние.
После того, как экран выходит из темной "завесы" дописываем tank enableai "MOVE".

Незабываем ставить танку чекпоинт. Итак, теперь наш абрамс двинется только после того, как экран выйдет из затемнения.
Теперь нам нужно чтобы камера последовала за танком, а затем и привязалась к нему.
_camera camsettarget tank
_camera camsetrelpos [0,1,1]
_camera camcommit 8

Данное действие говорит нам о том, что камера сфокусируется на танке относительно той позиции где она находится сейчас по заданным координатам 0,1,1, и выполнит это действие за 8 секунд.
#loop
_camera camsettarget tank
_camera camsetrelpos [0,6,1]
_camera camcommit 9
? (tank distance t1)<10:goto "next"
goto "loop"
#next

Пример


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


Советы

Fraps:
Вы так же можете снимать видео через Fraps, тут конечно возможностей побольше, но основы владения камерой тут все равно не помешают. Для этого вам потребуется программа Fraps, она вам пригодится не только для съемок видео, но еще и при получении скриншотов.
Но вот беда, 30 секунд снятого видео у нас весит почти 300 мб!
1. Перегоните видео в формат avi. Используя при этом программу WinAVI 8.0
2. При помощи программы VirtualDub и кодака (DivX521XP2K)), который необходим - сжимаем видео до пару мб.
Это лишь описание уменьшения размера нашего с вами видео, все остальное, как наложить эффекты, звуки, музыку, переходы, и какие программы лучше для этого подходят вы сможете сами.

А дальше только ваша фантазия и не много умения понимать, то что вы делаете. Полезная информация:

Замедленное движение
Для этого необходимо использовать команду 'SetTimeAcc'. По умолчанию ставится значение равное 1, варьирование значение от 0.1 - 1, замедляет кадры.

Прикрепление камеры

Чтобы прикрепить камеру к объекту мы используем пару стандартных команд, которые зацикливаем:

#loop
_camera camsettarget car
_camera camsetrelpos [0,6,1]
_camera camcommit 0
? (car distance t1)<10:goto "next"
goto "loop"
#next

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

Дрож камеры

Синтаксис: ]addCamShake [power, duration, frequency]Параметры: power: Number - на сколько сильно камеру будет трясти
duration: Number - как долго будет длится эффект
frequency: Number - устанавливает ритм.
Примеры:
addCamShake [10, 1, 25]

Камера фокусируется на объекте
_camera camSetTarget player
_cam camsettarget foc1
_cam camsetrelpos [0,6,1.5]

Фокусируется на объекте используя заданные координаты.

Использование активной карты:

_camera = "camera" camcreate [0,0,0]
_camera cameraeffect ["internal", "back"]

;*-*-*-*-*-*-*-*-*-*-*-*MAPA*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

showmap true; - включает карту
showPad false; - отключает отображение блокнота
showCompass false; - отключает отображение компаса
showWatch false; - отключает отображение часов
showRadio false; - отключает отображение рации

mapAnimClear; -очищает карту от анимаций

mapAnimAdd [8, 0.1, getMarkerPos "basa"]; - передвигает камеру на новый маркер ( время, увелечиние, позиция)
mapAnimCommit;
ForceMap true; - отображает карту на экране во время миссии.
@mapAnimDone;

mapAnimAdd [4, 0.1, getMarkerPos "radar"];
mapAnimCommit;
~3.5

mapAnimAdd [4, 0.1, getMarkerPos "hellybasa"];
mapAnimCommit;
~3.5

mapAnimAdd [4, 0.1, getMarkerPos "blokpost2"];
mapAnimCommit; - проигрывание анимации
~3.5
;mapAnimAdd [2, 0.1, getMarkerPos "Obrana"];
;"obrana" setMarkerColor "ColorRed" -выбор цвета маркера
;"obrana" setMarkerType "Destroy" - выбор типа маркера
;mapAnimCommit;
;@mapAnimDone;
~4
forcemap false;
_camera cameraeffect ["terminate", "Back"]
camdestroy _camera

showPad true;
showCompass true;
showWatch true;
showRadio true;
exit

Вывод текстов в ролике.

Для этого достаточно написать:

titlecut [localize "STR_cut1","",3]

STR_cut1 это Key_ID контейнера в stringtable на который ссылается данная команда.

Проигрывание анимаций

unit switchmove "Имя_Анимации"
Вся разница между switchmove и playmove заключается в том, что первая команда проигрывает анимации незамедлительно. Весь список анимаций вы можете посмотреть в данной статье.

Добавление ресурсов в ролики:

Например биноколь:

cutrsc ["binocular","plain down",1000]
_camera camPrepareTarget [0,0,0]
_camera camPreparePos [0,0,0]
_camera camPrepareFOV 0.700
_camera camCommitPrepared 0

Приближение/отдаление камеры

Меняется за счет изменение параметра camPrepareFOV. 0.002 - очень близко.
_camera camPrepareTarget [0,0,0]
_camera camPreparePos [0,0,0]
_camera camPrepareFOV 0.700
_camera camCommitPrepared 0

Привязывание камеры к пуле

Снайперу с свд которого зовут sniper в инит пишем:

this AddEventHandler ["fired",{_this exec "bullet.sqs"}]

Скрипт bullet.sqs

_camera = "camera" camcreate [0,0,0]
_camera cameraeffect ["internal", "back"]
_Rocket = nearestObject [sniper,"B_762x54_noTracer"]
_camera camSetTarget _Rocket
#loop
?(IsNull _Rocket): goto "next"
_camera camSetRelPos [-0.5,-7,1]
_camera camCommit 0
goto "loop"
#next
_camera cameraeffect ["terminate", "Back"]
camdestroy _camera

sniper - имя стрелявшего.
"B_762x54_noTracer" - название боеприпаса к которому привязываем камеру.
Камера должна привязываться к пуле при каждом выстреле которые произведет этот юнит.
Что бы убрать привязывание камеры, активируем команду: sniper removeAllEventHandlers "Fired"

Спутник:

"colorCorrections" ppEffectEnable true; "filmGrain" ppEffectEnable true;
"filmGrain" ppEffectAdjust [0.1, -1, 0.1, 0.05, 2, false]; "filmGrain" ppEffectCommit 1;
"colorCorections" ppEffectAdjust [1, 0.75, 0, [0.8,0.9,1,-0.1], [1,1,1,2], [-0.5,0,-1,5]]; "colorCorrections" ppEffectCommit 1;

РАСПРОСТРАНЕННЫЕ ОШИБКИ:


- не путайте _cam и _camera, если при создании камеры, вы указываете одно из приведенных названий, то вы должны использовать его на протяжении всего скрипта
- не создавайте камеру по 100 раз, это действие необходимо выполнить только 1 раз, в самом начале скрипта.
- будьте внимательны к синтаксису.
- не нагромождайте скрипт сразу, делайте все последовательно. Действуйте по принципу "Написал -проверил"
- не делайте из ролика, демонстрацию техники и юнитов, он должен нести определенный смысл.
- не нагромождайте ролик триггерами с отчетом времени и т.д (чтобы например через 50 секунд текст вывелся на экран). Велика вероятность что вы получите не очень хороший ролик.
Скачать пример
Изображение
Две колонки
О нас
SunHorizon Wiki версия 1.0.2.17.
© 2013-2014 SUNHORIZON.INFO.Все права сохранены.
В проекте использованы изображения FamFamFam
Связь с нами
Изображение
Правила сайта
Изображение

Авторские права
Изображение