forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   help B3D-anime (http://forum.boolean.name/showthread.php?t=1635)

Timon 04.10.2006 20:27

help B3D-anime
 
млин опять Я :) ...
в общем(как обычно),-> перешёл от движка к оформлению-> сделал модель с анимац-й -> эксп-ал пайплайном -> а чё делать дальше??? :lol:
знаю, знаю -> нужно ЛоадАнимМеш и ФайндЧайлд или Б3Д-экстеншинс.
но [R]TFM'а у меня нет -> зараза ->->->->->...:wallbash: ->->-> >O<

и этими командами ,Я, ни раз не пользовался!

блин->млин->:SOS:

ЛысыЙ_Чук-Иванчук 04.10.2006 22:30

Re: help B3D-anime
 
Эх, ладно расскажуB) :
1- сделай свою модель в максе.
2- сделай кости и прицепи их.
3- сделай любую анимацию (затем нажми экспорт В3Д поставь галки Экспорт анимации, Экспорт костей)
4- нажми предварительный просмотр (если там нормально, то можешь переходить дальше)
5- Когда сделаешь сваю модель с костями, всем костям сделай прозрачность 0.

Переходим к экспорту.
6- Вот твоя модель готова, анимацию сюда можешь не совать.
7- Нажимаешь экспорт, Ставишь галки:
кости, экспорт анимации, экспорт костей.
8- Грузишь этот объект в блиц.
P=LoadAnimMesh (”C:\01.b3d”)
9- Вот ты экспортнул, загрузил, дальше делаешь анимацию.
10- Сделал анимацию, можешь удалить сам объект, но кости оставь.
11- У тебя есть кости с анимацией, их надо экспортировать.

Экспорт костей.
12- Нажимаешь экспорт, ставишь галку экспорт анимации.
13- Грузишь в блице:
LoadAnimSeq P,”c:\02.b3d”
14- Анимируешь

Цитата:

Graphics3D 800,600,32,1
BackBuffer()
cam=CreateCamera()
BOT=LoadAnimMesh("BOT\BOT.B3D")
ScaleEntity BOT,.5,.5,.5
PositionEntity BOT,0,1,20

LoadAnimSeq BOT,"BOT\01.B3D"
PointEntity cam,bot
While Not KeyDown(1)

If KeyDown(57) And AnimSeq=0 Animate BOT,1,1,1,0

UpdateWorld()
RenderWorld()

Flip 0
Wend
End


P.S. Мне кажется поймет любой.:)

Diplomat 04.10.2006 23:18

Re: help B3D-anime
 
2 Влад : Ниччо нипонял еси чезно. И половина пунктов ИМХО- деза.

2 Timon :
Кратенько, без претензий на абсолютную истину, и с надеждой на дальнейшее самообучение.

Снимаешь Пайпу все галки, кроме
SceneRoot
XRefObjects
XRefScenes
Meshes
Normals - по желанию, если нужны
VertexColors - если их юзаешь в сцене.
Materials
Textures
RelativePath - путь к текстурам. Снимай, если твои тексы живут в папке модели.
ExportAnimation
ExportBones - если в сцене есть кости. Прятать кости не нужно: если не поставить "ExportBoneMeshes", они и сами не будут отображаться.

А вообще- поклацай флаги, и посмотри всторенным превьювером, что будет.

Экспортишь. Помни, что "спрятанные" (Hide Selection и т.п.) обьекты не экспортятся.

Загружаешь анимированную модель LoadAnimMesh-ем. Смотришь Хелп по командам ExtractAnimSequence и LoadAnimSequence, если тебе нужно более одной ("нулевой") анимации для твоей модели. Первая команда проще, вторая мне больше нравится, т.к. позже даст больше простора для маневра.

Насчет костей:
Как известно, костная анимация B3D поддерживает только Мах-овский модификатор Skin, причем на один вертекс модели может влиять лишь одна кость. А при анимации модели (см. Animate), имеющей кости, иногда придется найти FindChild-ом по Мах-овскому имени меш, к которому применялся модификатор и анимировать его отдельно, иначе кости будут анимироваться, а меш- нет. Перечислять, когда это происходит- не буду. Разберешься сам.
Например:
Код:

ТвояМодельСКостями=LoadAnimMesh("...b3d")
АнимированныйКостямиМешТвоейМодели=FindChild(ТвояМодель,"ИмяМешаВ3ДМах")
...
Animate ТвояМодельСКостями,...
Animate АнимированныйКостямиМешТвоейМодели,...

БЗД Экстеншенсы- это библиотеки, позволяющие загрузить из БЗД-файла и реализовать в Блице ряд фич. Тормозят. Не юзай их: пиши свои ф-и под конкретную ситуацию.

Вот так. Сумбурненько. Задавай конкретные вопросы... если конечно они вдруг появятся...

jimon 04.10.2006 23:40

Re: help B3D-anime
 

rtfmmm.. mm .. utfg .. gg

