Показать сообщение отдельно
Старый 17.07.2012, 01:48   #2
Кирпи4
Социал-сычевист
 
Аватар для Кирпи4
 
Регистрация: 24.06.2011
Сообщений: 611
Написано 342 полезных сообщений
(для 1,359 пользователей)
Ответ: Вопрос по анимации

Ох, это гемор большой, смешивание это...
Хоть и не сампый православный, но пашущий вариант:
1) копируем модель персонажа, вешаем её на основную модель, скрываем нулевой альфой
2) загружаем анимацию бега и стояния на основную модель, а на скрытую только анимацию выстрела
3) создаём в коде Data секцию, в которую входят только те кости, которые находятся в верхней части туловища
4) вставляем вот такую функцию:
Function SyncPlayerBones(PlayerMesh, HiddenMesh)
  Restore .BonesData ; метка DATA секции
  Read BonesNum%  ; Количество костей
  For i=1 to BonesNum
      Read Name$ ; Имя кости 
      bone1=FindChild(PlayerMesh,Name) : bone2=FindChild(HiddenMesh,Name)
      RotateEntity bone1, EntityPitch(bone2,0), EntityYaw(bone2,0), EntityRoll(bone2,0)
  Next
EndFunction
5) вставляем вот такой код между UpdateWorld и RenderWorld
If Animating(HiddenMesh) SyncPlayerBones(PlayerMesh, HiddenMesh) ; HiddenMesh  - скрытый, PlayerMesh - основной меши игрока
6) наслаждаемся. Для того, чтобы заставить игрока стрельнуть, анимируем скрытый меш =)

Вот пример DATA - секции:
.BonesData
Data 4
Data "Golova","Tulovishe","Lruka","Pruka"
__________________


(Offline)
 
Ответить с цитированием