Тема: FAQ по B3D
Показать сообщение отдельно
Старый 16.12.2007, 11:45   #74
NovICE
AnyKey`щик
 
Регистрация: 14.12.2007
Сообщений: 7
Написано 0 полезных сообщений
(для 0 пользователей)
Re: FAQ по B3D

PLEASE! HELP ME!
последую твоему совету Avel, и постараюсь объяснить все поконкретнее:
1. вот полный код:
strelki: LEFT, RIGHT - povorot, UP\DOWN - camera UP\DOWN
; A - vpered, Z - nazad
Graphics3D 800,600,32,2 
Global ssp# = .05
Type Player
Field entity,model
Field anim_speed#,player_y#
End Type
Type SmartCam
Field entity,camera,target, heading
End Type
 
Const TYPE_PLAYER=1, TYPE_TARGET=2, TYPE_WALL=3
Collisions TYPE_PLAYER,TYPE_WALL,2,2
Collisions TYPE_TARGET,TYPE_WALL,2,2
Global level,player_model
LoadGameObjects()
player.Player=CreatePlayer( 0,5,0 )
camera.SmartCam=CreateSmartCam( player\entity )
While Not KeyHit(1)
UpdateGame()
UpdateWorld
For c.SmartCam=Each SmartCam
UpdateSmartCam( c )
Next
RenderWorld 
Flip
Wend
End
;--------- Functions -------------
Function UpdateGame()
For p.Player=Each Player
UpdatePlayer( p )
Next
End Function
 
Function CreatePlayer.Player( x#,y#,z# )
p.Player=New Player
p\entity=CreatePivot()
p\model=CopyEntity( player_model,p\entity )
p\player_y=y
PositionEntity p\entity,x,y,z
EntityType p\entity,TYPE_PLAYER
EntityRadius p\entity,2
Return p
End Function
 
Function UpdatePlayer( p.Player )
 
If KeyDown(203) ;left/right
TurnEntity p\entity,0,5,0
Else If KeyDown(205)
TurnEntity p\entity,0,-5,0
EndIf
 
If KeyDown(30) ;forward
If p\anim_speed<=0
p\anim_speed=1.75
Animate p\model, 1, 1.5, 1, 10 
EndIf
MoveEntity p\entity,0,0,1
Else If KeyDown(44) ;back
If p\anim_speed>=0
p\anim_speed=-1.75
Animate p\model, 1, 1.5, 1, 10 
EndIf
MoveEntity p\entity,0,0,-1
Else If p\anim_speed ;stop animating
p\anim_speed=0
Animate p\model, 2, 1, 0, 10
EndIf
 
ty#=EntityY(p\entity)
y_vel#=(ty-p\player_y)
p\player_y=ty
y_vel=y_vel-.5
TranslateEntity p\entity,0,y_vel,0
 
End Function
Function CreateSmartCam.SmartCam( entity )
c.SmartCam=New SmartCam
c\entity=entity
c\camera=CreateCamera()
 
c\target=CreatePivot( entity )
PositionEntity c\target,0,5,-10
EntityType c\target,TYPE_TARGET
 
c\heading=CreatePivot( entity )
PositionEntity c\heading,0,0,20
Return c
End Function
Function UpdateSmartCam( c.SmartCam )
 
If KeyDown(200)
TranslateEntity c\heading,0,-3,0
Else If KeyDown(208)
TranslateEntity c\heading,0,+3,0
EndIf
 
dx#=EntityX(c\target,True)-EntityX(c\camera,True)
dy#=EntityY(c\target,True)-EntityY(c\camera,True)
dz#=EntityZ(c\target,True)-EntityZ(c\camera,True)
 
TranslateEntity c\camera,dx*ssp,dy*ssp,dz*ssp
 
PointEntity c\camera,c\heading
 
PositionEntity c\target,0,0,0
ResetEntity c\target
PositionEntity c\target,0,20,-15
End Function
Function LoadGameObjects()
level=LoadMesh( "maps\tur.b3d" )
ScaleEntity level,.15,.15,.15
EntityType level,TYPE_WALL
 
player_model = LoadAnimMesh( "ROBOT\torus.b3d" ) 
ScaleEntity player_model,.2,.2,.2
LoadAnimSeq player_model, ("ROBOT\walk.b3d" ) 
TurnEntity player_model,0,-180,0 
HideEntity player_model
End Function
это не мой код. я его "стырила" из чужого исходника. сама еще не умею так.
Итак, я запустила МАКС и создала в сцене примитив цилиндр. Перевела его сетку в эдитейбл мэш. Затем наложила модификатор скин. Создала два бокса. поставила один на другого и расположила их внутри цилиндра и присоединила их в качестве костей. короче получилаось такое примитивное подобие ноги, сгинающейся в колене. И теперь перехожу File -> Export и сохраняю в формате b3d. под именем torus(для этого я установила B3D Pipeline). теперь после этого включила автоматическую расстановку ключей . анимация в 40 кадров. с 0 по 10 я с помощью наклоняю верхний бокс. с 10 по 20 возвращаю его в исходное положение. с 20 по 30 также наклоняю только в другую сторону и с 30 по 40 снова в обратном направлении возвращаю в исходное положение.
И все. Дальше опять перехожу File -> Export и сохраняю в формате b3d. под именем walk.
Еще скажу что когда экспортирую в формат .b3d, появляется окно с опциями экспорта. В этом окне галочки выставлены абсолютно везде уже с самого начала. (сама я не знаю какие именно галочки надо проставлять)
Теперь запускаю Блитц3Д и в вышеприведенном коде использую свои файлы.
нажимаю F5. короче цилиндр в пространстве есть. нажимаю клавиши A и Z для перемещения. И тут цилиндр хотя сам двигается (или правильнее скользит как и все объекты по умолчанию), самой анимации цилиндра, а он должен нагинаться в разные стороны при передвижении, нет.
вот такая вот загогулина.
А мог бы кто нибудь показать как именно надо ипользовать в Блитце модели, сохраненные в формате b3d. если можно конечно. а то может код неправильный?

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