HolyDel 05.10.2006 01:14

Re: help B3D-anime
 
А где достать пайплайн?

tormoz 05.10.2006 02:33

Re: help B3D-anime
 
http://www.onigirl.com/pipeline/

Timon 06.10.2006 11:58

Re: help B3D-anime
 
ага спасиб, большой!!!

Timon 08.10.2006 11:13

Re: help B3D-anime
 
а не подскажите где можна взять последнее обновление ХЕЛПА для Блица. а-то у меня не все команды есть :(

jimon 08.10.2006 11:27

Re: help B3D-anime
 
http://www.boolean.name/showthread.php?t=352

Timon 08.10.2006 11:40

Re: help B3D-anime
 
ПАСИБ!!!!!!!

jimon 08.10.2006 11:44

Re: help B3D-anime
 
нема за що :)

Timon 08.10.2006 12:48

Re: help B3D-anime
 
блин не получается...
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
...
model=loadanimmesh("mesh.b3d")
extractanimseq(model,0,20)
pers=findchild(model,"Box01")
...

if keydow(...) and animseq=0
animate model
animate pers
endif
...
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

при запуске всё ровно, но стоит нпжать на keydown(...), то он дёргается толька на первый фрейм и застывает, а когда отпускаешь он постоянно анимируется, а если есщё раз надавит на кнопочку то он опять застывает до её отпускания(кнопочки)...
чё делать???

tormoz 08.10.2006 19:49

Re: help B3D-anime
 
Цитата:

чё делать???
Думать над логикой ;)

HolyDel 09.10.2006 02:09

Re: help B3D-anime
 
Цитата:

Сообщение от Timon
блин не получается...
при запуске всё ровно, но стоит нпжать на keydown(...), то он дёргается толька на первый фрейм и застывает, а когда отпускаешь он постоянно анимируется, а если есщё раз надавит на кнопочку то он опять застывает до её отпускания(кнопочки)...
чё делать???

Это весьма и весьма прогнозируемы результат.;)
Попробуй так что-ли:

if keydow(...)
if animated=0
animate model
animate pers
endif
animated=1
else
if animated
animate model,0
animate pers,0
endif
animated=0
endif

Timon 09.10.2006 11:10

Re: help B3D-anime
 
чисто твой код у меня не пошёл...
он пошёл через ElseIf'ы.
всёравно балбшой спасиб...

ABTOMAT 26.01.2007 00:55

Re: help B3D-anime
 
:SOS:Народ! Тока из-за этого и зарегистрился на форуме! Воть делаю я модель в костями и анимацией жму Preview, там проскакивают какие-то полосочки и всё. А что там должно быть? или я что-то не так делаю?:wallbash:
Подскажите пожалста. И ещё вот эта фраза "Селай костям прозрачность 0" Нельзя ли сказать поподробнее? Может, я тупой, но объясните позязя, мне очень нужна скелетная анимация в моей игре на Блитз3Д.:SOS:

HolyDel 26.01.2007 02:19

Re: help B3D-anime
 
кстати, у мну тоже preview не работает. аообще ничего не показывает. Интересно, из-за чего?

ABTOMAT 26.01.2007 10:44

Re: help B3D-anime
 
Ну а так-то када модель всовываешь в игру, то всё нормально? И кстати, кости к модели прицеплять skin'ом? Ты не мог бы подробнее рассказать о том как прицеплять, может, я не так делаю? Вот смотри: Создаю модель, потом кости, затем к модели применяю модификатор "skin", тыкаю на кнопку add и выбираю кости из списка. Так?

Vyacheslav 26.01.2007 13:13

Re: help B3D-anime
 
2 HolyDel: Или объекты на сцене большие и в просмотр не влазит (нужно в настройках пайплайн переместить камеру), или нужные галочки не выставлены, я так думаю...

2 ABTOMAT: О! Можно я расскажу? Звиняйте за пошлости, но оно так и выглядет (то, что мы сделаем будет очень напоминать вещь мужского туалета :) ):

