2008年05月14日

PhysXのクロスシミュレータ その5 modo 302

前回のApplyPhysX.pyにバグがあって、アイテムに動きを付けると動かなかった。原因は回転が連続するように回転運動をフレーム間の角度差で処理しているんだけど、その回転の初期値を設定し忘れていた。修正してアップしたけど今回の奴で置き換えられるので、わざわざダウンロードし直す必要は無いよ。

だんだんタイトルと中身が合わなくなって来たけど、今回はアイテムアニメーションをPhysXに取り込んで処理するようにした。

fig01これがその例。この画面ではバットになってるけど実際は単なる直方体で計算した。バットはその後で直方体を加工したもの。今のところアイテムについては回転の中心をずらす方法は作っていないので辛抱してね。この例ではその直方体に回転のアイテムアニメーションを付けてsetPhysxProp.pyでisMoveの設定を「key」にして計算させている。

 PhysXは形状を表わすShapeと、それを入れるためのActorってのがあって、Actorはちょうどmodoで言えばグループロケータみたいな感じになる。これをうまく対応させるのがいいかなぁ。そしてアイテムアニメーションをPhysXに持ち込むにはこのアクターに対して1フレーム進むごとにmoveGlobalPose( )メソッドを使って回転と位置を設定してやればいい。その際raiseBodyFlag(NX_BF_KINEMATIC)を設定してやるのを忘れちゃうと動かないので気をつける必要がある。PhysXには位置の設定として、setGlobalPose( )っていうメソッドもあるけど、こっちを使うとアイテムの位置が設定されるだけで、PhysX内でアイテムの運動としては認知されないのでPhysXでプログラミングする時は注意が必要なようだ。

それではまた次回。

スクリプトまとめページ( Down Load はこちらから)  

カテゴリー別ページ



take_z_ultima at 12:21│Comments(0)TrackBack(0)modo | CG

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 

Archives