MRが楽しい

MRやVRについて学習したことを書き残す

ユニティちゃんのポーズを変更する

本日はユニティちゃん追いかけっこアプリの修正枠です。
以前、お話しした球体から足が飛び出したまま問題を解決します。
・球体が弾け飛びユニティちゃんが現れる
 http://bluebirdofoz.hatenablog.com/entry/2017/04/18/012918

現在のユニティちゃんです。球体から足が飛び出してます。
f:id:bluebirdofoz:20170425004527j:plain

球体が消えるまでユニティちゃんを消すこともできますが、今回の修正ではアニメーションの設定を用います。
現在、ユニティちゃんのアニメーション設定には付属のUnityChanLocomotionsを流用しています。
Entry状態から、立ちモーションのIdle状態に線が伸びているのが分かります。
f:id:bluebirdofoz:20170425004642j:plain
(キャプチャしたら見えずづらくなりましたが、EntryからIdleにオレンジの線が伸びています)

最初に座りモーションの状態を作成します。右クリックでEnptyを選択し、新たに状態を作成します。
「ShitDown」という名前とし、Motionに座りポーズの「POSE17」を設定します。
f:id:bluebirdofoz:20170425004746j:plain

そしてEntryからの状態遷移先を「ShitDown」に変更…したかったんですが、できませんでした。
どうやらデフォルトの遷移先は初回作成時に固定されると後から変更できないっぽいです。
後々のことを考えると、デフォルトの遷移先に色々設定するのはよろしくないですね。作り直しが難しくなります。

仕方ないので今回はIdle状態からShitDown状態に伸びる遷移を追加します。
追加で状態遷移の「ShitDown」フラグを追加し、「ShitDown」をトリガーに遷移を行うようConditionsを設定します。
f:id:bluebirdofoz:20170425004831j:plain

試しに動かしてみます。
「ShitDown」フラグがtrueのとき、ユニティちゃんが座り込むことを確認できました。
f:id:bluebirdofoz:20170425004847j:plain


後は球体の位置をユニティちゃんがしゃがんでいるときの位置に合わせます。
そして、球体が弾けるタイミングで「ShitDown」フラグをfalseにするスクリプトを追加します。
ついでです。球体のアタリ判定が残る問題も解消しましょう。Colliderコンポーネントを無効化します。
f:id:bluebirdofoz:20170425004903j:plain
そもそもユニティちゃんがアタリ判定を持っているので球体にアタリ判定がなくとも問題ありません。


アプリを起動して確認してみます。球体出現時に足が見えなくなっています。
f:id:bluebirdofoz:20170425004922j:plain
球体が床に落ちて弾け飛ぶと、中からユニティちゃんが立ち上がって姿を現します。
f:id:bluebirdofoz:20170425004928j:plain
ようやくイメージしていた形になりました。


さて、騙し騙し技術を積み重ねてきましたが、それ故に追いかけっこアプリのソースコードがスパゲッティ化してきました。
見た目上は上手くいってますが、しゃがみ状態のユニティちゃんが一瞬だけ重力に逆らって浮くという謎の動きが発生しています。

今後は以前、お話していた通り、コードのリファクタリングに取り掛かっていきたいと思います。