1). Создаем цилиндр - не важно какой длины :) . Размещаем его перпендикулярно к осям Х и Z (т.е. на змелю).
2). На панели справа выбираем Create->Systems->Bones.
3). Клацаем на один край цилиндра (лучше с виду "слева" работать), потом еще раз где-то в центре цилиндра и еще раз на другом конце.
4). Нажимаем Esc и появиться основной элемент вышеупомянутого предмета :) . Удалим его, чтобы более культурно было - просто после последнего щелчка нажимаем Del.
5). Смотрим, чтобы кости были внутри цилиндра (в перспективе).
6). Если все нормально -> Выбираем цилинд, в списке модификаторов добавляем ему модификатор Skin.
7). В параметрах есть кнопка Add (возле Bones) - жмем ее и выбираем из списка обе кости.
8. Чтобы изгиб был плавный в стеке (список чуть выше) выбираем цилиндр и делаем Height Segments допустим 10.
9). Теперь выбираем назад наш Skin и жмем в параметрах кнопку Edit Envelopers.
10). По очереди выбираем обе кости и двигаем края окружностей в перспективе так, чтобы каждая кость захватывала практически весь цилиндр.
11). Отжымаем Edit Envelopers.
12). Выбираем одну из костей в перспективе, жмем AutoKey, прокручиваем полосу времени до конца, выбираем инструмент Select and Rotate и поворачиваем куда хотим и как хотим.
13). При экспорте снимаем галочку с Bone Meshes, на остальных пусть будет, хотя с некоторых тоже можно поубирать, ибо нужно экономить ресурсы и физическое пространство винта и смотрим превиев. Если там все нормально - значит день удался :) . Еще грузим это в Блиц, если и там все нормально - вообще день замечательный :) . Иначе -> пишем Пост реплай-> Vyacheslav - ты че-то не договорил, что-то не работает - давай объясняй что и как :) .
З.Ы. Возможно, прозрачность на кости не понадобиться ставить, я точно не помню, помогло ли только Bone Meshes.

ЛысыЙ_Чук-Иванчук 26.01.2007 13:49

Re: help B3D-anime
 
Цитата:

кстати, у мну тоже preview не работает. аообще ничего не показывает. Интересно, из-за чего?
Это скорее всего изза сильно большого размера. Сделай кубик, маленкий(размером-50), нажимай экспорт B3D(поставь все галочки для проверки), и нажимай предворительны просмотр, если нечиго не будет, значит кривой просмоторщик;)

ABTOMAT 26.01.2007 16:46

Re: help B3D-anime
 
Мдя.... Похоже, это экспортёр какой-то левый. И превьюв не работает, и ошбки критические выдает.... Навеное, импортнуть модель в игру у меня не получается из-за левости плагина, а не из-за криворукости (Шёпот из-под стола: "Ну хоть руки не кривые"). Можете мне дать ссылочку для плугина, который работает как надо? Или мне на мыло кинуть: [email protected]
Заранее спасибо
Кстати насчёт превьювера: я пробовал и совсем масюсенькие делать - всё равно даже асамо окно превьювера не вылезает, а тока полоски какие-то бегают и потом исчезают
Буду искать не левый плагин

ABTOMAT 26.01.2007 16:58

Re: help B3D-anime
 
Ура, мужики, заработал Превью! Не нуно ссылок, я перекачал Пайплайн, превью заработал!!!! Щас попытаюсь импортнуть, может чё и получится

Vyacheslav 26.01.2007 16:58

Re: help B3D-anime
 
2 ABTOMAT: См. почту
З.Ы. поспешил я :)

2 all: Кстати, почему .b3d так отличается в размерах от .3ds? Никто не хочет пофилософствовать на эту тему?

Raiter 26.01.2007 17:05

Re: help B3D-anime
 
потому что 3дс не держит костную анимацию!

Vyacheslav 26.01.2007 17:13

Re: help B3D-anime
 
А если позабирать при экспорте галочки по анимации? - все равно размеры разные...

ABTOMAT 26.01.2007 17:35

Re: help B3D-anime
 
Урр-яя-я!! Он движется!!! Он живой!!! Ква-ха-ха!!
Я прям как Франкенштойн! Нет, как Франкеншмоб. Или Франкеншнабс. Ну кароче, день сегдня отличный:-)

ЛысыЙ_Чук-Иванчук 26.01.2007 17:49

Re: help B3D-anime
 
Цитата:

А если позабирать при экспорте галочки по анимации? - все равно размеры разные...
Пойдеть, после зжатия размер прим одинаковый;)
PS- Ели хочеш использовать 3ds пожалуйста, тебя некто не заставляет использовать B3D...

Vyacheslav 26.01.2007 17:57

Re: help B3D-anime
 
Нет, мне просто интересно, что внутри .b3d файла, что он больше занимает места. Некоторые вещи в игре (статику, например) действительно лучше грузить через .3ds... Хотя интересно было бы узнать, проводил ли кто сравнительную характеристику по этим форматам - что быстрее загружается и т.п.

Raiter 26.01.2007 18:08

Re: help B3D-anime
 
я думаю и нубу понятно что статику лучьше делать в .3дс

Vyacheslav 26.01.2007 18:13

Re: help B3D-anime
 
Ну так вот я и интересуюсь, что еще нужно кидать в .b3d, а что оставить. А вообще вопрос был насчет: что внутри .b3d

Raiter 26.01.2007 18:15

Re: help B3D-anime
 
ответ: в б3д кидать всё что с костной анимацией! :)

внутри б3д куча 0 и 1 ;)

зыж хотя есть ешо мд2... ;)

Vyacheslav 26.01.2007 18:19

Re: help B3D-anime
 
2 Raiter: Не хочешь рассказать о md(n) - что это за форматы, откуда беруться и что дают, как у них с блендом анимаций и т.п.? А то я кроме .b3d, .3ds, .n3d особо 3D-форматов не использую...

