forum.boolean.name

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

Akima 14.01.2006 11:21

Вложений: 2
Как всегда доброго всем времени, У меня такой вопрос: как обращаться с FindChild и getChild?

модель состоит из двух полосок, Она полоска Box02 линкована
(присоеденена) к Box01, я понимаю что бокс02 является
детенышем 1го бокса, пишу findchild ( obj ,"box02"), получаю
0, чаво делать то?

Платон 14.01.2006 11:29

Загружаешь модель как анимированную(Model=LoadAnimMesh())
Потом находишь чайлд Child=FindChild(Model,"Box02")
И все :)
GetChild(Model,index) возвращает чайлд модели по индексу, а findchild(Model,"имя чайлда") по имени которое ты дал ему в редакторе(Box02 и т.д).
ЗЫ
Самое главное это модель загружать как анимированный меш.

Akima 14.01.2006 11:35

спасибо сейчас попробую

AsmLover 14.01.2006 14:54

Тут еще важно использовать правильный регистр - если, например, в максе, имя объекта было box02, то его поиск в блитце по имени Box02 будет неудачным.

impersonalis 14.01.2006 15:16

Да и длина имени объекта вроде как в б3д меньше, чем можно сделать в максе

jimon 14.01.2006 16:15

ограничения на длину нету

вырезка из спецификаций формата b3d файла
Цитата:

NODE:
char name[] ;name of node
float position[3] ;local...
float scale[3] ;coord...
float rotation[4] ;system...
[MESH|BONE] ;what 'kind' of node this is - if unrecognized, just use a Blitz3D
pivot.
[KEYS[,KEYS...]] ;optional animation keys
[NODE[,NODE...]] ;optional child nodes
[ANIM] ;optional animation



HorNeS 15.01.2006 21:37

А если,допустим у меня много Child'ов.Можно ли их загнать в массив или список :dontknow: ?Если да,то подскажите,как это сделать :@ .

jimon 15.01.2006 22:26

Код:

dim my_childs# (128)

for buf# = 1 to CountChildren( entity )
my_childs#(buf) = GetChild(entity,buf)
next

думаю понятно ? :)

impersonalis 15.01.2006 22:52

Так же моно распихать по тематическим массивам:
к примеру все окна назвать
Цитата:

window1
window2
window3

а в б3д закодить как:
Код:

Dim windows(count)
For i=1 To count
        windows(i)=FindChild(mesh,"window"+i)
Next


HorNeS 15.01.2006 23:32

Спасибо :) .


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

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