воскресенье, 11 декабря 2016 г.

[unity3d] UE2 VertMesh Importers

Давненько я ничего не писал!

По многочисленным просьбам выкладываю ссылку на конвертер и импортер VertMesh файлов из Unreal Engine 2. В данном формате содержится большая часть анимации умений для игры Lineage2.



Ссылка на GitHub под катом:

понедельник, 1 августа 2016 г.

Arcanum файлы : SEC (часть вторая)

Стены. Сегодня я нашел время продолжить работу над sec файлами. Рассмотрим OBJECT TYPE 0 (WALL).
Если бы стены могли сдерживать наш рост, все крестьяне были бы карликами, а короли — великанами.

Создадим пару зданий.





На данной картинке 48 обьектов (0х30). Считаются внутренние и внешние стены. 

Если предыдущий OBJECT TYPE SCENERY имел следующую структуру,

04BYTE HEADER
24BYTE PRO_GUID -> 4BYTE PRO_ID
24BYTE OBJ_GUID -> 4BYTE GLOBAL_CHANGE_FLAG
04BYTE PRO_TYPE
11BYTE SYS_FLAG
04BYTE LOCATION FLAG
04BYTE OFFSET_X (OPTIONAL)
04BYTE OFFSET_Y (OPTIONAL)
04BYTE DELTA_X
04BYTE DELTA_Y
04BYTE FLAGS
ХХ + PROPERTY (OPTIONAL)

= 83 BYTE OR 91 /w offset

То сейчас всё гораздо проще.


04BYTE HEADER
24BYTE PRO_GUID -> 4BYTE PRO_ID
24BYTE OBJ_GUID -> 4BYTE GLOBAL_CHANGE_FLAG
04BYTE PRO_TYPE
14BYTE SYS_FLAGS
01BYTE DIRECTION FLAG
04BYTE FLAGS 0
04BYTE OFFSET_X (OPTIONAL)
04BYTE OFFSET_Y (OPTIONAL)
04BYTE FLAGS 1

Рассмотрим внимательнее:


77 00 00 00 01 00 00 00 72 F3 5D 01 FD 03 00 00
02 00 00 00 6A F3 5D 01 E2 9D E9 FE 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 03 00 03 00 04 00 00 00  | 00 - WALL
00 00 00 00 00 00 00 88 C1 12 01 06 00 00 00 02
00 00 00 00 40 00 00

77 00 00 00 01 00 00 00 8A F3 5D 01 00 04 00 00  | 00 04 00 00
02 00 00 00 82 F3 5D 01 52 15 61 2F 00 00 00 00
00 00 00 00 D4 58 5D 8E A1 AF 5B 47 A4 9E 7A 1F
B9 D6 61 26 00 00 00 00 03 00 03 00 04 00 00 00  | 00 - WALL
00 00 00 00 00 00 00 88 01 10 01 02 00 00 00 02

00 00 00 00 40 00 00

Координаты тайлов стен выделены зеленым и ведут отсчет от LOC 0,0. 



понедельник, 25 июля 2016 г.

Arcanum файлы : SEC (карты)

Небольшое лирическое отступление :
В июне появился экспериментальный билд unity 5.5 с расширенной поддержкой 2D, где добавили класс TileMap. Инструмент всё еще сырой, но довольно занятный. Мне сразу захотелось его опробовать! Но на чем ? И тут я вспомнил про старый добрый Arcanum : Of Steamworks and Magick Obscura. Тайловый ? Да. Форматы файлов известны ? Вроде бы да.. Ну тогда поехали !

Если с формат большинства файлов был разобран до меня , то с *.sec или картами было всё сложно. Во-первых формат известен, но не всем и (возможно) не весь. Подлинно известны два человека : Crypton с arcanum.game-alive.com который внезапно положил потерял интерес к Аркануму, и radzh,  который разрабатывает Arcanum : Revolution, оказался совсем не дружелюбен (ацкий конспиратор), хоть и доступен онлайн. Выходит, что сообщество хоть и не походило на секту анально огороженных, но на чью-либо помощь рассчитывать не приходилось. Было еще два источника информации : чья-то копипаста на dropbox, и исходники ToEE. Первый документ оказался не совсем полным и местами ошибочным, второй - подходил только для понимания каким путем шла Тройка,  т.к. движок ToEE был серьезно модифицирован по сравнению с арканумом..
Основной проблемой стал парсинг объектов. ToEE в этом отношении ушел немного вперед, и его исходники мало применимы к аркануму .

Я пошел методом тыка :

Создано 4 одинаковых объекта типа Scenery

 

Получилось вот это

Plants 0FBE LOC :0,0
77 00 00 00 01 00 00 00 72 F5 5D 01 BE 0F 00 00
02 00 00 00 6A F5 5D 01 6E C4 A0 FD 00 00 00 00
00 00 00 00 3C B2 30 CD A6 81 3B 41 9E E0 6E ED
21 10 C3 24 03 00 00 00 04 00 0E 00 04 00 00 00
00 00 00 00 00 00 00 FF FF FF FF F9 FF FF FF 30
0C 40 00

Plants 0FBE LOC :3,0
77 00 00 00 01 00 00 00 72 F5 5D 01 BE 0F 00 00
02 00 00 00 6A F5 5D 01 6E C4 A0 FD 00 00 00 00
00 00 00 00 45 E4 F5 56 9A 08 C1 4B 9C F4 EB 61
5F E4 AA 2D 03 00 00 00 04 00 0E 00 04 00 00 00
00 00 00 00 00 00 01 03 00 00 00 00 00 00 00 FF
FF FF FF FB FF FF FF 30 0C 40 00

Plants 0FBE LOC :0,3
77 00 00 00 01 00 00 00 72 F5 5D 01 BE 0F 00 00
02 00 00 00 6A F5 5D 01 6E C4 A0 FD 00 00 00 00
00 00 00 00 40 31 78 91 DD D2 48 4B 83 5A 7D 3F
62 FC 15 9D 03 00 00 00 04 00 0E 00 04 00 00 00
00 00 00 00 00 00 01 00 00 00 00 03 00 00 00 01
00 00 00 F7 FF FF FF 30 0C 40 00

Plants 0FBE LOC :3,3
77 00 00 00 01 00 00 00 72 F5 5D 01 BE 0F 00 00
02 00 00 00 6A F5 5D 01 6E C4 A0 FD 00 00 00 00
00 00 00 00 05 F0 28 29 7E EC 06 40 BC AF E0 92
8F 4E BB BA 03 00 00 00 04 00 0E 00 04 00 00 00
00 00 00 00 00 00 01 03 00 00 00 03 00 00 00 FF
FF FF FF 02 00 00 00 30 0C 40 00