Raiter 26.01.2007 18:22

Re: help B3D-anime
 
хороший формат :) с анимацией в блице очень легко... просто указываем с какого по какой кадр проигрывать и усё :) про остальное сказать не могу, так как особо его не юзал... Скажу только что там не костная а вертекстаня анимация...

Vyacheslav 26.01.2007 18:26

Re: help B3D-anime
 
Расскажи, чем отличается вертексная анимация от костной...

Raiter 26.01.2007 18:28

Re: help B3D-anime
 
гугл твой друг :) ;)

Vyacheslav 26.01.2007 18:32

Re: help B3D-anime
 
Ага, ясно :) . А как туда заходить? Стоп, ладно не буду приколы травить, а то за флуд обвинят... Просто чем больше информации, тем лучше, особенно так сказать "из народа". Может ты еще знаешь, где можно найти систему переключения анимаций, т.е. алгоритм, которые отлично будет в Блице управлять анимациями "ходьбы", "стрельбы", "на месте" и т.п. ?

ABTOMAT 26.01.2007 20:35

Я трасскажу чем отличается вертексная от костной
Вертексная - это када ты анимируешь каждую вершину (вертекс) отдельно, это очень сложно, нудно и не оправданно.
Скелетная(костная) - это када ты создаёшь модель, потом кости, потом на кости насаживаешь модель и анимируешь тока кости, а модель анимируется вслед за костями. Т.е. кость влияет на несколько вершин.

Насчёт переключения анимаций. В функции ясно написано, что грузишь модель и все анимации к ней (всё в разные переменные), а потом с помощью другой функции указываешь модель и нужную анимацию (т.е. переменные, куды они загружены

Народ, а кто-нить знает, как сделать зависимость скорости проигрывания анимации от частоты кадров в секунду? Т.е. наоборот, простите, убрать эту зависимость, а то у меня чем мощнее комп тем быстрее играется анимашка =( Подскажите кто-нить если кто знаит

Кстати насчёт .b3d и .md2. Я специально допытывался тут как сделать костную анимацию потому что она качественней и плюс .b3d - родной формат Блитза, значит и работать должен быстрее, а .md2 взяли из кваки.

Diplomat 26.01.2007 22:32

Re: help B3D-anime
 
1. АВТОМАТ, Давай бьединим-ка мы твои многочисленные посты в один. И больше так, пожалуйста, много постов не делай.
2. По МД2 и БЗД было сказано много. Буквально только что, буквально на Булке же, очередной раз поднималась соответствующая холиварная тема. И всё-всё там в сокращенном виде посторялось, что много раз повторялось до этого. Поиск рулит, товаресчеги!

HolyDel 27.01.2007 01:49

Re: help B3D-anime
 
а я таки повторюсь.
если использовать много объектов в сцене - то лутче юзать мд2. так как вся содель состоит из одного сюрфейса (если это понятие применимо к мд2), б3д состоит из кучи чайлдов - сами чайлды, коси и т.д. блитз тормозит при большом кол-ве объектов.
преимущества б3д в том, что мона создать несколько моделей, и несколько анимаций их скелетов, и потом подгружать к каждой модели оджинаковую анимацию (несколько одитнаковых анимаций), что очень неплохо продлевает жизнь моделлеру.

Stalnoy_Gvozd' 27.01.2007 12:29

Re: help B3D-anime
 
Цитата:

Сообщение от ABTOMAT
Народ, а кто-нить знает, как сделать зависимость скорости проигрывания анимации от частоты кадров в секунду? Т.е. наоборот, простите, убрать эту зависимость, а то у меня чем мощнее комп тем быстрее играется анимашка =( Подскажите кто-нить если кто знаит.

Мне тоже ето весьма интересно, ибо недавно решил сделать дельтатайминг, дык как толькотормоза спадают, и при этом уже была запущена какая либо анимация, эта самая анимация соответсно ускоряется.
Когда боты вдруг начинают сучить ногами-это не серьёзно!:dry:
Хотелось-бы понять как всё сделать по человечески.

ЛысыЙ_Чук-Иванчук 27.01.2007 17:13

Re: help B3D-anime
 
Цитата:

НаМне тоже ето весьма интересно, ибо недавно решил сделать дельтатайминг, дык как толькотормоза спадают, и при этом уже была запущена какая либо анимация, эта самая анимация соответсно ускоряется.
Когда боты вдруг начинают сучить ногами-это не серьёзно!:dry:
Хотелось-бы понять как всё сделать по человечески.
Насчет по человечески я незнаю, но я делал так: Я убрал сенхронизацию Flip 0(Чтобы блиц работал на всех парах:)), Далее занизил фпс до 30. Конечно если фпс будет ниже 30 тормоза неизбежны(но для этого нужно делать так, чтобы и на слабых машинах ФПС было стабильно);)

Stalnoy_Gvozd' 27.01.2007 20:50

Re: help B3D-anime
 
Не, тридцать фпс да при рассинхроне нозит хуже горькой (ужасно кислой, пересоленой) редьки. За это я недолюбливаю Gamemaker.
Мне интерестно можно ли управлять анимацией находу?
Хоть как нибудь,хоть самому по кадрам выводить!:SOS:

ЛысыЙ_Чук-Иванчук 27.01.2007 21:17

Re: help B3D-anime
 
Цитата:

Не, тридцать фпс да при рассинхроне нозит хуже горькой (ужасно кислой, пересоленой) редьки.
Ну как знаеш, у меня нормально.
ЗЫ. Большенство игр которые ты играеш фпс 15-30:)

