forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Обращеие к частям 3D модели (http://forum.boolean.name/showthread.php?t=12654)

Mustang_GT 11.06.2010 14:41

Обращеие к частям 3D модели
 
В процессе создания пробной маленькой игрушки столкнулся со следующей задачей.
Моделирую я в 3D Max'е, для вставки моделей использую формат *.3ds
Модель состоит из двух частей с разными именами, это - сам игрок и собственно его оружие. Возможно ли как-нибудь обращаться непосредственно в Блице к этим частям одной модели? Например я хочу наложить одну текстуру на игрока, а вторую на оружие, или передвинуть их в разные места, но и игрок и оружие находятся в одном файле модели. Как это сделать?

Arton 11.06.2010 14:46

Ответ: Обращеие к частям 3D модели
 
Цитата:

Сообщение от Mustang_GT (Сообщение 149946)
В процессе создания пробной маленькой игрушки столкнулся со следующей задачей.
Моделирую я в 3D Max'е, для вставки моделей использую формат *.3ds
Модель состоит из двух частей с разными именами, это - сам игрок и собственно его оружие. Возможно ли как-нибудь обращаться непосредственно в Блице к этим частям одной модели? Например я хочу наложить одну текстуру на игрока, а вторую на оружие, или передвинуть их в разные места, но и игрок и оружие находятся в одном файле модели. Как это сделать?

Да можно, а как хз...

baton4ik 11.06.2010 15:07

Ответ: Обращеие к частям 3D модели
 
Цитата:

Сообщение от help
FindChild ( entity,child_name$ )

Parameters:


entity - entity handle
child_name$ - child name to find within entity

Description:

Returns the first child of the specified entity with name matching child_name$.

body=FindChild (player,body)
gun=FindChild (player,gun)

Mustang_GT 11.06.2010 15:10

Ответ: Обращеие к частям 3D модели
 
Спасибо, похоже это то, что нужно) Пойду попробую

Hurrit 11.06.2010 18:30

Ответ: Обращеие к частям 3D модели
 
Запомни, 3ds формат не поддерживает имена длиннее 8 символов, и когда будешь искать имена, обязательно (ОБЯЗАТЕЛЬНО, БЛЖДАД!) учитывай регистр и бери в скобки!

Alex_Noc 11.06.2010 18:58

Ответ: Обращеие к частям 3D модели
 
экспортируй как аним модель из макса

DeeJex 11.06.2010 19:46

Ответ: Обращеие к частям 3D модели
 
оО неужели еще кто-то юзает 3ds?

Mustang_GT 11.06.2010 19:47

Ответ: Обращеие к частям 3D модели
 
А что тогда надо? И чем 3ds не удобен?

Hurrit 11.06.2010 19:56

Ответ: Обращеие к частям 3D модели
 
Вообще, самый верный вариант для блица - это его же родной формат .b3d Держит всё что необходимо. А .3ds и .x это полный отстой

Mustang_GT 11.06.2010 19:59

Ответ: Обращеие к частям 3D модели
 
Ну... до *.b3d пока ещё не дошёл) А родной 3D Max всегда под рукой и в нём я по крайней мере хоть как-то шарю)

Mustang_GT 11.06.2010 20:18

Ответ: Обращеие к частям 3D модели
 
Ещё один вопрос, правда совсем не по теме.
Как организовать анимационное движение у модели?
Вот пример кода:
Код:

Graphics3D 0,0,0,1
SetBuffer BackBuffer()

cam=CreateCamera()
light=CreateLight()
PositionEntity cam,20,85,-20

Igrok = LoadAnimMesh("XXX.3ds") <- Сдесь загрузка анимационной модели игрока в спокойствии(оглядывается, дишит и т.п.)
PointEntity cam,Igrok

EntityParent cam,Igrok

//В этом месте идёт загрузка прочих моделей без анимации, к примеру карта

Animate Igrok
Repeat

If KeyDown(17) MoveEntity Igrok,0,0,1
If KeyDown(31) MoveEntity Igrok,0,0,-1


UpdateWorld()
RenderWorld()
Flip
       
Until KeyHit(1)
End

Интересует момент
Код:

If KeyDown(17) MoveEntity Igrok,0,0,1
If KeyDown(31) MoveEntity Igrok,0,0,-1

Куда-то сюда каким-то образом надо вставить фрагмент, чтобы при нажатии этих кнопок игрок двигался(что он прекрасно делает) и загружал другую анимацию, как ходит, а при отпускании всё возвращалось обратно. Задача не сложная, но я совсем новичёк и как только не пытался ничего не выходит. Иногда что-то выходит, но совсем глючное и не правильное)
P.S.: Сори за то что не там написано, прост решил не создавать тему ради этого)

baton4ik 11.06.2010 23:29

Ответ: Обращеие к частям 3D модели
 
Цитата:

Сообщение от Mustang_GT (Сообщение 149989)
Ещё один вопрос, правда совсем не по теме.
Как организовать анимационное движение у модели?
Вот пример кода:
Код:

Graphics3D 0,0,0,1
SetBuffer BackBuffer()

cam=CreateCamera()
light=CreateLight()
PositionEntity cam,20,85,-20

Igrok = LoadAnimMesh("XXX.3ds") <- Сдесь загрузка анимационной модели игрока в спокойствии(оглядывается, дишит и т.п.)
PointEntity cam,Igrok

EntityParent cam,Igrok

//В этом месте идёт загрузка прочих моделей без анимации, к примеру карта

Animate Igrok
Repeat

If KeyDown(17) MoveEntity Igrok,0,0,1
If KeyDown(31) MoveEntity Igrok,0,0,-1


UpdateWorld()
RenderWorld()
Flip
       
Until KeyHit(1)
End

Интересует момент
Код:

If KeyDown(17) MoveEntity Igrok,0,0,1
If KeyDown(31) MoveEntity Igrok,0,0,-1

Куда-то сюда каким-то образом надо вставить фрагмент, чтобы при нажатии этих кнопок игрок двигался(что он прекрасно делает) и загружал другую анимацию, как ходит, а при отпускании всё возвращалось обратно. Задача не сложная, но я совсем новичёк и как только не пытался ничего не выходит. Иногда что-то выходит, но совсем глючное и не правильное)
P.S.: Сори за то что не там написано, прост решил не создавать тему ради этого)

Эх, поиск юзать надо и хелп курить!

..
model=LoadAnimMesh("model.b3d")
anim=LoadAnimSeq("walking.b3d")
..
Repeat
..
If KeyDown(17) And AnimSeq=0 Animate(model,1,1,walking)

Program23 23.06.2010 23:24

Ответ: Обращеие к частям 3D модели
 
Вложений: 1
Лови довольно понятный пример:
Надеюсь это было полезно!


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

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