ZenGin Программы Модификации Ассеты Черновик Анимации PFX/VFX Регистрация Вход
AI_AimAt() ? G G
Функция исскуственного интеллекта.
Атакующий Npc целится из оружия дальнего радиуса поражения в целевого Npc.
AI_AlignToFP() ? G G
Функция исскуственного интеллекта.
Npc выравнивается на Freepoint по направлению стрелки заданной в Spacer.
AI_AlignToWP() ? G G
Функция исскуственного интеллекта.
Npc выравнивается на Waypoint по направлению стрелки заданной в Spacer.
AI_Ask() ? G G
Функция исскуственного интеллекта.
Определяет функцию вызываемую при утвердительном и отрицательном ответах.
AI_AskText() ? G G
Функция исскуственного интеллекта.
Определяет как Npc будет отвечать на сказанную фразу.
AI_Attack() ? GG
Функция исскуственного интеллекта.
Npc начинает сражаться.
AI_CanSeeNpc() ? G G
Функция исскуственного интеллекта.
Npc может увидеть другого Npc.
AI_CombatReactToDamage() ? G G
Функция исскуственного интеллекта.
Реакция Npc на повреждение во время боя.
AI_ContinueRoutine() ? GG
Функция исскуственного интеллекта.
Npc продолжает выполнение распорядка дня.
AI_Defend() ? GG
Функция исскуственного интеллекта.
Npc парирует удар противника.
AI_Dodge() ? GG
Функция исскуственного интеллекта.
Npc отклоняется назад.
AI_DrawWeapon() ? GG
Функция исскуственного интеллекта.
Npc обнажает экипированное оружие.
AI_DropItem() ? GG
Функция исскуственного интеллекта.
Npc выбрасывает из рюкзака указанный предмет.
AI_DropMOB() ? GG
Функция исскуственного интеллекта.
Npc выбрасывает имеющийся MOB.
AI_EquipArmor() ? GG
Функция исскуственного интеллекта.
Npc экипирует указанные доспехи из инвентаря.
AI_EquipBestArmor() ? GG
Функция исскуственного интеллекта.
Npc одевает лучшие доспехи из имеющихся в инвентаре.
AI_EquipBestMeleeWeapon() ? GG
Функция исскуственного интеллекта.
Npc экипирует лучшее оружие ближнего боя.
AI_EquipBestRangedWeapon() ? GG
Функция исскуственного интеллекта.
Npc экипирует лучшее оружие дальнего боя.
AI_FinishingMove() ? GG
Функция исскуственного интеллекта.
Npc убивает другого Npc.
AI_Flee() ? GG
Функция исскуственного интеллекта.
Npc убегает от противника.
AI_GotoFP() ? GG
Функция исскуственного интеллекта.
Npc перемещается в указанный Freepoint.
AI_GotoItem() ? GG
Функция исскуственного интеллекта.
Npc перемещается к предмету инвентаря.
AI_GotoNextFP() ? GG
Функция исскуственного интеллекта.
Npc перемещается в следующий указанный Freepoint.
AI_GotoNpc() ? GG
Функция исскуственного интеллекта.
Npc перемещается к другому Npc.
AI_GotoSound() ? GG
Функция исскуственного интеллекта.
Npc перемещается к источнику звука.
AI_GotoWP() ? GG
Функция исскуственного интеллекта.
Npc перемещается в указанный Waypoint.
AI_LookAt() ? GG
Функция исскуственного интеллекта.
Npc смотрит на объект или точку.
AI_LookForItem() ? GG
Функция исскуственного интеллекта.
Поиск предметов в инвентаре.
AI_LookAtNpc() ? GG
Функция исскуственного интеллекта.
Npc смотрит на другого Npc.
AI_Output() ? GG
Функция исскуственного интеллекта.
Функция диалога.
AI_OutputSVM() ? GG
Функция исскуственного интеллекта.
Функция SVM диалога.
AI_OutputSVM_Overlay() ? GG
Функция исскуственного интеллекта.
Функция перекрывающего SVM диалога.
AI_PlayAni() ? GG
Функция исскуственного интеллекта.
Npc проигрывает анимацию.
AI_PlayAniBS() ? GG
Функция исскуственного интеллекта.
Npc проигрывает анимацию для определения состояния тела.
AI_PlayCutscene() ? GG
Функция исскуственного интеллекта.
Проигрывание игрового ролика для Npc.
AI_PlayFX() ? G
Функция исскуственного интеллекта.
Проигрывание PFX эффектов.
AI_PointAt() ? GG
Функция исскуственного интеллекта.
Npc указывает на объект или точку.
AI_PointAtNpc() ? GG
Функция исскуственного интеллекта.
Npc указывает на другого Npc.
AI_PrintScreen() ? G
Функция исскуственного интеллекта.
Вывод на экран текстовой строки.
AI_ProcessInfos() ? GG
Функция исскуственного интеллекта.
Запуск диалога с вариантами ответов.
AI_QuickLook() ? GG
Функция исскуственного интеллекта.
Npc бросает быстрый взгляд на другого Npc.
AI_ReadyMeleeWeapon() ? GG
Функция исскуственного интеллекта.
Npc подготавливает оружие ближнего боя.
AI_ReadyRangedWeapon() ? GG
Функция исскуственного интеллекта.
Npc подготавливает оружие дальнего боя.
AI_ReadySpell() ? GG
Функция исскуственного интеллекта.
Npc подготавливает заклинание.
AI_RemoveWeapon() ? GG
Функция исскуственного интеллекта.
Npc прячет оружие.
AI_SetNpcsToState() ? GG
Функция исскуственного интеллекта.
Переводит всех окружающих Npc в указанное состояние.
AI_SetWalkmode() ? GG
Функция исскуственного интеллекта.
Установка режима перемещения Npc.
AI_ShootAt() ? GG
Функция исскуственного интеллекта.
Npc стреляет из оружия дальнего боя в другого Npc.
AI_Snd_Play() ? G
Функция исскуственного интеллекта.
Воспроизведение звукового файла для Npc.
AI_Snd_Play3D() ? G
Функция исскуственного интеллекта.
Воспроизведение звукового файла в 3D для Npc.
AI_StandUp() ? GG
Функция исскуственного интеллекта.
Перевод Npc в рабочую стойку с анимацией.
AI_StandUpQuick() ? GG
Функция исскуственного интеллекта.
Перевод Npc в рабочую стойку без анимации.
AI_StartState() ? GG
Функция исскуственного интеллекта.
Перевод Npc в новое состояние.
AI_StopAim() ? GG
Функция исскуственного интеллекта.
Npc прекращает целится из оружия дальнего боя.
AI_StopFX() ? G
Функция исскуственного интеллекта.
Остановка проигрывания PFX эффектов.
AI_StopLookAt() ? GG
Функция исскуственного интеллекта.
Npc прекращает смотреть на другого Npc или объект.
AI_StopPointAt() ? GG
Функция исскуственного интеллекта.
Npc прекращает указывать на другого Npc или объект.
AI_StopProcessInfos() ? GG
Функция исскуственного интеллекта.
Завершение режима диалога.
AI_TakeItem() ? GG
Функция исскуственного интеллекта.
Npc берет предмет инвентаря.
AI_TakeMOB() ? GG
Функция исскуственного интеллекта.
Npc берет MOB.
AI_Teleport() ? GG
Функция исскуственного интеллекта.
Npc переносится на указанное место в локации.
AI_TurnAway() ? GG
Функция исскуственного интеллекта.
Npc поворачивается к другому Npc спиной.
AI_TurnToNpc() ? GG
Функция исскуственного интеллекта.
Npc поворачивается к другому Npc лицом.
AI_TurnToSound() ? GG
Функция исскуственного интеллекта.
Npc поворачивается лицом к источнику звука.
AI_UnequipArmor() ? GG
Функция исскуственного интеллекта.
Npc убирает экипированные доспехи в инвентарь.
AI_UnequipWeapons() ? GG
Функция исскуственного интеллекта.
Npc убирает экипированное оружие инвентарь.
AI_UnreadySpell() ? GG
Функция исскуственного интеллекта.
Npc убирает активное заклинание в инвентарь.
AI_UseItem() ? GG
Функция исскуственного интеллекта.
Npc использует предмет инвентаря.
AI_UseItemToState() ? GG
Функция исскуственного интеллекта.
Npc использует предмет инвентаря до указанного состояния анимации.
AI_UseMOB() ? GG
Функция исскуственного интеллекта.
Npc использует MOB до указанного состояния анимации.
AI_Wait() ? GG
Функция исскуственного интеллекта.
Npc переводится в режим ожидания на несколько секунд.
AI_WaitForQuestion() ? GG
Функция исскуственного интеллекта.
Npc переводится в режим ожидания ответа.
AI_WaitMs() ? GG
Функция исскуственного интеллекта.
Npc переводится в режим ожидания на несколько милисекунд.
AI_WaitTillEnd() ? GG
Функция исскуственного интеллекта.
Npc ждет ответа на свою фразу.
AI_WhirlAround() ? GG
Функция исскуственного интеллекта.
Npc быстро поворачивается к другому Npc лицом.
AI_WhirlAroundToSource() ? GG
Функция исскуственного интеллекта.
Npc быстро поворачивается лицом к источнику.
Apply_Options_Audio() ? GG
Функция игрового меню.
Применить аудио настройки.
Apply_Options_Controls() ? GG
Функция игрового меню.
Применить настройки клавиатуры.
Apply_Options_Game() ? GG
Функция игрового меню.
Применить настройки параметров игры.
Apply_Options_Performance() ? GG
Функция игрового меню.
Применить настройки производительности.
Apply_Options_Video() ? GG
Функция игрового меню.
Применить настройки видео.
ConcatStrings() ? GG
Функция преобразования типов.
Объединение двух строк.
CreateInvItem() ? GG
Функция инвентаря.
Создать в инвентаре Npc указанный предмет.
CreateInvItems() ? GG
Функция инвентаря.
Создать в инвентаре Npc указанные предметы.
Doc_Create() ? GG
Функция документа.
Создать новый документ.
Doc_CreateMap() ? GG
Функция документа.
Создать новую карту локации.
Doc_Font() ? GG
Функция документа.
Задать шрифт для документа.
Doc_MapCoordinates() ? GG
Функция документа.
Определение координат для карты локации.
Doc_Open() ? GG
Функция документа.
Отобразить фоновый рисунок документа на экране.
Doc_Print() ? GG
Функция документа.
Отобразить текст документа на экране.
Doc_PrintLine() ? GG
Функция документа.
Вывести строку текста на странице документа.
Doc_PrintLines() ? GG
Функция документа.
Вывести многострочный текст на странице документа.
Doc_SetFont() ? GG
Функция документа.
Задать шрифт для страницы.
Doc_SetLevel() ? GG
Функция документа.
Задать игровую локацию для карты.
Doc_SetLevelCoords() ? G
Функция документа.
Задать границы области отображаемой на карте.
Doc_SetMargins() ? GG
Функция документа.
Установить отступ страницы.
Doc_SetPage() ? GG
Функция документа.
Настроить параметры страницы.
Doc_SetPages() ? GG
Функция документа.
Задает количество страниц для документа.
Doc_Show() ? GG
Функция документа.
Показать созданный документ на экране.
EquipItem() ? GG
Функция инвентаря.
Экипировать Npc предметом инвентаря.
ExitGame() ? GG
Общая игровая функция.
Закончить сеанс игры.
ExitSession() ? G
Общая игровая функция.
Закончить сеанс игры.
FloatToInt() ? GG
Функция преобразования типов.
Преобразование числа с плавающей точкой в целое.
FloatToString() ? GG
Функция преобразования типов.
Преобразование числа с плавающей точкой в строку.
Game_InitEngintl() ? G
Общая игровая функция.
Инициализация игры основанной на Акелловской локализации.
Game_InitEnglish() ? G
Общая игровая функция.
Инициализация англоязычной версии игры.
Game_InitGerman() ? G
Общая игровая функция.
Инициализация немецкой версии игры.
Hlp_CutscenePlayed() ? GG
Вспомогательная функция.
Информирует, проигрывался ли игровой ролик.
Hlp_GetInstanceID() ? GG
Вспомогательная функция.
Получить идентификатор инстанции Npc или объекта инвентаря.
Hlp_GetNpc() ? GG
Вспомогательная функция.
Получить ссылку на Npc.
Hlp_IsItem() ? GG
Вспомогательная функция.
Проверяет принадлежность предмета инвентаря к соответствующему типу.
Hlp_IsValidItem() ? GG
Вспомогательная функция.
Проверка предмета инвентаря на существование.
Hlp_IsValidNpc() ? GG
Вспомогательная функция.
Проверка Npc на существование.
Hlp_Random() ? GG
Вспомогательная функция.
Генерирование случайного числа.
Hlp_StrCmp() ? GG
Вспомогательная функция.
Сравнение двух строк.
InfoManager_HasFinished() ? GG
Функции диалогов.
Проверяет завершен ли диалог.
Info_AddChoice() ? GG
Функции диалогов.
Добавляет в меню диалога новую строку.
Info_ClearChoices() ? GG
Функции диалогов.
Удалить строки в диалоге.
IntToFloat() ? GG
Функции преобразования типов.
Преобразование целого числа в число с плавающей точкой.
IntToString() ? GG
Функции преобразования типов.
Преобразование целого числа в строку.
IntroduceChapter() ? GG
Общие игровые функции.
Вывести на экран окно новой главы.
Log_AddEntry() ? GG
Функция журнала квестов.
Сделать в теме новую запись.
Log_CreateTopic() ? GG
Функция журнала квестов.
Создать в разделе новую тему.
Log_SetTopicStatus() ? GG
Функция журнала квестов.
Установить статус темы.
Mdl_ApplyOverlayMDS() ? GG
Функция анимации модели.
Применить новую анимацию к Npc.
Mdl_ApplyOverlayMDSTimed() ? GG
Функция анимации модели.
Временно применить новую анимацию к Npc.
Mdl_ApplyRandomAni() ? GG
Функция анимации модели.
Запустить случайные анимации.
Mdl_ApplyRandomAniFreq() ? GG
Функция анимации модели.
Изменить частоту смены случайных анимаций.
Mdl_ApplyRandomFaceAni() ? GG
Функция анимации модели.
Запустить случайную лицевую анимацию.
Mdl_RemoveOverlayMDS() ? GG
Функция анимации модели.
Отключить указанную анимацию у Npc.
Mdl_SetModelFatness() ? GG
Функция анимации модели.
Настройка толщины модели Npc.
Mdl_SetModelScale() ? GG
Функция анимации модели.
Настройка масштаба модели Npc.
Mdl_SetVisual() ? GG
Функция анимации модели.
Настройка MDS модели Npc.
Mdl_SetVisualBody() ? GG
Функция анимации модели.
Настройка визуализации модели Npc.
Mdl_StartFaceAni() ? GG
Функция анимации модели.
Запуск лицевой анимации.
Mis_AddMissionEntry() ? GG
Функция миссии.
Создать новую миссию.
Mis_GetStatus() ? GG
Функция миссии.
Получить текущий статус миссии.
Mis_OnTime() ? GG
Функция миссии.
Проверка срока выполнения миссии.
Mis_RemoveMission() ? GG
Функция миссии.
Удалить миссию.
Mis_SetStatus() ? GG
Функция миссии.
Установить статус миссии.
MOB_CreateItems() ? GG
Функция инвентаря.
Создать в контейнере предметы инвентаря.
MOB_HasItems() ? GG
Функция инвентаря.
Получить количество предметов инвентаря в контейнере.
Npc_AreWeStronger() ? GG
Функция Npc.
Определение более сильного Npc.
Npc_CanSeeItem() ? GG
Функция Npc.
Определяет может ли Npc видеть предмет инвентаря.
Npc_CanSeeNpc() ? GG
Функция Npc.
Определяет может ли Npc видеть другого Npc.
Npc_CanSeeNpcFreeLOS() ? GG
Функция Npc.
Определяет может ли Npc видеть другого Npc по прямой.
Npc_CanSeeSource() ? GG
Функция Npc.
Определяет может ли Npc видеть источник звука.
Npc_ChangeAttribute() ? GG
Функция Npc.
Изменение значения атрибута Npc.
Npc_CheckAvailableMission() ? GG
Функция Npc.
Проверка доступных миссии у Npc.
Npc_CheckInfo() ? GG
Функция Npc.
Определяет, есть ли у Npc важная для игрока информация.
Npc_CheckOfferMission() ? GG
Функция Npc.
Проверка миссии в которой Npc может что-либо предложить.
Npc_CheckRunningMission() ? GG
Функция Npc.
Проверка активных миссий.
Npc_ClearAIQueue() ? GG
Функция Npc.
Удаление всех AI команд из очереди.
Npc_ClearInventory() ? G
Функция Npc.
Очищает весь инвентарь Npc.
Npc_CreateSpell() ? GG
Функция Npc.
Npc активирует заклинание.
Npc_DeleteNews() ? GG
Функция Npc.
Удаляет новость для Npc.
Npc_ExchangeRoutine() ? GG
Функция Npc.
Смена распорядка дня Npc.
Npc_GetActiveSpell() ? GG
Функция Npc.
Возврат номера активного заклинания.
Npc_GetActiveSpellCat() ? GG
Функция Npc.
Возврат номера категории активного заклинания.
Npc_GetActiveSpellIsScroll() ? G
Функция Npc.
Проверяется, является ли активное заклинание свитком.
Npc_GetActiveSpellLevel() ? GG
Функция Npc.
Возвращает уровень активного заклинания Npc.
Npc_GetAttitude() ? GG
Функция Npc.
Получить текущее отношении Npc к другому Npc.
Npc_GetBodyState() ? GG
Функция Npc.
Возврат состояния в котором находится Npc.
Npc_GetComrades() ? GG
Функция Npc.
Проверка, есть ли у Npc друзья.
Npc_GetDetectedMob() ? GG
Функция Npc.
Возврат имени активного MOB объекта.
Npc_GetDistToItem() ? GG
Функция Npc.
Получить расстояние между Npc и предметом инвентаря.
Npc_GetDistToNpc() ? GG
Функция Npc.
Получить расстояние между двумя Npc.
Npc_GetDistToPlayer() ? GG
Функция Npc.
Получить расстояние между Npc и главным героем.
Npc_GetDistToWP() ? GG
Функция Npc.
Получить расстояние между Npc и Waypoint.
Npc_GetEquippedArmor() ? GG
Функция Npc.
Получить ссылку на экипированные доспехи Npc.
Npc_GetEquippedMeleeWeapon() ? GG
Функция Npc.
Получить ссылку на экипированное оружие ближнего боя у Npc.
Npc_GetEquippedRangedWeapon() ? GG
Функция Npc.
Получить ссылку на экипированное оружие дальнего боя у Npc.
Npc_GetGuildAttitude() ? GG
Функция Npc.
Получить отношение гильдий двух Npc.
Npc_GetHeightToItem() ? G
Функция Npc.
Получить высоту между Npc и предметом инвентаря.
Npc_GetHeightToNpc() ? G
Функция Npc.
Получить высоту между двумя Npc.
Npc_GetInvItem() ? GG
Функция Npc.
Получить ссылку на предмет инвентаря Npc.
Npc_GetInvItemBySlot() ? G
Функция Npc.
Получить количество указанных предметов в инвентаре Npc.
Npc_GetLastHitSpellCat() ? G
Функция Npc.
Получить категорию последнего примененного заклинания Npc.
Npc_GetLastHitSpellID() ? G
Функция Npc.
Получить номер последнего примененного заклинания Npc.
Npc_GetLookAtTarget() ? G
Функция Npc.
Получить ссылку на Npc на которого смотрит другой Npc.
Npc_GetNearestWP() ? GG
Функция Npc.
Получить название Waypoint в котором находится Npc.
Npc_GetNewsOffender() ? GG
Функция Npc.
Получить ссылку на приступника события.
Npc_GetNewsVictim() ? GG
Функция Npc.
Получить ссылку на жертву события.
Npc_GetNewsWitness() ? GG
Функция Npc.
Получить ссылку на свидетеля события.
Npc_GetNextTarget() ? GG
Функция Npc.
Выполнить активный поиск цели.
Npc_GetNextWP() ? GG
Функция Npc.
Получить имя соседнего Waypoint по отношению к Npc.
Npc_GetPermAttitude() ? GG
Функция Npc.
Получить постоянное отношение одного Npc к другому.
Npc_GetPortalGuild() ? G
Функция Npc.
Получить номер гильдии владельца помещения.
Npc_GetPortalOwner() ? G
Функция Npc.
Получить ссылку на Npc владельца помещения.
Npc_GetReadiedWeapon() ? GG
Функция Npc.
Получить ссылку на оружие, которое Npc держит в руке.
Npc_GetStateTime() ? GG
Функция Npc.
Получить сколько секунд Npc находится в текущем состоянии анимации.
Npc_GetTalentSkill() ? GG
Функция Npc.
Получить уровень навыка.
Npc_GetTalentValue() ? GG
Функция Npc.
Получить количество единиц навыка.
Npc_GetTarget() ? GG
Функция Npc.
Проверка существования у Npc цели для атаки.
Npc_GetTrueGuild() ? GG
Функция Npc.
Получить номер гильдии Npc.
Npc_GiveInfo() ? GG
Функция Npc.
Проверяет, есть ли у Npc информация для Npc.
Npc_GiveItem() ? GG
Функция Npc.
Npc получает предмет инвентаря от другого Npc.
Npc_HasBodyFlag() ? GG
Функция Npc.
Проверить, установлен ли у Npc указанный флаг состояния.
Npc_HasDetectedNpc() ? GG
Функция Npc.
Проверить поддержку чувств у Npc.
Npc_HasEquippedArmor() ? GG
Функция Npc.
Проверить наличие у Npc экипированных доспехов.
Npc_HasEquippedMeleeWeapon() ? GG
Функция Npc.
Проверить наличие у Npc экипированного оружия ближнего боя.
Npc_HasEquippedRangedWeapon() ? GG
Функция Npc.
Проверить наличие у Npc экипированного оружия дальнего боя.
Npc_HasEquippedWeapon() ? GG
Функция Npc.
Проверить наличие у Npc экипированного оружия.
Npc_HasItems() ? GG
Функция Npc.
Возвращает количество указанных предметов в инвентаре у Npc.
Npc_HasNews() ? GG
Функция Npc.
Проверить знает ли Npc указанную новость.
Npc_HasOffered() ? GG
Функция Npc.
Проверяет есть ли у одного Npc предмет для передачи другому.
Npc_HasRangedWeaponWithAmmo() ? GG
Функция Npc.
Проверяет есть ли у Npc в руках или в инвентаре оружие дальнего боя с боеприпасами.
Npc_HasReadiedMeleeWeapon() ? GG
Функция Npc.
Проверяет держит ли Npc в руках оружие ближнего боя.
Npc_HasReadiedRangedWeapon() ? GG
Функция Npc.
Проверяет держит ли Npc в руках оружие дальнего боя.
Npc_HasReadiedWeapon() ? GG
Функция Npc.
Проверяет держит ли Npc в руках оружие.
Npc_HasSpell() ? GG
Функция Npc.
Проверяет может ли Npc использовать заклинание.
Npc_HasTalent() ? GG
Функция Npc.
Проверяет владеет ли Npc указанным талантом.
Npc_IsAiming() ? GG
Функция Npc.
Проверяет целится ли Npc в другого Npc оружием дальнего боя или магией.
Npc_IsDead() ? GG
Функция Npc.
Проверяет мертв ли Npc.
Npc_IsDetectedMOBOwnerByGuild() ? GG
Функция Npc.
Проверяет какой гильдии принадлежит MOB, который использует Npc.
Npc_IsDetectedMobOwnerByNpc() ? GG
Функция Npc.
Проверяет какому владельцу принадлежит MOB, который использует Npc.
Npc_IsDrawingSpell() ? G
Функция Npc.
Возвращает номер заклинания, которое использует Npc.
Npc_IsDrawingWeapon() ? GG
Функция Npc.
Возвращает номер оружия, которое Npc держит в руках.
Npc_IsInCutscene() ? GG
Функция Npc.
Определяет, находится ли Npc в игровом ролике во время его проигрывания.
Npc_IsInFightMode() ? GG
Функция Npc.
Определяет, находится ли Npc в боевом режиме.
Npc_IsInPlayersRoom() ? G
Функция Npc.
Определяет, находится ли Npc в помещении, которое принадлежит главному герою.
Npc_IsInRoutine() ? GG
Функция Npc.
Проверяет выполняет ли Npc указанный распорядок дня.
Npc_IsInState() ? GG
Функция Npc.
Запрос на текущее состояние анимации фигуры Npc.
Npc_IsNear() ? GG
Функция Npc.
Определяет, что Npc находится на расстоянии не далее 3 метров.
Npc_IsNewsGossip() ? GG
Функция Npc.
Проверяет, является ли новость для Npc сплетней.
Npc_IsNextTargetAvailable() ? GG
Функция Npc.
Выполнить активный поиск цели для Npc без инициализации переменных.
Npc_IsOnFP() ? GG
Функция Npc.
Проверяет, находится ли Npc в Freepoint точке с указанным именем.
Npc_IsPlayer() ? GG
Функция Npc.
Проверяет, находится ли Npc главным героем.
Npc_IsPlayerInMyRoom() ? GG
Функция Npc.
Проверяет, находится ли главный герой в помещении другого Npc, или гильдии этого Npc.
Npc_IsVoiceActive() ? GG
Функция Npc.
Определяет, разговаривает ли Npc в данный момент.
Npc_IsWayBlocked() ? GG
Функция Npc.
Проверяет наличие припятствий на пути Npc.
Npc_KnowsInfo() ? GG
Функция Npc.
Проверяет знает ли Npc указанную информацию или нет.
Npc_KnowsPlayer() ? GG
Функция Npc.
Проверяет знаком ли Npc с главным героем.
Npc_LearnSpell() ? GG
Функция Npc.
Npc выучил заклинание и может его использовать.
Npc_MemoryEntry() ? GG
Функция Npc.
Функция записывания новостей для Npc.
Npc_MemoryEntryGuild() ? GG
Функция Npc.
Функция записывания новостей для всей гильдии.
Npc_OwnedByGuild() ? GG
Функция Npc.
Проверка на принадлежность предмета инвентаря указанной гильдии.
Npc_OwnedByNpc() ? GG
Функция Npc.
Проверка на принадлежность предмета инвентаря указанному Npc.
Npc_PercDisable() ? GG
Функция Npc.
Функция отключения восприятия у Npc.
Npc_PercEnable() ? GG
Функция Npc.
Функция включения восприятия у Npc.
Npc_PerceiveAll() ? GG
Функция Npc.
Функция разрешает Npc воспринимать все объекты в зоне действия восприятия.
Npc_PlayAni() ? GG
Функция Npc.
Воспроизвести анимацию для Npc.
Npc_RefuseTalk() ? GG
Функция Npc.
Функция проверяет истек ли у Npc счетчик отказа от диалога.
Npc_RemoveInvItem() ? GG
Функция Npc.
Удаление предмета из инвентаря Npc и из игры.
Npc_RemoveInvItems() ? GG
Функция Npc.
Удаление указанного количества предметов из инвентаря Npc и из игры.
Npc_SendPassivePerc() ? GG
Функция Npc.
Функция посылки пассивного восприятия от Npc.
Npc_SendSinglePerc() ? GG
Функция Npc.
Функция посылки восприятия от Npc.
Npc_SetActiveSpellInfo() ? GG
Функция Npc.
Задает любое значение для активного заклинания.
Npc_SetAttitude() ? GG
Функция Npc.
Установить постоянное отношение одного Npc ко всем остальным.
Npc_SetKnowsPlayer() ? GG
Функция Npc.
Установить, что Npc знаком с главным героем.
Npc_SetPercTime() ? GG
Функция Npc.
Установка времени реакции Npc для активного восприятия.
Npc_SetRefuseTalk() ? GG
Функция Npc.
Установка счетчика отказа от диалога для Npc.
Npc_SetStateTime() ? GG
Функция Npc.
Функция установки времени нахождения Npc в указанном состоянии.
Npc_SetTalentSkill() ? GG
Функция Npc.
Установить уровень навыка.
Npc_SetTalentValue() ? GG
Функция Npc.
Установить количество единиц владения навыком.
Npc_SetTarget() ? GG
Функция Npc.
Установить Npc внутреннюю цель для поражения.
Npc_SetTeleportPos() ? G
Функция Npc.
Запомнить последнее положение Npc при телепортации.
Npc_SetTempAttitude() ? GG
Функция Npc.
Установить временное отношение Npc к другим Npc.
Npc_SetToFightMode() ? GG
Функция Npc.
Перевод Npc в режим боя с выбранным оружием.
Npc_SetToFistMode() ? GG
Функция Npc.
Перевод Npc в боевой режим.
Npc_SetTrueGuild() ? GG
Функция Npc.
Установить принадлежность Npc к гильдии.
Npc_StartItemReactModules() ? GG
Функция Npc.
Проверка модулей ItemReact для реакции на предметы инвентаря.
Npc_StopAni() ? G
Функция Npc.
Остановить проигрывание анимации Npc.
Npc_WasInState() ? GG
Функция Npc.
Запрос на предыдущее состояние фигуры Npc.
Npc_WasPlayerInMyRoom() ? GG
Функция Npc.
Проверка главного героя на нахождение в помещении Npc или гильдии.
Perc_SetRange() ? GG
Общие игровые функции.
Установка дальности пассивного восприятия.
PlayVideo() ? GG
Функция видео.
Показать видео файл.
PlayVideoEx() ? G
Функция видео.
Показать видео файл с выходом из сессии игры.
Print() ? GG
Функция вывода текста.
Вывод на экран строки текста.
PrintDebug() ? GG
Функция вывода текста.
Вывод строки текста через zSpy.
PrintDebugCh() ? GG
Функция вывода текста.
Вывод строки текста через zSpy для канала.
PrintDebugInst() ? GG
Функция вывода текста.
Вывод строки текста через zSpy для инстанции.
PrintDebugInstCh() ? GG
Функция вывода текста.
Вывод строки текста через zSpy для инстанции и канала.
PrintDialog() ? GG
Функция вывода текста.
Вывод строки текста в окно диалога.
PrintMulti() ? GG
Функция вывода текста.
В случайном порядке выводит одну из пяти строк указанных в качестве аргументов.
PrintScreen() ? GG
Функция вывода текста.
Вывод на экран строки текста с настройкой шрифта, размера и др.
Rtn_Exchange() ? GG
Функция распорядка дня.
Функция смены распорядка дня.
SetPercentDone() ? GG
Общая игровая функция.
Установить процент отображения полосы в окне загрузки игры.
Snd_GetDistToSource() ? GG
Функция звука.
Получить расстояние до источника звука.
Snd_IsSourceItem() ? GG
Функция звука.
Проверить, является ли предмет у Npc источником звука.
Snd_IsSourceNpc() ? GG
Функция звука.
Проверить, является ли Npc источником звука.
Snd_Play() ? GG
Функция звука.
Воспроизвести звуковой эффект.
Snd_Play3D() ? GG
Функция звука.
Воспроизвести звуковой эффект для Npc.
TA() ? GG
Функция распорядка дня.
Задать функцию распорядка дня.
TA_BeginOverlay() ? GG
Функция распорядка дня.
Начать выполнять описанный распорядок дня.
TA_CS() ? GG
Функция распорядка дня.
Функция, выполняемая последней в списке функций распорядка дня.
TA_EndOverlay() ? GG
Функция распорядка дня.
Закончить выполнять описанный распорядок дня.
TA_Min() ? GG
Функция распорядка дня.
Задать функцию распорядка дня по времени.
TA_RemoveOverlay() ? GG
Функция распорядка дня.
Удалить заявленный распорядок дня.
Tal_Configure() ? GG
Общая игровая функция.
Переопредилить значение таланта.
Update_ChoiceBox() ? GG
Функция игрового меню.
Сохранить новые значения аудио или видео параметров.
Wld_AssignRoomToGuild() ? GG
Функция игрового мира.
Установить гильдию владельцем пространства.
Wld_AssignRoomToNpc() ? GG
Функция игрового мира.
Установить Npc владельцем пространства.
Wld_DetectItem() ? GG
Функция игрового мира.
Функция инициализирует глобальную переменную Item.
Wld_DetectNpc() ? GG
Функция игрового мира.
Функция инициализирует глобальную переменную Npc.
Wld_DetectNpcEx() ? GG
Функция игрового мира.
Функция инициализирует глобальную переменную Npc с исключением главного героя из поиска.
Wld_DetectNpcExAtt() ? G
Функция игрового мира.
Функция инициализирует глобальную переменную Npc с исключением главного героя из поиска и учетом отношения Npc к гильдии.
Wld_DetectPlayer() ? GG
Функция игрового мира.
Проверка существования главного героя.
Wld_ExchangeGuildAttitudes() ? GG
Функция игрового мира.
Установить взаимоотношения между гильдиями.
Wld_GetDay() ? GG
Функция игрового мира.
Получить текущий день.
Wld_GetFormerPlayerPortalGuild() ? GG
Функция игрового мира.
Получить номер гильдии которой принадлежит покинутое помещение.
Wld_GetFormerPlayerPortalOwner() ? GG
Функция игрового мира.
Получить ссылку на Npc которому принадлежит покинутое помещение.
Wld_GetGuildAttitude() ? GG
Функция игрового мира.
Получить отношение между гильдиями.
Wld_GetMOBState() ? GG
Функция игрового мира.
Получить состояние MOB.
Wld_GetPlayerPortalGuild() ? GG
Функция игрового мира.
Получить номер гильдии которой принадлежит помещение.
Wld_GetPlayerPortalOwner() ? GG
Функция игрового мира.
Получить сылку на Npc которому принадлежит помещение.
Wld_InsertItem() ? GG
Функция игрового мира.
Разместить в игровом мире предмет инвентаря.
Wld_InsertNpc() ? GG
Функция игрового мира.
Разместить в игровом мире Npc.
Wld_InsertNpcAndRespawn() ? GG
Функция игрового мира.
Разместить в игровом мире Npc с респауном.
Wld_InsertObject() ? GG
Функция игрового мира.
Разместить в игровом мире виртуальный объект.
Wld_IsFPAvailable() ? GG
Функция игрового мира.
Поиск Freepoint по имени в радиусе 20 метров.
Wld_IsMOBAvailable() ? GG
Функция игрового мира.
Поиск MOB по имени в радиусе 10 метров.
Wld_IsNextFPAvailable() ? GG
Функция игрового мира.
Поиск следующего Freepoint по имени в радиусе 20 метров.
Wld_IsRaining() ? G
Функция игрового мира.
Проверить идет ли дождь.
Wld_IsTime() ? GG
Функция игрового мира.
Функция определяет, входит ли текущее время в указанный диапазон.
Wld_PlayEffect() ? GG
Функция игрового мира.
Проиграть визуальный эффект.
Wld_RemoveItem() ? GG
Функция игрового мира.
Удалить из мира предмет инвентаря по ссылке.
Wld_RemoveNpc() ? GG
Функция игрового мира.
Удалить из мира Npc по ссылке.
Wld_SendTrigger() ? GG
Функция игрового мира.
Послать триггер объекту игрового мира.
Wld_SendUntrigger() ? GG
Функция игрового мира.
Послать антриггер объекту игрового мира.
Wld_SetGuildAttitude() ? GG
Функция игрового мира.
Установить отношение между гильдиями.
Wld_SetMOBRoutine() ? GG
Функция игрового мира.
Перевести MOB в определенное состояние анимации.
Wld_SetObjectRoutine() ? GG
Функция игрового мира.
Перевести объект в определенное состояние анимации.
Wld_SetTime() ? GG
Функция игрового мира.
Установить текущее время игрового мира.
Wld_SpawnNpcRange() ? GG
Функция игрового мира.
Создать группу Npc вокруг другого Npc.
Wld_StopEffect() ? G
Функция игрового мира.
Остановить проигрывание визуального эффекта.

