まるコットでメモ的な何か

FBXを更新するとUnity上のモデルの動きがバグるときの自分用メモ

Blender v2.82
Unity 2021.3.6f1

症状

FBXをHierarchyに配置して作ったGameObjectがあるが、元のFBXを更新するとアニメーションとかShapeKeyの挙動がおかしくなる。

ボーンの座標はGameObject化したときに固定されてしまうのでアニメーションがバグるのは分かるが、ShapeKeyはなぜかバグる。Skinned Mesh Rendererコンポーネントが悪さしてる?

解決策

GameObjectを更新すると治る。

が、元々あったGameObjectを壊したりせずなるべく手間を掛けずに更新したい。

更新方法

1.まず元々のモデルのGameObjectの構造を以下のようにする。

MeowbieObject     :FBXとか制御用のGameObjectを配置するための親GameObjectのPrefab
├ Meowbie       :FBXをD&DしたときにできたGameObjectをPrefab化したもの
│ └ BeginnerMarkとか :FBX内のメッシュやボーン等のオブジェクト
└ LookPointとか    :ゲームの制御用に座標を指すためのGameObject

更新の手間が増えるため、FBXのPrefab Object(Meowbie)にはなるべく不要なコンポーネントはアタッチしないでおく。

2.更新したFBXファイルをHierarchyにD&D

3.手順2で作ったGameObjectのコンポーネントを元のPrefabを参考に修正する

私の場合はSkinned Mesh Rendererコンポーネントのマテリアルを差し替えたり、AnimatorコンポーネントにAnimator Controllerをアタッチしたりする。

4.手順2で作ったGameObjectをPrefabに上書き

例でいうとHierarchyからProjectのMeowbieという名前のPrefabファイルにD&Dする

Replace Anyway→Original Prefabを選択
(※間違って他のPrefabを上書きすると取り返しの付かない事になるかもしれないので事前にGit管理とかしよう。)

これで元々あったGameObjectが更新される。

5.手順2で作ったGameObjectを削除

6.アニメーションやShapeKeyの挙動が正常に戻ったか動作を確認する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です