UnityのAutoCamの動きがおかしいときの原因と解決策。

スポンサーリンク

UnityのAutoCamとはなにか?

UnityのAutoCamは、UnityのStandardAssets内にある、MultipurposeCameraRigというオブジェクトに搭載されているスクリプトになります。こちらを使うことによってオブジェクトにカメラを自動追尾させることができます。
screenshot-20181227-0550
AutoCameについてはこちらの記事に詳しく書いてます。
Unityでカメラを自動追尾させる2つの方法。

スポンサーリンク

AutoCamがおかしい。デバッグしたらカメラが反転する

AutoCamスクリプトに飛行機のようなオブジェクトを指定してデバッグするとカメラが反転してしまいます。このときキーボードやマウスはなにもさわっていません。
screenshot-20181227-0635

デバッグしたらAutoCamが反転してしまう原因

さきほどはカメラが反転してしまいましたが、カメラのターゲットは飛行機オブジェクトになっています。実は飛行機オブジェクトはBlenderで作成したオブジェクトで.fbxファイルをインポートして追加したオブジェクトです。BlenderとUnityの軸の違いは思った以上に深刻です。
screenshot 20181227 0646
この画像は移動とスケール時のカーソルを比較したものです。移動時のカーソルはYが上方向になっていて一見なにも問題ないように見えますが、スケール時のカーソはY方向が下になっています。これがAutoCamが反転してしまう原因です。

BlenderとUnityの軸の違いについては以下の記事でも解説しています。
BlenderとUnityで軸が違うことの検証と解決方法

Unity上のBlenderオブジェクトを正しい向きで扱う方法

Blenderのエクスポーターで正しい設定を行っていても、やはりどこかおかしい部分がでてきてしまうようです。Unityに読み込んだBlenderのオブジェクトを確実に取り扱う方法は、UnityのEmptyオブジェクトの中にBlenderのオブジェクトを入れてしまうことです。Unityの空オブジェクトは軸の向きが正しい状態なので、おかくしなっているBlenderオブジェクトをその中に入れれば正しく動作します。

まとめ

ここまでの話は誰の役に立つかはわかりませんし、ものすごくわかりにくい話なので動画にしておこうと思います。

コメント

タイトルとURLをコピーしました