Урок по анимации от Bezio

Содержание +

Эта сцена - уже готовый к анимации скелет Хуманса в формате *.BIP, который я сохранял на версии 3ds max 2012, так как на более ранней версии не загрузится. У этого скелета подготовлено все необходимое для простой анимации.

На рисунке ниже в выпадающем списке отображаются объекты быстрого выделения.

А далее идут слоты (Слот правой руки тут не видно, но в списке он есть), про них чуть позже напишу.

Чтобы быстро поместить предмет в слот, проще всего будет просто автоматически заменить его на нужную модель, для этого выделяем слот, нажимаем импорт 3ds, выбираем нужную модельку предмета и далее плагин KrxImpExp нам сам предложит заменить визуализацию слота на модель, жмём ОК. Таким образом можно неоднократно заменять визуализацию, по факту слот собой всё равно останется.

Примечание
Так как сейчас персонаж находится в нейтральной, небоевой позе, оружие в его руки немного сдвинуто, то есть, в момент анимации, возможно, понадобится подкорректировать положение слота в первом кадре.

Самое важное! Инверсная кинематика, она необходима для любого передвижения персонажа в пространстве (кроме свободного полёта), точнее, того как на это будут реагировать ноги и руки. Сначала быстро пробегусь по теории, потом покажу на деле.