Черный крыс 27.01.2007 21:53

Re: help B3D-anime
 
RenderWorld tween#

ЛысыЙ_Чук-Иванчук 27.01.2007 22:54

Re: help B3D-anime
 
Цитата:

RenderWorld tween#
Если делать так тогда вся анимация будет проигревася с одинаковой скоростью?

ABTOMAT 27.01.2007 22:56

Re: help B3D-anime
 
Цитирую себя:
Цитата:

Народ, а кто-нить знает, как сделать зависимость скорости проигрывания анимации от частоты кадров в секунду?
Цитирую Stalnoy_Gvozd':
Цитата:

Мне тоже ето весьма интересно
А я разобрался! Чтоб вы немучились, пишу как это сделать:
Цитата:

Кароче, вот мои рассуждения.
1. Измерить время от одного рендера до другого.
Сначала нуно узнать точное время (желательно Московское, но и системное время сойдёт) и чем точнее - тем лучше. Системный таймер измеряет время с точностью до 1 милисекунды, нам этого хватит. Создаём переменную, где будет указано в ремя ДО рендера:
Global: BeforeRender
И после рендера:
Global BeforeRender, AfterRender
И узнать их значения. Команду
BeforeRender = Millisecs()
пишем в цикле ДО команды
RenderWorld
А команду
AfterRender= Millisecs
после.
Потом вычисляем разницу:
Elapsed = AfterRender - BeforeRender
Эту команду пишем в цикле перед командой Untill
Да, кстати, переменную Elapsed нуно объявить в блоке переменных:
Global BeforeRender, AfterRender, Elapsed
После этого пишем саму программу. И теперь если нужно передвинуть объект, то мы пишем не число, а число*Elapsed:
If KeyDown(200) MoveEntity cub,0,0,0.1*Elapsed
If KeyDown(208) MoveEntity cub,0,0,-0.1*Elapsed
If KeyDown(203) MoveEntity cub,-0.1*Elapsed,0,0
If KeyDown(205) MoveEntity cub,0.1*Elapsed,0,0

Вот теперь работать буит на любой машине без глюков (даже если тормозит, то замедления не случится)
Кстати, с анимацией всё точно так же. Нужно умножать на Elapsed скорость проигрывания анимации
Привожу полный код проги:
Global BeforeRender, AfterRender, Elapsed
Graphics3D 1280,1024,32,1
BackBuffer()
light=CreateLight()
timer=CreateTimer(300)
;таймер-ограничитель fps. Число в скобках - максимальное fps.
;Здесь, в общем-то ограничитель не нужен,
;почему я его тут поставил читай ниже
cam=CreateCamera()
cub=CreateCube()
PositionEntity cub,0,-10,20
BOT=LoadAnimMesh("01.B3D")
ScaleEntity BOT,.05,.05,.05
PositionEntity BOT,0,1,20

LoadAnimSeq BOT,"01.B3D"
PointEntity cam,bot

Repeat
BeforeRender = MilliSecs()
If KeyDown(200) MoveEntity cub,0,0,0.05*Elapsed
If KeyDown(208) MoveEntity cub,0,0,-0.05*Elapsed
If KeyDown(203) MoveEntity cub,-0.05*Elapsed,0,0
If KeyDown(205) MoveEntity cub,0.05*Elapsed,0,0
If KeyDown(57) And AnimSeq=0 Animate BOT,1,.02*Elapsed,1,0
WaitTimer(timer) ; Процедура ограничения fps. Уберёшь эту команду -
;ограничения не буит.
UpdateWorld()
RenderWorld()
Font=LoadFont("Arial cyr",30,True)
SetFont(Font)
Color 0,255,0
Text 640,50,"Стрелки - управление кубиком",True,True
Text 640,75,"Пробел - начало анимации",True,True
Text 640,100,"Escape - выход",True,True
AfterRender = MilliSecs()
Flip 0
Elapsed = AfterRender - BeforeRender
Until KeyHit(1)

End


