0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Unity][RoboCup] CrossView開発日記 #1

Last updated at Posted at 2024-11-12

CrossViewとは

こちらの記事をご覧ください。

はじめに

Unityは、2016年頃に少し触ったことがあったのですが、本格的に開発しようと思ったのは今回が初めてだったので、まずは「3Dモデルとアニメーション操作」から実装を学びました。

余談

ちなみに、2016年頃に~というのは、当時、ネットワークカメラで撮影した映像を人物検出のエンジンに食わせて、画面の中に人が何人いるか等を検出するシステムのお仕事に関わっていました。

その時、テスト用の映像として「人が歩き回る映像をUnityで作成しませんか?」という提案をお客さんにしたことがありました。

以下は、その時のサンプル動画です。

Test01Rec03_Trim.gif

簡単なゲート的なものを人が通過するような場面を想定して作ってみました。
Unity的には、NavMeshで自動で歩かせているだけの単純な実装です。

Football_1

最初の実装は、

  • サッカーフィールドのテクスチャを用意し、Sceneを構築する。
  • Unity Asset Storeから、FREEの3Dモデルをダウンロードする。
  • モデルデータは、忘れずに"Humanoid"型に設定しておく。
    • Avatorデータも自動生成するように設定しておく。
  • NavMeshで、フィールド上を周回するように実装する。
  • 宇宙飛行士の3Dモデルの三人称視点でカメラ制御させる。

こんな感じ。
Football_1.png

次に、

  • Adobe Mixamoから、サッカー系のAnimationデータをいくつかダウンロードする。
    • Animationデータも、忘れずに"Humanoid"型に設定しておく。
    • Trigger系として使用するものは、LoopTime=OFFにする。
  • AnimatorControllerを新規作成し、用意した変数の値によって状態遷移させる。
    • 初期状態は、Idle(軽く揺れながら立った状態のアニメーション)とする。
    • Bool型変数(Dash,Back,Catching)で、走ったり、後ずさりしたりと遷移させる。
    • Trigger型変数(Pass,Tackle,Catch,etc)で、1-Shotアニメーションを発動させる。
  • 各3Dモデルに、作成したAnimatorControllerを適用する。
    • ApplyRootMotion=OFFにする。

Football_1_AnimatorController.png

さらに、

  • AnimatorControllerにて、IK=ONにする。
  • OnAnimatorIK()を実装したScriptを、各3Dモデルにアタッチする。
  • OnAnimatorIK()では、Animator.SetLookAtWeight()およびSetLookAtPosition()で顔の向きを設定し、常に宇宙飛行士の方を向くようにする。

参考サイト

WebGL version

操作方法は次の通り。

  • WASDキー、または矢印キーで、宇宙飛行士を操作できます。
  • マウスカーソルの移動で、宇宙飛行士の視線を動かせます。
  • 次のキー操作でアニメーションを切り替えることができます。(GoalKeeper用の場合)
  • Bool系
    • 8:Dash
    • 5:Idle
    • 2:Back
    • 1:Idle(Catching)
  • Trigger系
    • 7:Kick
    • 9:Tackle
    • 4:Dive Left
    • 6:Dive Right
    • 0:Catch

※Bool系は、一旦Idleに戻ってから別の状態に遷移させます。
※Trigger系は、Back状態では反応しないようにしています。

以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?