Теперь к анимации. Чтобы вообще иметь возможность фиксировать кадры, необходимо зайти в режим Auto Key ru (Рамочка окна проекции покраснеет). С этого момента любые действия с костями скелета на разных участках таймлайна будут оставлять кадры. Все анимации Biped ru, (кроме слотов, так как они не являются частью 3ds Максовского Biped) требуют своей кнопки создания кадра. (Хоть как уже сказал, просто при действиях с костями в режиме Auto Key ru кадры будут создаваться автоматически). Так:

  1. Сначала рассмотрим обычные кадры у объектов не являющихся частью Biped ru - слотов. Предположим, нам нужно, чтобы слот как-то сам двигался. Для этого выделим этот слот, перейдём в самый первый кадр на таймлайне (у вас он должен быть пустым) и нажимаем на Set Key ru (Квадратик с ключиком внутри).



    Всё, первый кадр у нас есть, для остальных можно уже не нажимать Set Key ru, а просто в нужных местах таймлайна двигать\вращать слот - кадры создадутся сами. (Есть смысл нажимать, чтоб кадр отметился глобальным, на скрине он зелѐный, что означает, что конкретно в этом кадре был произведён лишь поворот и лишь в одной плоскости. То есть, если, к примеру, дальше будет кадр, в котором будет лишь перемещение в пространстве - этот зелёный кадр никак это перемещение не прервёт, ибо он просто не влияет на перемещение, если нужно, чтоб влиял - тыкаем на Set Key ru и кадр становится глобальным).

  2. Кости Biped ru. У них во вкладке Motion ru (справа, значок-колесо) имеется свой набор инструментов, в том числе и для того, чтобы ставить кадры, при том, нужной в данный момент кинематики. Активируется эта панель при выделении любой кости Biped ru. Нужные нам кнопки располагаются во вкладке Key Info ru (слева направо):

    • Красный кругляш - Set Key ru (Эквивалент того квадрата с ключом, нужен для становления кадров у базовой кости, костей спины, шеи и головы, на руках\ногах при нажатии ставит тот тип кадра, который был до этого).
    • Delete Key ru - если лень выделять кадр на таймлайне вручную и жать Delete, то можно этой кнопкой.
    • Set planted Key ru [оранжевый цвет кадра] - инверсная кинематика, но непростая - запоминает и копирует позицию предыдущего кадра, имеет смысл использовать, если при ходьбе нога некоторое время должна стоять твёрдо на земле. Так же, если анимация без передвижения, но с перемещением кости Bip01 (вверх-вниз, или немного в стороны) - есть смысл поставить именно этот тип кадра в самом начале таймлайна на ноги. Впрочем, абсолютно так же себя поведёт и следующий тип кадра.
    • Set Sliding Key ru [жёлтый цвет кадра] - нормальная обычная инверсная кинематика, двигаешь стопу - сгибается-разгибается колено, может передвигаться как скольжением, так и подниманием ноги с отдельными кадрами перешагивания. Этот тип кадра крайне рекомендуется всегда ставить на ноги, хотя бы в первом кадре, чтобы при перемещении Bip01 ноги не уходили под землю, а оставались на своём месте.
    • Set Free Key ru [чёрный цвет кадра] - Прямая кинематика, у всех костей, кроме рук и ног это единственный тип кадра. Так как она образуется за счёт родительских связей меж костями и их вращением - движения получаются более естественными и плавными, поэтому рекомендуется почти всегда использовать на руках. Если анимация падения\полёта\прыжка\плавания, где некоторое время ноги должны перемещаться вместе с Bip01 - тогда на ноги тоже надо ставить такие кадры.
    • Trajectories ru - просто по кадрам в пространстве показывает траекторию передвижения выделенной кости, иногда полезно использовать для корректировки плавности передвижения Bip01.

