
Мы не будем использовать BMOD, да и весь AMXX вообще. В общем смотрим
- Valve Hammer Editor – редактор карт очевидно;
- BSP Viewer – понадобится для экспорта карты в 3ds;
- Blender – прекрасный 3Д редактор со встроенным Bullet’ом;
- rba2ba – скрипт на питоне, написанный чехом Jonatan Matejka. Потребуется для генерации скелета будущей модели ( Скачать: rba2ba.rar
- Blender SMD Tools – для экспорта нашей работы в привычный SMD;
- smdfix – исправляет названия текстур и UV карту в SMD ( Скачать: [attachment=9357] ).
Компилируем нашу карту в bsp (советую установить параметр -subdivide 512) и открываем ее в BSP Viewer’е.
Жмем File -> Export -> 3DS File. Оставляем галку на Export Materials. Сохраняем 3ds файл. Если вы собрали карту вместе с текстурами (исключили wad файл), то жмем File -> Export -> Bitmaps. Параметры в опциях можно оставить без изменений. Если карта все же берет материалы из wad’а, то вам придется распаковать содержимое архива при помощи специальной для этого программой (подойдет Wally или GCFScape). Теперь, когда у вас 3ds со всеми bmp-текстурами, можно переходить к следующему шагу.
Установите и запустите редактор. Подключите плагины rba2ba и Blender SMD Tools (File -> User Preferences -> Addons и жмем на Install from File). Теперь импортируем наши ящики в Блендер. Жмем Fule -> Import -> 3D Studio (.3ds). Переходим в Bledner Game.
Выделяем любой ящик. Переходим к Physics в свойствах объекта (в правом меню последняя иконка).
Устанавливаем Physics Type: на Rigid Body, и Collision Bounds на Box (или Convex Hull если меш не имеет примитивной формы). Дополнительно можно установить массу (Mass) объекту. Тоже самое делаем и с другими ящиками.
Выделяем все ящики и вводим комбинацию клавиш Shift+Ctrl+Alt+C, выбираем Origin to Geometry.
Переходим снова в правое меню и на этот раз щелкаем по иконке World
Здесь мы можем изменить гравитацию (Gravity), FPS и физические шаги (Physics Steps). Удаляем дощечку под ящиками. Теперь нажимаем на P. Башня рассыпалась? Замечательно. Esc вернет вас обратно в режим редактирования. Если ящики будут проваливаться под землю, измените параметр Substeps или выделите поверхность на которую падают ящики и задайте соответствующий Collision Bounds.
Когда анимация физики будет вас устраивать, установим галку на Game -> Record Animation. Снова запускаем анимацию. Далее удаляем все объекты кроме ящиков. Выделяем оставшиеся коробки и жмем на пробел. В поле ввода набираем Rigid body anim to bone anim (это установленный скрипт нашего чешского друга и автора оригинала этой статьи).
После группируем меши комбинацией Сtrl+G. Теперь File -> Export -> Source Engine, Scene as configured. Пишет ошибку? Проверьте в свойствах сцены (правое меню, иконка с шаром и цилиндром) указан ли путь к директории для экспорта (Export Path). Не забудьте установить формат SMD.
Запускаем smdfix через батник или командную строку. Можете импортировать полученные смд (в привычном 3д редакторе) и проверить анимацию. Если вас все устраивает, то переходим к заключающим шагам.
$cd "." // относительный Путь к ресурсам
$body "body" "out" // body - название меши в mdl, out - путь к smd меши
$sequence "idle" "anims/ArmatureAction" fps 50 // idle - название анимации в mdl,
// anims/ArmatureAction - путь к smd анимации,
// fps - частота кадров в анимации
Подробнее о qc скриптинге можно почитать вот тут
Компилируем наш qc код компилятором для HL (через studiomdl.exe). Возможно, может появиться ошибка при компиляции из-за ограничений в кол-ве кадров в анимации. В таком случае придется вернуться к Блендеру и понизить значение FPS в параметрах сцены.
Скачать компилятор: [attachment=9358]

Авторский перевод сайта Next21.ru: Link