Я вставил ограничитель кадросекунд специально чтобы вы могли убедиться: работа программы не зависит от FPS, сами ставьте любые значения и проверяйте.
Вместо файла 01.b3d возьмите любой .b3d-шный файл, переименуйте в 01.b3d и закиньте в папку с прогой.
Хе-хе. Не так уж всё и сложно. Между прочим, я всё сам сделал и прописал, у знакомых на форуме тока команды спрашивал. Насчёт ограничения FPS. Ограничить - тоже вариант, но есть причины, по которым его не следует использовать:
1. Если машина мощная, то почему бы не использовать её потенчиал, делая столько fps, скоко этоа машина может выдавать. А если поставим ограничение в 30 кадров (хотя машина может выдать и 70), то пользователь не обрадуется да и самому неприятно.
2. Если же машина наоборот слишком слабая, то кол-во кадров в секунду упадёт и упадёт скорость работы самой игры (если мы можем поставить максимальное fps, то минимальное уже не ограничишь - не тянет машина и всё тут), так как скорость работы игры зависит от fps. Снижается fps => снижается скорость работы игры.
Надеюсь, понятно всё объяснил. А вот с моим стабилизатором при любом fps на любой машине работать будет с одинаковой скоростью. Почитай там код, разберёшься как модели свои вставлять и т.д.
И, чуть не забыл. Использовать ограничитель fps следует если вы делаете простенькую игрушку нетребовательную к ресурсам компа. (т.к. стабилизатор тормозит сильнее чем ограничитель). Поставишь ограничение в 30 кадров - и этого хватит чтоб сыгарть в простенькую аркаду. Для серьёзных проектов пользуйся ограничителем.

Хух.... Выложился на полную катушку. Кто тут админ? За хорошие, полные и досканальные ответы тут не полагается, скажем, звёздочек под аватаром или там смена статуса (Достал меня статус "Any Key'щик", хочу "АК-47")? Лана, я ж прикольнулся. (Но было бы приятно)

Черный крыс 27.01.2007 23:36

Re: help B3D-anime
 
Способ который ты пытался реализовать - называется "Дэльта-тайминг"....причем, он у тебя весьма криво реализован.... - делается твоя билеберда двумя строчками....

Цитата:

dt#=(MilliSecs()-LastFrame)*0.4
LastFrame=MilliSecs()
Этим все сказано...

Diplomat 28.01.2007 00:29

Re: help B3D-anime
 
2 Diablo1909: Какой коефициент забавный: 0.4... А главное- жОсткая константа. Собственно, 0.4- это ответ на Главный Вопрос Вселенной, только почему он столь императивно закреплен в вышеприведенном коде?
Почему именно 0.4? Ведь "03"- звучит символичнее, а "0.5"- ближе сердцу русского человека...
:-)

ABTOMAT 28.01.2007 01:00

Re: help B3D-anime
 
Товарищ Диабало, вот у меня как раз всё хоть и длинне зато некоряво. У меня происходит тока одно вычисление в самом начале, а потом уже готовое значение подставляется куды нуно. А у тебя скоко раз используется значение это, стоко же раз и выполняется вычисление, хотя значение, по идее, одно.
Если кто-то скажет, что в этом я не прав, очень интересно послушать:glag:
Кстат, не тебя ли я встречал в форумах GamesAnatomy и если да, то не знаешь, что у них с сервером?

ЛысыЙ_Чук-Иванчук 28.01.2007 09:18

Re: help B3D-anime
 
Цитата:

Кстат, не тебя ли я встречал в форумах GamesAnatomy и если да, то не знаешь, что у них с сервером?
Батарея села-Заряжают:)

Stalnoy_Gvozd' 28.01.2007 09:24

Re: help B3D-anime
 
Хех! Да ну? Честно говоря это я у жо давно сделал, но всё равно спасибо за просвещение еще не просвященных прохожих етой темы.
Я как раз таки объясняю
"...недавно решил сделать дельтатайминг, дык как толькотормоза спадают, и при этом уже была запущена какая либо анимация, эта самая анимация соответсно ускоряется..."

Проблема как-раз в Animate BOT,1,.02*Elapsed,1,0
если в первом кадре были тормоза, то к примеру Elapsed=10,:(
при етом если в следующем кадре вдруг фпс возросло, то Elapsed=1,:)
НО при етом анимация продолжает проигрываться как Animate BOT,1,.02*10,1,0:dry:

Вот это я и пытался сказать.

ABTOMAT 28.01.2007 11:34

Re: help B3D-anime
 
Цитата:

НО при етом анимация продолжает проигрываться как Animate BOT,1,.02*10,1,0
Ну енто уж извини, никак не исправишь. Да лана, такие скачки производительности очень редкие. Кстати насчёт корявости проги. Тут я немного ступил, моно обойтись без переменной AfterRender:
Цитата:

Global BeforeRender, Elapsed
Graphics3D 1280,1024,32,1
BackBuffer()
light=CreateLight()
timer=CreateTimer(300)
cam=CreateCamera()
cub=CreateCube()
PositionEntity cub,0,-10,20
BOT=LoadAnimMesh("01.B3D")
ScaleEntity BOT,.05,.05,.05
PositionEntity BOT,0,1,20

