テラシュールブログスマートフォン用の表示で見るテラシュールブログ旧テラシュールウェアブログUnity記事。UnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。AI今回は、プレイヤーが指示した方向へ向かって移動する、MMOやRTS等でよくある移動方法をMMDモデルで行う手っ取り早い方法を紹介します。「若干自分の思ってたものと違う」と思う所があれば、パラメータやソースコードを調整して下さい。一応、ノーコーディングでもここまでは出来ます。キーボードやゲームパッドで移動させたい場合は、前回の記事を参考にして下さい。こちらの方法ではサードパーソン的にキャラクターを動かします。テラシュールブログなお、今回はゲームでも利用可能なMMDモデルと言う事で、黒羽式OculusChan(以降OculusChan)に登場いただきました。自由に使っても良いとの事でしたので、使っていこうと思います。Assetsを使用します。AssetStoreからインポートして使って下さい。MMDをインポートする記事は他の記事を参考にして下さい。Characterの登録2.モデルの差し替え3.移動先の指定4.タップして移動AIの経路を事前計算するキャラクターの移動は基本的にAIで操作します。その経路ですが、UnityのNavmeshの機能を使用して事前計算します。ちなみに、NavmeshはかつてはPro専用の機能ですが、現在はFree版でも使用可能です。地形は何でも良いです。Assetsに入っている地形プレハブを適当につなぎ合わせました。Colliderを追加して下さい。ないとキャラクターが落下します。面倒であれば、「Stage」のGameObjectを作成し、ステージを構成する全てのオブジェクトをStageの子オブジェクトとして登録、最後にStageをstaticにすれば、全てStaticになります。3.NavMeshの設定Navmeshを設定します。メニューバーのWindow>NavigationでNavmeshウィンドウが開くので、Bakeを教え下さい。上手く行けば、地形に青い板が表示されます。それがキャラクターの移動範囲になります。幅が狭すぎると思った場合は、NavmeshのBakeボタンを押し、Radiusを調整してBakeして下さい。キャラクターを動かすキャラクターを動かします。今回の場合はOculusChan。前回同様にOculusChanのFBXモデルを「Humanoid」に設定します。これは全てのモーションをMMDからインポートすれば回避出来そうですが、今回は面倒なので。Characterを選択し、Sceneビューへドラッグ&ドロップします。CharacterはRigidbody(物理演算)ベースで動く為、物理演算で動いている他のオブジェクトに影響します。地面のコライダーが無いと落下します。Characterの中にあるEthanオブジェクトを削除し、代わりにOculusChan(好きなMMDモデル)を子として配置します。z:0)にして下さい。3.移動先の指定とりあえずの移動先を指定します。HierarchyビューのCreate>Sphererで球を作成しマップの適当な場所に配置します。CharacterのAICharacterControlコンポーネントのTargetに、先ほど作成したSphererを登録します。これで、キャラクターは先ほど登録した球へ向かって走るようになります。4.タップして移動これでは移動先を指定するのは面倒なので、タップした座標へマーカーを移動させます。Pickerがあるので、それをシーンへ配置します。Pickerを登録します。先ほど作成したSphereは削除してもかまいません。これで、キャラクターがタップした位置へ移動するようになります。これ自体はゲームに直接結びつきにくいですが、村人の挙動やプレイヤーを追跡する敵、通信頻度を減らす為(目標座標だけを同期&定期的に座標同期)等々、使える箇所は色々とあると思います。パックマンモドキで、「現在地を追う」と「現在から少し前を追う」と「移動先を予測して追う」の3種類の追跡でプレイヤーを追い詰める。疑問や質問は大歓迎です。コメント欄かtsubaki_t1まで次回は、たぶんボリュームライトについて紹介します。Ballのカメラワークをやってみます。(1)月別アーカイブはてなブログをはじめよう!tsubaki_t1さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。