5.7 KiB
Live2D Cubism — анимированные 2D-персонажи
Live2D Cubism приносит в игру модели Live2D: нарисованных персонажей, которые дышат, моргают, следят за точкой, двигаются по законам физики (волосы, одежда) и исполняют движения и выражения лица, которые сделал их художник. Мод содержит рантайм Cubism для C# и его нативные библиотеки ядра; другие моды используют его, чтобы показать модель в сцене.
Это необязательный блок игры Cthangover. Нынешний сюжетный контент всё ещё пользуется статичными портретами, и ни одна встроенная игра пока не поставляет Live2D-модель; собственная демо-сцена мода показывает работающую модель.
Что умеет модель
- Жизнь в покое — автоматическое моргание (включено по умолчанию) и дыхание (выключено по умолчанию).
- Физика — волосы и одежда колышутся по правилам из
physics3.jsonмодели. - Взгляд — голова и глаза поворачиваются к целевой точке; в демо за персонажем можно «водить» мышью, перетаскивая её по нему.
- Движения и выражения — проиграть движение из группы (
mtn_01…) или установить выражение (exp_01…), заданные в модели. - Параметры — задать любой параметр модели напрямую, как на картинке выше, где правую руку поднял один параметр.
- Размещение — модель сама вписывается в свою область или ставится в заданную позицию с заданным масштабом.
Требования к модели
Модель — это стандартная папка экспорта Cubism, лежащая внутри мода:
my_mod/
└── models/
└── runtime/
├── ren.model3.json входной файл, на который вы указываете
├── ren.moc3
├── ren.physics3.json
├── ren.cdi3.json
├── ren.4096/texture_00.png
├── expressions/exp_01.exp3.json …
└── motions/mtn_01.motion3.json …
- Модель — это модель Cubism (
.moc3сmodel3.json). Демо-модель сделана в Cubism 5.3 и использует его маски и рисование вне экрана. - Нативное ядро Cubism входит в состав для Windows (
.dll) и Linux (.so). - Примеры моделей идут под собственной лицензией Live2D; перед публикацией прочитайте
ReadMe.txtмодели.
Показ модели из сценария
Действие add_live2d_model ставит модель в вид сцены:
action add_live2d_model model_path=models/runtime/ren.model3.json mod_id=my_mod node_name=Ren x=960 y=540 scale=0.5
model_path—model3.json, путь относительно папки мода;mod_id— мод, в котором она лежит;node_name— имя этой модели в сцене (второе действие с тем же именем игнорируется);x,y,scale— необязательные позиция и размер; без них модель вписывается автоматически.
Мод с кодом может создать модель через Live2DService.CreateModel(...) и вызвать у неё StartMotion(group, number), StartExpression(id), SetLiveParameter(id, value) или SetTargetPoint(x, y).
Демонстрация
Тестовый набор avatar этого мода содержит пример модели Ren. Когда он включён, Ren появляется возле виллы в Cthangover и следует за перетаскиванием мыши; его автоматическая проверка поднимает правую руку и сравнивает кадры. Это демо для разработчиков, в обычной игре оно выключено.
Если что-то пошло не так
- Модели нет, а в логе сообщение о
model_pathили о моде. Путь задаётся относительно папки мода и должен указывать наmodel3.json;mod_idдолжен быть id того мода, где модель лежит. - Модель оказалась не в том месте или не того размера. Задайте
x,yиscale— или не задавайте ни одного из трёх, чтобы модель вписалась сама. - Модель не загружается на платформе. Ядро Cubism поставляется только для Windows и Linux.