LoadAnimSeq BOT,"01.B3D"
PointEntity cam,bot

Repeat
BeforeRender = MilliSecs()
If KeyDown(200) MoveEntity cub,0,0,0.05*Elapsed
If KeyDown(208) MoveEntity cub,0,0,-0.05*Elapsed
If KeyDown(203) MoveEntity cub,-0.05*Elapsed,0,0
If KeyDown(205) MoveEntity cub,0.05*Elapsed,0,0
If KeyDown(57) And AnimSeq=0 Animate BOT,1,.02*Elapsed,1,0
WaitTimer(timer)
UpdateWorld()
RenderWorld()
Font=LoadFont("Arial cyr",30,True)
SetFont(Font)
Color 0,255,0
Text 640,50,"Стрелки - управление кубиком",True,True
Text 640,75,"Пробел - начало анимации",True,True
Text 640,100,"Escape - выход",True,True
Flip 0
Elapsed = Millisecs() - BeforeRender
Until KeyHit(1)

End
А так всё такое же. И вовсе некорявое

Stalnoy_Gvozd' 28.01.2007 13:16

Re: help B3D-anime
 
А можно как нибудь показывать определенный кадр анимации вручную?
Допустим вывести кадр 12.5 и тп.

Diplomat 28.01.2007 13:31

Re: help B3D-anime
 
1. ABTOMAT : Во-первых, твоё виденье философской сути дельта-тайминга действительно несколько необычно и отдает трансцендентальной философией. Давай лучше оставаться в границах диалектики и не строить необоснованных теорий?

2. ABTOMAT : Во-вторых, код Diablo1909 используется как раз всего единожды за проход цикла (почему ты, решил, что может быть иначе?), и единственная его прямая ошибка, это нелепая константа "0.4".

3. Stalnoy_Gvozd' : Цитирую русскую версию Хелпа:
Цитата:

