思いつくままを綴る雑記帳

Blender GameEngineでObjectが消える・・・

超久々ですが・・。
ここ暫くBlenderのGame Engineで私用のツールを作っていたのですが
そこでちょっとした問題が発生して悩んでいました・・・。
えっ・・そんな事で悩んでいたの?と言われそうですが・・・。

リギングしたObjectを表示させてカメラワークでズームさせていた時に
時々一部のObjectがカメラの中央にいるのに消えてしまうという・・・。
少しカメラアングルを変えるとまた表示されると・・・。
最初はマテリアルの設定かな?とか・・・
いろいろと試行錯誤しましたが解決せず・・・・。

で、いろいろとググって調べましたが・・・これだ! という物もHitせずに・・・。
で、RenderタグのDisplayセクションのPhysics VisualizationをOnにして表示すると
あっ! これかぁ・・と、納得・・・。
ArmatureがGame Engine内でPlayされていない時にObjectが
ビュー内にあるかどうかのカメラの判定ってTimelineのフレーム位置無視なんだね・・・。
カメラビュー内に実体はあるのに、判定ObjectはArmatureのRest positionのObjectの位置を見ているという・・。

カメラビューがArmatureのRest PositionのObject位置から外れると
Objectがカメラのビュー内にあっても描画されません・・・。

これって静止させているArmature支配下のObjectを正常にカメラ内で描画させるには
Armatureをそのフレーム位置で一度Actionさせないとだめなのね・・・。


これで・・・悩んでいた事は解決かなぁ・・・。
作業再開させないと結論は出ませんが・・・・。

あ・・・WorldタブのPhysicsセクションのOcculusion CullingもOnにしないと描画されません・・。


訂正内容
上記の方法では無理でした。
力技で1フレームだけならやれる方法も・・・でも、負荷かかりすぎなので・・駄目。
根本的にはRest positionがビュー内にあればいいですが・・・
ビューの外にある場合は、開始フレームのObjectの複製を作成しそれのArmature modifierをApplyし、Material削除、EditモードでFACE/EDGEを全て削除してVERTEXだけのobjectを作成する。
これをRestポーズにした該当objectにJoinする。
要するにRest positionのobjectに開始フレームの影object(vertexだけなので描画されない)をくっつければいい。
この方法で一応解決しました。
Blenderが開始フレームのobjectを参照してくれれば一番いいんだけどね・・。
これはArmature modifierで使用していて尚且つRest positionでビュー内に配置されていないobjectの場合のみでboneにparrentしてるだけのmeshには関係のない話です。
スポンサーサイト