#1 26-06-2017 12:53

Shag
Registered: 29-03-2010
Posts: 147
Website

[VC|CLEO|REL]CarRec(plus ObjRec)

121.jpg
Вы когда-нибудь замечали "рандомность" физики в GTA? Вы можете скриптом заставить машину прыгнуть на определенной рампе в определенных координатах, но лететь она будет каждый раз немного "рандомно".
Чтобы предотвратить эту проблему в SA, Рокстары* создали ".rrr" файлы(в carrec.img), содержащие записанные "пути" движения автомобилей. Это позволило создать сцены вроде этой.

Теперь это возможно сделать и в Vice City, но не только с автомобилями...

Видео демонстрация

Требуется последняя версия библиотеки CLEO!


СКАЧАТЬ

Итак,

"CarRec":

"CarRec" дает вам возможность записывать движения автомобиля в файл ".cr" для воспроизведения их позднее в ваших скриптах и миссиях.

Установка:

Скопируйте все файлы и папку "RECORDINGS" из "1. CarRec\CLEO\" в папку "CLEO" вашей Vice City, если у вас установлена последняя версия библиотеки CLEO(http://cleo.li/).


Как использовать:

Активация/деактивация(в автомобиле): C + 1
Далее вы можете:
1) Для записи движения автомобиля нажмите R.
Нажмите R снова для прекращения записи.
2) Для воспроизведения последней записи нажмите P.
Нажмите O, чтобы поставить воспроизведение на паузу.
Зажмите I для перемотки назад.
Нажмите P снова, чтобы прекратить воспроизведение.

Вы также можете настроить "CarRec" в "CLEO\CarRec.ini":
MEMLIMIT:
Размер выделенной памяти для записи в байтах. Большее значение - более долгая запись. Слишком высокие значения могут привести к замедлению работы скрипта.
CLRTRWREC:
Очищать траффик при записи: 1 - да, 0 - нет
CLRTRWPLA:
Очищать траффик при воспроизведении: 1 - да, 0 - нет
HIDEZCNAM:
Скрыть названия зон/автомобилей для предотвращения багов: 1 - да, 0 - нет
SHOWALLST:
Отображать всю текстовую часть скрипта: 1 - да, 0 - нет

Каждый раз, когда вы делаете запись, скрипт создает файл "carrec.cr" в папке "CLEO\RECORDINGS\".
Если файл уже существует - "CarRec" перезапишет его.
В дальнейшем вы можете переименовать этот файл и использовать его в своих скриптах и миссиях(читайте "3. For Scripters\How to[RUS].txt").
Также в папке "2. Examples" вы можете увидеть несколько примеров использования таких записей:
1)1CarScene:
Сцена с одним записанным авто.
Активация/деактивация: C + 2
2)2CarsScene:
Сцена с двумя записанными авто.
Активация/деактивация: C + 3
3)10CarsScene:
Сцена с десятью записанными транспортными средствами.
Активация/деактивация: C + 4
4)360Scene:
Сцена с четырьмя записанными транспортными средствами, одним записанным объектом(оторванное колесо инфернуса), эффектами и актерами.
Активация/деактивация: C + 5

"ObjRec":

Также вы можете записывать движения объектов используя SCM функции из "3. For Scripters\SCM FUNCTIONS" (подробнее в "3. For Scripters\How to[RUS].txt").

Пример использования этого вы можете увидеть в "360Scene", когда одно оторванное колесо инфернуса движется точно в рулевой винт вертолета каждый раз, когда вы воспроизводите эту сцену.

Структура .CR файла:

Каждая запись, содержащаяся в ".cr" файле, состоит из "кадров". Каждый кадр имеет следующую структуру(0x30 байт на кадр):

0x00 - INT32 - Timekey in ms
0x04 - INT16 - XYZ.right.x
0x06 - INT16 - XYZ.right.y
0x08 - INT16 - XYZ.right.z
0x0A - INT16 - XYZ.up.x
0x0C - INT16 - XYZ.up.x
0x0E - INT16 - XYZ.up.x
0x10 - FLOAT - XYZ.pos.x
0x14 - FLOAT - XYZ.pos.x
0x18 - FLOAT - XYZ.pos.x
0x1C - INT16 - x push
0x1E - INT16 - y push
0x20 - INT16 - z push
0x22 - INT16 - x turn speed
0x24 - INT16 - y turn speed
0x26 - INT16 - z turn speed
0x28 - INT8 - Steering Angle
0x29 - INT8 - Accelerator Pedal Power
0x2A - INT8 - Brake Pedal Power
0x2B - INT8 - Hand Brake Status
0x2C - INT8 - Horn Status
0x2D-0x30 - 3 bytes - Reserved

Запись и воспроизведение не зависят от FPS: они привязаны к игровому таймеру, так что не имеет значения, если вы записываете при 60 FPS и воспроизводите эту запись при 30 FPS или наоборот.

Структура .OR файла:

(0x28 байт на кадр):

0x00 - INT32 - Timekey in ms
0x04 - INT16 - XYZ.right.x
0x06 - INT16 - XYZ.right.y
0x08 - INT16 - XYZ.right.z
0x0A - INT16 - XYZ.up.x
0x0C - INT16 - XYZ.up.x
0x0E - INT16 - XYZ.up.x
0x10 - FLOAT - XYZ.pos.x
0x14 - FLOAT - XYZ.pos.x
0x18 - FLOAT - XYZ.pos.x
0x1C - INT16 - x push
0x1E - INT16 - y push
0x20 - INT16 - z push
0x22 - INT16 - x turn speed
0x24 - INT16 - y turn speed
0x26 - INT16 - z turn speed

Доп. информация:

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

Автор: Shagg_E

Отдельная благодарность:

DK - "Ядро" скрипта (операции с бинарными файлами), поддержка
xanser - Решение проблемы лагов при движении
spaceeinstein - Решение проблемы гудка автомобиля
kenking - Решение проблемы оторванного колеса
=SpitFire= - Помощь и поддержка
mfisto - Помощь

Offline

#2 28-06-2017 15:37

Goldfish
From: Псков
Registered: 21-04-2015
Posts: 177
Website

Offline

#3 02-07-2017 11:42

Seemann
Registered: 07-08-2006
Posts: 2,156

Re: [VC|CLEO|REL]CarRec(plus ObjRec)

Очень круто! Молодец!

Offline

Board footer

Powered by FluxBB