Важно добавить. Весь Biped ru-скелет поделен на области:

Любое действие с одной из костей в определённой области создаёт кадр во всех костях этой области, эта конкретно фишка Biped-скелета, местами раздражающая. Бывает, при инверсной кинематике стопа стоит неподвижно, но надо повернуть колено в нужную сторону (Используется кость голени), тогда и на стопе появится дополнительный кадр, а это иногда может приводить небольшим покачиваниям стопы между кадрами - виновато натяжение (Tension), эх, придётся и о нём рассказать, но позже.

Так же надо добавить, что из-за того же натяжения, кадры разного типа на руках и ногах в связке могут давать артефакты (Опять в моменты между этими кадрами), поэтому очень рекомендуется не совмещать на конечностях кадры и прямой и инверсной кинематики, либо делать переходи из одной в другую, где эти кадры стоят вплотную, без автодорисовывания между кадрами.

Соответственно, при комбинировании IK и FK кадры должны располагаться вот так, а так не должны:

Так, натяжение, чёрт бы его побрал... располагается так же в Key Info ru в свитке TCB ?, отвечает за вольность автодорисовывания кадров (в моменты между поставленными тобой кадрами). Работает не всегда хорошо, расскажу лишь о том, как это натяжение убрать, в случае если нога между кадрами начинает немного плыть туда-сюда. Заходим в значение Tension ru и ставим максимальное (50) от чего парабола превратится в прямой угол. Делаем это с обоими кадрами, между которыми происходят нежелательные движения.

