お世話になっております。
<br/>
レベルシーケンスでスケルタルメッシュにルートモーションを設定して再生しています。
<br/>
モーションを再生すると、メッシュがルートボーンから離れて移動するのですが、バウンディングボックスはルートボーンの位置に残ったままになり、バウンディングボックスがカメラからはずれると、カメラに映っているメッシュがカリングされてしまいます。
<br/>
とりあえず、レベルシーケンスでメッシュのBoundsScaleを大きくすれば、カリングを回避できることは確認しました。これはレベルシーケンス内で解決できるメリットはあるのですが、設定が手間であるため、BoundsScaleを設定するツールを作成しようと考えています。
<br/>
他の方法として、Physics Assetをメッシュに設定すれば、解決できるようなのですが、アセットが増えることと、過剰な対応のようにも思えて、躊躇しています。
<br/>
この場合、どう対応することが多いのでしょうか?
よい解決方法がございましたら、ご教示いただけますと幸いです。
<br/>
以上、よろしくお願いいたします。
<br/>
お世話になっております。
SkeletalMeshComponentのバウンディングがリファレンスポーズ基準でローカル算出される一方、Sequencerのルートモーションは表示位置しか動かさないので、構造上起きる挙動ですね。
実プロジェクトでよく取られるのは、だいたい以下のあたりかと思います。
一番手数が少ないのは、SkeletalMeshアセット側のPositive / Negative Bounds Extensionを編集してしまう方法です。シネマ用メッシュなら、想定される最大移動量を一度測ってアセットに焼いてしまえば、以降シーケンス側で意識せずに済みます。用途が固定されているキャラには一番素直かなと。
次点は、Sequencer側でルートモーションをTransformトラックに展開してしまう方法ですね。コンポーネント自体が動くのでバウンディングも素直について来てくれて、カリング問題そのものが消えます。ベイクの手間はありますが、後工程で扱いやすくなるケースも多いです。
ご提案のBoundsScaleツール化は、「アセットを触りたくない」「シーケンスごとに移動量がバラバラ」という条件なら妥当です。せっかく作るなら、出力先を「アセットのBounds Extensionを更新」と「シーケンスのBoundsScaleを設定」で切り替えられるようにしておくと運用が楽です。
Physics Assetは、おっしゃる通りカリング対策だけのために用意するのは過剰ですね。元々ゲームプレイ側で必要なら一石二鳥ですが、シネマ専用ならまず避けると思います。
お手数ですが、よろしくお願いします。
ご回答ありがとうございます。
Transformへの展開か、BoundsScaleツールで検討したいと思います。
本件クローズで問題ございません。
ご助言ありがとうございました。
- Positive / Negative Bounds Extensionの編集 → シネマ専用メッシュではないため不採用
- ルートモーションをTransformトラックに展開 → 検討
- Physics Asset → シネマ専用PhysicsAssetなので不採用
- BoundsScaleツール化 → 検討