|
28.11.2009, 09:34
|
#31
|
Бывалый
Регистрация: 25.12.2007
Адрес: г. Краснодар
Сообщений: 894
Написано 421 полезных сообщений (для 1,079 пользователей)
|
Ответ: проблемы с анимацией
Дальше пойдет вопрос, а почему када я жму ескейп оно невыключается и мне приходится выдергивать из розетки....
|
(Offline)
|
|
28.11.2009, 14:47
|
#32
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: проблемы с анимацией
Объясню что тебе нужно разобрать. При загрузке модели, которую тебе нужно анимировать в программе используй команду LoadAnimMesh, именно она загружает модель со всеми чилдами входящими в нее, в отличие команды LoadMesh(), которая объединяет все чилды в один меш и мы уже не сможим получить доступ к ним. Если у тебя анимация и модель находиться в одном файле, то тебе, чтобы вычленить Часть анимации нужно использовать ExtractAnimSeq(entity, frameStart, frameEnd), если же ты хранишь анимацию в отдельном файле от модели, то тогда используй команду LoadAnimSeq(entity, "file.b3d"). Причем, при создании анимации со скелетом ты этот самый скелет крепишь именно к какому-то чилду в модели перед экспортом в б3д. Чтобы найти этот чилд с анимацией, тебе нужно воспользоваться командой FindChild(model, "name"), причем тут очень важен регистр твоего названия, например чилд с именем "aNiMaTe" и "animate" будут разными чилдами, учти это. Когда ты найдешь этот чилд с анимацией всю обработку анимации веди с ним, то есть запускай анимацию именно для этого чилда, а не для модели. Теперь пойми, что "Запускать" и "Обновлять" это разные вещи, обновление анимации ведет команда UpdateWorld() и ее лучше ставить прямо перед командой RenderWorld(), а вот чтобы ЗАПУСТИТЬ анимацию нужно единожды вызвать команду Animate. Я например пользуюсь следующей схемой : Проверяю нажата ли нужная кнопка, проверяю проигрывается ли необходимая секвенция, и если не проигрывается, то запустить анимацию, также и при отпускании, проверяю, если не нажаты кнопки движения (или действия), то проиграть анимацию ожидания, либо вообще остановить анимацию. Теперь приблизительный код, который должен у тебя сложиться в результате понимания всего что я тебе написал :
model = LoadAnimMesh("model.b3d")
animChild = FindChild(model, "Animate")
seqIdle = ExtractAnimSeq(animChild, 0, 19)
seqRun = ExtractAnimSeq(animChild, 20, 40)
Repeat
If KeyDown(200) Then
If AnimSeq(animChild) <> seqRun Then Animate animChild, 1, 0.2, seqRun
Else
If AnimSeq(animChild) <> seqIdle Then Animate animChild, 1, 0.2, seqIdle
EndIf
UpdateWorld()
Renderworld()
Until KeyDown(1)
end
Последний раз редактировалось H@NON, 28.11.2009 в 20:51.
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
|
|
28.11.2009, 19:22
|
#33
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: проблемы с анимацией
все получилось))
тока чуток поправка:
model = LoadAnimMesh("model.b3d")
animChild = FindChild(model, "Animate")
seqIdle = ExtractAnimSeq(animChild, 0, 19)
seqRun = ExtractAnimSeq(animChild, 20, 40)
Repeat
If KeyDown(200) Then
If AnimSeq(animChild) <> seqRun Then Animate seqChild, 1, 0.2, animRun
Else
If AnimSeq(animChild) <> seqIdle Then Animate seqChild, 1, 0.2, animIdle
EndIf
UpdateWorld()
Renderworld()
Until KeyDown(1)
end
|
(Offline)
|
|
28.11.2009, 19:29
|
#34
|
Дэвелопер
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений (для 774 пользователей)
|
Ответ: проблемы с анимацией
откуда ты взял seqChild, animIdle и animRun ?
В коде ты этих переменных не объявлял, может опечатался ты?
|
(Offline)
|
|
28.11.2009, 20:10
|
#35
|
Знающий
Регистрация: 26.11.2009
Сообщений: 313
Написано 35 полезных сообщений (для 95 пользователей)
|
Ответ: проблемы с анимацией
тю блин точно во:
model = LoadAnimMesh("model.b3d")
animChild = FindChild(model, "Animate")
seqIdle = ExtractAnimSeq(animChild, 0, 19)
seqRun = ExtractAnimSeq(animChild, 20, 40)
Repeat
If KeyDown(200) Then
If AnimSeq(animChild) <> seqRun Then Animate animChild, 1, 0.2, seqRun
Else
If AnimSeq(animChild) <> seqIdle Then Animate animChild, 1, 0.2, seqIdle
EndIf
UpdateWorld()
Renderworld()
Until KeyDown(1)
end
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
29.11.2009, 22:53
|
#36
|
Нуждающийся
Регистрация: 21.07.2007
Сообщений: 93
Написано 7 полезных сообщений (для 13 пользователей)
|
Ответ: проблемы с анимацией
Зачем так все наехали на человека? Ну новичок, и что? Все такими были...
А проблема с костной анимацией - это довольно сложная вещь - сам когда-то с ней не одну неделю пропарился... так, что логично, что человек задал вопрос... после 10-20 неудачных попыток реализации...
А вообще, я рад, что он завел эту тему... наконец, на форуме появилась тема о анимации , где все уже 100% разжеванно... Сам когда-то в панике бился по поиску и по крохам искал как и что... а теперь есть все и в одном. Так, что пусть эта тема будет небольшим маном для новичков и хорошей памяткой для старожил...
Даже, в подпись добавлю ссыль...
|
(Offline)
|
|
29.11.2009, 22:55
|
#37
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: проблемы с анимацией
спорим на пиво, что через месяц появится ещё одна тема, от новичка, с такими же вопросами?
|
(Offline)
|
|
Эти 3 пользователя(ей) сказали Спасибо Dream за это полезное сообщение:
|
|
29.11.2009, 22:59
|
#38
|
Нуждающийся
Регистрация: 21.07.2007
Сообщений: 93
Написано 7 полезных сообщений (для 13 пользователей)
|
Ответ: проблемы с анимацией
Сообщение от DimasSup
спорим на пиво, что через месяц появится ещё одна тема, от новичка, с такими же вопросами?
|
Тогда даешь ему ссыль на:
http://forum.boolean.name/showthread.php?t=10955&page=3
И просишь модератора закрыть тему.
И еще - люди хватит флудить уже не по делу...
|
(Offline)
|
|
29.11.2009, 23:03
|
#39
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: проблемы с анимацией
) перестаю флудить)) просто глупо тыкать носом. они же не щеночки, чтобы так указывать что и где...
|
(Offline)
|
|
29.11.2009, 23:26
|
#40
|
злобный флудер
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений (для 1,476 пользователей)
|
Ответ: проблемы с анимацией
http://forum.boolean.name/showthread.php?t=7525
Костная анимация в B3D- если хочешь разобраться - читать тему от корки до корки!!!
модераторы закройте тему !
LUK, то что ты не видел миллиона идентичных тем - не значит что их нет...
|
(Offline)
|
|
29.11.2009, 23:29
|
#41
|
Нуждающийся
Регистрация: 21.07.2007
Сообщений: 93
Написано 7 полезных сообщений (для 13 пользователей)
|
Ответ: проблемы с анимацией
Сообщение от NitE
LUK, то что ты не видел миллиона идентичных тем - не значит что их нет...
|
Я не говорил, что их нет... Это логично, что есть... Но когда этим вопросом занимался лично я - ничего нормального не нашел... (Да и проблема у меня была несколько другая...)
Сообщение от NitE
Костная анимация в B3D- если хочешь разобраться - читать тему от корки до корки!!!
|
Зачем мою подпись-то цитировать? =) =) =)
ЗЫ: Согласен, закройте тему, плз, и почистите флуд!
Последний раз редактировалось LUK, 01.12.2009 в 18:53.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:55.
|