Теперь чуть поинтереснее. Привязки прямой кинематики. Сразу после TCB ?, идёт свиток IK ?, как минимум на ногах нам интересна точка опоры, нажимаем на маленькую кнопочку с окошком (Когда выделена одна из ног) - видим несколько точек, по стандарту стоит та, что в середине - сустав лодыжки, удобно, когда нога в воздухе (перешагивание), но неудобно, когда нога стоит на земле, ибо при наклонах она будет проваливаться под землю, в таком случае лучше выбрать верхнюю точку - это палец ноги, он определяет конец стопы как относительно её высоты, так и длины, в таком случае при наклоне нога будет упираться кончиком в землю и не проваливаться. Данная возможность регулируется на каждом отмеченном кадре, если он является IK.

Теперь, если нам нужно сделать двуручный хват предмета (По факту, будем делать IK привязку левой руки к слоту правой руки, а он в своё время уже привязан к правой руке) для этого выставляем необходимую позу уже двуручного хвата. Выделяем кость левой руки, жмём на косую стрелочку Select IK object ru и выделяем слот правой руки, делаем этот кадр IK (Sliding Key), выкручиваем на максимум (1,0) значение IK Blend ru, всё, теперь левая рука привязана к модели и при движении правой руки, левая будет автоматически подстраиваться под рукоятку. Если потом эту привязку нужно отключить, переключаем галочку с Object ru на Body ru, от чего наш IK-кадр станет голубым. Либо просто ставим FK-кадр и привязка так же спадёт.