UpdateWorld [anim_speed#]
Параметры
anim_speed# (необязательно) - значение скорости анимации. По умолчанию равно 1.
Определение
Анимирует все объекты в мире, и производит проверку столкновений.
Необязательный параметр anim_speed# позволяет менять скорость анимации всех объектов сразу. Значение 1 это проигрывание анимаций с их настоящей скоростью, значение 2 анимирует объекты с удвоенной скоростью, и так далее.
Для лучшего результата эта команда должна вызываться один раз за цикл, перед вызовом команды RenderWorld.
P.S. Люди! Будьте бдительны! (с)

Stalnoy_Gvozd' 28.01.2007 22:04

Re: help B3D-anime
 
Неимоверное спасибо!:super:
Далее бдю!

ЛысыЙ_Чук-Иванчук 28.01.2007 22:47

Re: help B3D-anime
 
Цитата:

Неимоверное спасибо!:super:
Далее бдю!
ХМ, я думал то что написал Diplomat знают все:(

Vyacheslav 29.01.2007 15:55

Re: help B3D-anime
 
Еще раз к вопросу об анимациях...
А как сделать следующее:
Например, у нас есть 3 анимации - .b3d файла

Итак:

pers\mesh=LoadAnimMesh("creature_stand.b3d")

pers\Body=FindChild(pers,"Body")

Animate pers\Body

А что, если надо еще анимационные последовательности, к примеру:

LoadAnimSeq (pers\mesh,"creature_move.b3d")
LoadAnimSeq (pers\mesh,"creature_attack.b3d")

Как проигровать pers\Body ? Ведь для него будет только одна анимационная последовательность...
Т.е. Animate pers\Body,1,1,1,10 уже не катит... А в любом случае нужно искать чайлды, а то только бипед не нуждается в этом.

Т.е как сделать, чтобы pers\Body=FindChild(pers,"Body") можно было использовать для проигрывания нескольких аним. последовательностей?

Si-Jey 14.01.2010 02:02

Ответ: help B3D-anime
 
Привет всем, прочитал всю ветку-но так и не разобрался.
Имеется модель человека со скелетом (biped),открываю файл анимации(.bip) и модель начинает двигаться-все ОК.Но после экспорта в b3d(все галки поставлены) и ее анимации-анимируется лишь скелет,а модель стоит на месте-такое же наблюдается и в Preview Пипилайна анимируется только скелет модели.
Хелпа по Пипилайну нет.
Обьясните пожалуйста как заставить двигаться саму модель в блице?
Уже не стоит обьяснять,я разобрался-у меня привязка скелета к модели основано на модификаторе Physique,который Пипилайн не поддерживает.
Часть цитаты из экспортного окна:
"Skinned Meshes:
Skin, Max Bones and Biped are supported (NOT Physique)
Only bones referenced in the Skin modifier are exported
Blitz3d supports up to 256 bones per object
"

ABTOMAT 14.01.2010 02:54

Ответ: help B3D-anime
 
Цитата:

Обьясните пожалуйста как заставить двигаться саму модель в блице?
http://forum.boolean.name/showthread.php?t=7338

Darksoul 30.01.2010 18:59

Ответ: help B3D-anime
 
Вложений: 1
Хочу возродить тему.
Прошу кирпичами не кидать!
Вопрос такой. У меня чувак сделаный в Максе, экспортирован через B3d pipelin в один фаил Меша, и несколько файлов анимации(run, walk, walkw, stand - чувак бежит, чувак идет, чувак идет с оружием, чувак стоит.)
Все согласно рекомендациям этого форума.
Однако ж при переключении анимации, возникают некоторые непонятности. После перехода с анимации "бега" на "стоит" руки персонажа, которые должны деражть оружие, кудато смещаются, в зависимости от момента переключения. Такое ощущение, что блитз запаминает позицию некоторых костей и переносит в следущую анимацию... Обьяснить трудно. прикрепляю проект, Посмотрите пожалуйста, может у кого есть соображения по этому поводу... Если проблемы с руками(моими), не ругайтесь, обьясните. :"(

KingMaks 30.01.2010 23:48

Ответ: help B3D-anime
 
Darksoul
У меня таже история : неанимированые кости стоят в такой позе
в которой были в превидущей анимации:)
Не знаю как с етим бороться, разве что анимировать каждую кость хоть както

Darksoul 31.01.2010 01:28

Ответ: help B3D-anime
 
KingMaks

Я делаю анимацию с помощью CAT. там есть фишка- прописывать кейфрейм, для каждого кадра для каждой кости... и та же фигня... я вообще понять не могу.. Ну может кто отзовется из знающих...:mad:

Darksoul 09.02.2010 19:38

Ответ: help B3D-anime
 
После долгих путешествий по форумам, я таки добился результата. И хочу отписаться, что бы другим легче было.
Как я понял, что бы заниматься костной анимацией в Блице, используя при этом обойму 3Dsmax+Pipeline, есть всего два способа:
1. создать обьект и его анимацию. Сохранить обьект(меш) в одном файле и отдельно сохранить анимации костей в других. Этот способ хорош тем, что можно разным персонажам в игре присваивать одну и туже анимацию(к примеру толпа разных зомби будут двгаться по одной анимации). По мне так это очень удобно и с точки зрения анимирования в Максе. Создал кучу файлов, каждый под своим именем. Можно структурно расположить, особоенно если персонаж собирается не только бегать и прыгать, а допустим танцевать или еще чего больше. Очень многие на форумах ссылаются сюда Здесь описывается правильный экспорт через pipeline. Ну так вот хочу сказать, что способ это работает очень хорошо, есть есть только пара анимаций персонажа, а чуть больше, начинается фигня которую я описывал выше в этой теме. Кости съезжают, все через ">>:( " ! И как с этим бороться никто не подсказал, и сам я не нашел. Говорят, что дело в галочках Пипелина, все перетыркал, не получилось.

2. Поэтому люди добрые сказали, делай анимацию, где все в одном файле. Это работает. Ага. только что бы это заработало надо опять перетыркать кучу галочек в пипелине. Иначе получается, что скелет двигется, а меш стоит мертво. Я думаю, я не единственный с такой проблемой. В общем просидев все ночь, удалось найти нужную комбинацию галочек. Для тех кому интересно отписываю (кому не интересно, переверните страницу):

После того как содали персонажа и анимацию в Максе, надо спрятать все кости, оставить только один меш. При этом он может нести в себе данные о текстуре и развертке. После чего експортируем через Pipeline Plugin. И там галочки.

Scene Root - off
XRef Scenes - on
XRef Objects - on
\-Meshes - on
\-Normals - on
\-Vertex Color - on
\-Materials - on
\-Textures - on
\-Relative Path - on

Bone Meshes - off
Helpers - off
Shapes - off

Export Animation - on
Export Bones - on
Export Morphs - on

Preserve Key Frames - on

Enable Extension - off (если эта опция выключена ,а SceneRoot включен, то бейсик ругается при выходе из программы. Но возможно, это только у меня )



Нет, я не говорю, что я такой умный и написал здесь, что всем давно известно. Но если б я прочитал такой пост где вёс написано подробно, не мучился 2 недели с поиском, а занимался бы анимацией, что мне гораздо более подуше. :rolleyes:

Crayzi 28.08.2010 03:24

Ответ: help B3D-anime
 
Вложений: 1
А как мне воспользоватся модификаторами типо волны? Просто я делаю простую анимацию, типо "волна идет по сфере", экспортирую в .3ds, загружаю блитцес, и вот я вижу шарик, анимирую... и ноль на массу, с .b3d тоже самое (пробовал разные настроки, не помогло). Вопрос, что я не так делаю и как сделать чтобы работало? Помогите плизз, прилагаю файл в формате .max.


Часовой пояс GMT +4, время: 06:07.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot