ユニティちゃんの中身を解説してみる

ユニティちゃんについて

UNITY-CHAN! OFFICIAL WEBSITE

ユニティちゃんとは? 「ユニティちゃん」はUnity Technologies Japanが提供する開発者のためのオリジナルキャラクターです。

右上のDATA DOWNLOADからダウンロードできますね。

UnityのAssetsに登録して表示させるとかダンスさせるとかは、あちこちのブログで解説されているので省略します。

UnityChan_1_2.unitypackageの中身

  • UnityChan
    • インポートしたときにAssetsの中に散らばらないよう、UnityChanフォルダ以下にまとめられています。地味に助かる。
  • WebPlayerTemplates

    • ウェブプレイヤー用に吐き出すときのhtmlのテンプレートが入ってます。公開ページのhtmlにここから必要な分コピって使う。
  • Animations

    • モーションデータが入っています。他のHumanoidモデルに適用したりもできるので、この中身だけ使うのもあり。
  • Animators
    • サンプルシーン表示用のAnimatorが入ってる。Animatorは自分で使いやすいように作るのがたぶん良さそうなので、ここの中のものは参考程度にするくらいでよさそう。
  • FaceAnimation
    • 表情モーフ(という表現であってるのかな?)。表情を変えるためのモーションデータ。Animatorにいれて使う。
  • Models
    • 一番重要な、ユニティちゃんのモデルが入ってる。これをインポートすれば、とりあえずUnity上でユニティちゃんを表示するだけならできる。
  • Prefabs
    • モデルに、UnityChanパッケージに含まれるスクリプトを付加した状態のPrefabが入ってる。モデルを入れただけだと髪やスカートや表情が動かないので、その辺を適用したいなら使う。
  • Scenes
    • サンプルシーン。とりあえず全部インポートしてここのシーンを開けばユニティちゃんを自由に見回せる。
  • Scripts
    • サンプルシーンで利用する、モーション切り替えのスクリプトや、表情切り替えのスクリプトなどが含まれる。下記で詳しく解説する
  • Stage
    • サンプルシーンの背景用リソース。
  • Voice
    • 声。

Scripts

本記事の本題。中身見てみたら意外と酷い色々やってた。

  • AutoBlink

    • 表情用。まばたきさせるためのスクリプト
    • 一定時間(TimeBlink秒)ごとにまばたきする処理が走るが、まばたきするかどうかのフラグは以下の処理で切り替えられる。
    • 一定時間(Interval秒)ごとに判定が走り、(1-閾値(Threshold))パーセントでまばたきフラグがtrueになる。
    • 余談だが内部にスペルミスがある。timeReminingではなくtimeRemainingが正しい。
  • FaceUpdate

    • 表情を切り替える処理を担当するスクリプト
    • GUIでの表示のほか、アニメーションからのイベントの受け取りも行う。
    • isKeepFaceがtrueの間は表情が変わらないようになる。
    • (内部に無駄な処理が多い。)
  • IdleChanger

    • ポーズ変更用スクリプト
    • こいつがアタッチされているとGUIが表示され、NextとBackのボタンでモーションを切り替えて眺めることができる。
    • やってることはAnimatorのNext/Backのフラグを切り替えているだけなので、エディター上であればAnimatorウィンドウを開いて直接Boolを弄るのと処理は変わらない。
  • SpringManager/SpringBone/SpringCollider

    • 髪、スカートなどの動きを制御するスクリプト
    • 足や腕などにSpringColliderがアタッチされており、髪やスカートにSpringBoneがアタッチされている。
    • SpringManagerがBoneとColliderの当たり判定を行い、髪やスカートが足や腕にめり込まないように動かしている。

SDユニティちゃんがとてもかわいいので何か作って公開したいです。