Иногда (К примеру, если нужно сделать анимацию, как в Risen, где послушник или стражник стоит и опирается на посох) можно не мучиться лишний раз привязками к другим предметам, а просто поставить на руку обычный IK, тогда любые движения корпуса не сдвинут её с места.

При создании анимации так же важно задать границы кадров, ибо анимация может быть и очень длинной, и очень короткой, по необходимости, для этого справа от таймлайна нажимаем на кнопку Time Configuration ru и в появившемся окне можно указать начало и конец таймлайна. Кнопочка Re-scale time ru позволяет отмасштабировать общий таймлайн (то есть к примеру твоя анимация в 12 кадров слишком быстрая и тебе надо её немного замедлить - заходишь в ре-скейл и увеличиваешь масштаб таймлайна). Но после масштабирования некоторые кадры могут сместиться на периферию между делений таймлайна, в таком случае лучше сразу выделить все кости скелета, потом выделить весь таймлайн, сдвинуть его на деление вперёд (просто схватив мышкой один из кадров при выделенных всех), а потом вернув на место, тогда все кадры разместятся уже чётко по делениям.

Когда анимация готова, нажимаем на плагине KrxImpExp кнопку Export ASC ru, в появившемся окне выделяем Экспорт анимации, в списке для оптимальности, или если анимация планируется делаться вторым слоем (движение только головы, рук или торса без участия ног) - выделяем необходимые кости и слоты. Слоты лучше не выделять, если на них не были сделаны анимации.

