Unityやってます

簡単な一人称シューティングを作るまで。


  • マンハントゲームなので敵は自分に背を向けて逃げることもあり、実装に手間取った
    • まずプレイヤーとの間のベクトルを取得、プレイヤーの逆方向を向くように反転させる
    • ベクトルからクォータニオンを生成し、Y軸の回転を殺しておく
    • 敵に回転を適用し、そのまま前に走らせる
  • MMD4Mecanim
    • ただでさえ強力なMecanimだが、こちらのツールを使うことで、日本で主流の3Dモデル/アニメーション資産であるMMDをUnityプロジェクトにインポートできる。これで一気に画面のルックが和ゲーっぽく
    • VMD(モーションデータ)のインポートは単体ではできない。PMDファイルの変換バッチ(○○.MMD4Mecanim)を起動した際(規約同意後)にVMDファイルを指定できるので、ここで取得したいVMDを指定する。ここで変換されたFBX内モーションを、AnimatorのState→Inspector→Motionに指定することで様々なモデルにMMDモーションを適用できる
  • 表示物が歪んで見える場合はカメラの画角が問題かも。CameraのInspectorからField of Viewを調整することで画角を変更できる
  • スクリプト間の変数の参照、受け渡し、メソッド呼び出しは、以下のようにやると非常にラク
    • 参照する側のスクリプトに、参照されるスクリプトのクラスをpubulicで書いておく(例:public World world;)
    • そのスクリプトをアタッチしたオブジェクトのInspectorにworldへの参照欄が表示されるので、そこに参照したいスクリプトがアタッチされた「オブジェクト」をヒエラルキーウィンドウからドラッグ&ドロップする
    • 参照する側のスクリプトは、world.hogeでworld側の変数hogeにアクセスできる。この場合、外部からアクセスされる変数やメソッドは、参照されるスクリプトでpublicに指定されている必要がある
    • この方法はPrefabには使えない。Prefabには従来どおりのGetComponentなどで