Теперь небольшой экскурс по вставке анимации в игру. Закидываем новую анимацию *.ASC в папку _work\data\Anims, в ней же находим Humans.MDS на всякий случай сохраняем рез. копию, далее открываем блокнотом и спускаемся в самый низ, вот до этих двух фигурных скобок. Вот строчка над ними нам и нужна, в неё мы и будем помещать строку (прикладываю текстовый файлик с шаблоном, описанием компонентов и парой примеров. Когда впишешь свою анимацию, сохрани MDS-файл, далее зайди в подпапку _compiled и удали там Humans.msb, в целом всегда при изменениях в ресурсных файлах удаляй их скомпилированные версии из папки _compiled, а то изменения не вступят в силу.

  1. Тип фазы
    • [ani] означает, что здеcь конкретно новая фаза анимации.
    • [aniAlias] - фаза копирует другую фазу, но, к примеру, с новыми звуковыми\визуальными эффектами, либо в обратном направлении.
    • [aniBlend] - Игра дорисовывает переход из одной фазы в другую
    • [aniDisable] - заблокированная фаза, может быть разблокирована в оверлеях (пример, при базовом рукопашном бое есть только комбо-атака и удар на бегу, в оверлее повышенного навыка разблокируются боковые удары), так как оверлей может ссылаться только на ту фазу, которая есть в базовом MDS, иначе весь оверлей не будет работать. Так же этой функцией в оверлее можно заблокировать некоторые фазы - к примеру прыжок у раненого человека.
  2. Название фазы, обычно анимация, которая имеет начало и конец пишется с t_, а если она зациклена, то с s_, в любом случае перед зацикленной анимацией должен должна быть T_-фаза перехода в неё из обычного стоячего состояния, к примеру цикл - s_practiceSword, переходная фаза должна иметь название t_stand_2_practicesword.
  3. Обозначается анимационный слой. Если у анимации экспортированы движения лишь определённых костей (голова\руки\торс), можно поставить 2-ой и выше уровень слой анимации. К слову, у T_point (вытягивает руку вперёд, указывает пальцем) он 11, у T_Look (Повороты головой) - 9, а у анимации размахивания руками в диалогах вообще 20.
  4. Название фазы, в которую переходит текущая, вышеописанный пример:

    Ani ("t_stand_2_practicesword" 1 "s_practiceSword"

    То есть T_-фаза перехода завершается переходом в другую "S_-фазу. Другой пример:

    Ani ("s_practiceSword" 1 "s_practiceSword" 

    Это есть цикл, фаза завершается переходом в себя саму. Если фаза просто конечна, то можно оставить пустые кавычки, как в шаблоне.
  5. Не помню, на что влияет, но всегда в T_-фазах ставил [0.1 0.0], а в S_-фазах ставил [0.0 0.0].
  6. Определяет поведение тела в пространстве.
    • M - обычное положение на земле, если в этот момент земли под персонажем не окажется - активируется падение.
    • MF - условное состояние полёта, во весь момент проигрывания такой фазы не будет активироваться падение, так же этот режим стоит на плавании, подъёме по лестнице, прыжке.
    • MI - не могу вспомнить её назначение, но используется в циклах сна на кровати, сидения на лавке, троне и пр., а также практически во всех амбиентах, смело можно ставить на другие циклы.
    • . - используется только в комбинированных фазах (Типа t_look, где у головы имеется 9 направлений и каждое из них имеет компонентное название, типа c_look_3.
    • .. - Аналогично предыдущему.
  7. Название ресурсного файла анимации в формате *.ASC из которого будут использованы движения при компиляции игрой.
  8. Направление анимации, имеется два:
    • F - Прямое, то есть первый кадр - 1, последний кадр - 20.
    • R - Обратное, кадры (следующий пункт) пишутся так же, как если бы было прямое, но игра проигрывает фазу в обратном направлении.
  9. Соответственно первый и последний кадры фазы, обязательно должны быть указаны существующие кадры.
  10. Скорость проигрывания, по стандарту 25 кадров, повышение скорости незначительно, от силы кадров на десять, выше - без эффекта. Понижение работает до 10 и даже до 5 кадров в секунду (пусть и условных), обычно используется на амбиентциклах, когда персонаж просто стоит\сидит\лежит, дышит, в общем для ещё большей плавности. Если корректировка скорости не требуется - оставляем лишь скобку, а остальное удаляем: Было [20 FPS:10)] стало: [20)].

Пара различных примеров с кратким описанием:

AniDisable ("t_stand_2_jump")

Просто заблокированная фаза перехода из стоячего пребывания в прыжок, эта фаза обычно включается в первые кадры при нажатии клавиши прыжка.

Ani ("s_Fist" 1 "s_Fist" 0.0 0.0 M. "HumWound_FistDraw.ASC" F 8 8) 

Стоит в боевой рукопашной стойке, цикл состоит из одного кадра.

Ani ("t_BoringKick" 2 "" 0.1 0.1 M. "Hum_BoringKick_M01.asc" F 1 66 FPS:10) 

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

aniAlias ("t_WalkWStrafeR" 1 "" 0.1 0.1 M. "t_WalkWStrafeL" R) 

Стрейф (шаг вправо) в невысокой воде сделанный на основе шага влево, но анимация повёрнута в обратную сторону.

aniBlend ("t_Jump_2_RunL" "s_RunL" 0.2 0.2) 

Автоматическая дорисовка перехода от окончания прыжка к бегу, множество таких еле заметных переходов немного сглаживают движения.

Более сложный пример, давно, когда накладывал на тролля всякие Motion Capture анимации, пришлось разделить длинный танец на несколько частей-фаз, которые сменяют друг друга, так как у него используется большое количество эффектов (грохот, пыль под ногами и тряска камеры), а игра не в состоянии нормально переварить больше 12-ти, поэтому пришлось разделить. Да тут есть эффекты, про которые я совсем ничего не рассказал, но это бы потребовало ещё немало времени, так что советую изучать готовые в игре фазы на предмет эффектов (Как можно заметить, эффект активируется в определённом кадре).

К слову, чего ж я распинался, когда на WOP есть целая статья от VAMa "Важно: Динамическая модель" где гораздо подробнее расписана структура файлов *.MDS. Ссылка: World of Players.ru .

Ах да, если такое вообще возможно, и кто-то ещё не знает, как добавить в 3д макс все текстуры игры - то вот так. Нажимать Use Path ru в самую последнюю очередь.

ani ("t_dance" 2 "t_dance1" 0.1 0.1 M. "TRO_dance.asc" F 0 140) { *eventSFX (14 "TRO_AMBIENT" EMPTY_SLOT ) *eventCamTremor (110 300 150 1 3 ) *eventSFX (110 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (110 "GolemDust" "Bip01 L Foot" ATTACH ) *eventPFX (110 "GolemDust" "Bip01 R Foot" ATTACH ) *eventSFX (120 "TRO_STEPLIGHT" EMPTY_SLOT ) *eventPFX (120 "GolemDust" "Bip01 L Foot" ATTACH ) *eventCamTremor (133 150 100 1 2 ) *eventSFX (133 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (133 "GolemDust" "Bip01 R Foot" ATTACH ) } ani ("t_dance1" 2 "t_dance2" 0.1 0.1 M. "TRO_dance.asc" F 141 195) { *eventCamTremor (147 150 100 1 2 ) *eventSFX (147 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (147 "GolemDust" "Bip01 L Foot" ATTACH ) *eventSFX (161 "TRO_STEPLIGHT" EMPTY_SLOT ) *eventPFX (161 "GolemDust" "Bip01 L Foot" ATTACH ) *eventSFX (175 "TRO_STEPLIGHT" EMPTY_SLOT ) *eventPFX (175 "GolemDust" "Bip01 R Foot" ATTACH ) *eventCamTremor (186 150 100 1 2 ) *eventSFX (186 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (186 "GolemDust" "Bip01 L Foot" ATTACH ) } ani ("t_dance2" 2 "" 0.1 0.1 M. "TRO_dance.asc" F 196 279) { *eventCamTremor (209 150 100 1 2 ) *eventSFX (209 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (209 "GolemDust" "Bip01 L Foot" ATTACH ) *eventCamTremor (229 150 100 1 2 ) *eventSFX (229 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (229 "GolemDust" "Bip01 R Foot" ATTACH ) *eventCamTremor (244 150 100 1 2 ) *eventSFX (244 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (244 "GolemDust" "Bip01 L Foot" ATTACH ) *eventCamTremor (258 300 150 1 3 ) *eventSFX (258 "TRO_STEPBOOM" EMPTY_SLOT ) *eventPFX (258 "GolemDust" "Bip01 R Foot" ATTACH ) }


Теги: MDS Скрипты, Анимация, 3ds max

Добавил: Neromont (26.08.2021)

Просмотров: 21

Автор: Bezio

Рейтинг: 0.0/0

Всего комментариев: 0
avatar
Информационное окноx