アットウィキロゴ
GKCに標準で用意されているPlayer用のNavMesh制御オーバーライドシステムを使用します。

プレイヤーキャラクターには最初からポイント&クリック用の自動移動システムである `playerNavMeshSystem` がアタッチされており、これらを外部(イベント)から制御するために以下のコンポーネントを組み合わせて使用します。



1. 使用する主要なコンポーネント


1. `remotePlayerNavmeshOverride` (プレイヤー側コンポーネント)
プレイヤーキャラクターのプレハブに標準でアタッチされています。
プレイヤーの `playerNavMeshSystem` を外部から安全に有効化・無効化し、目的地(Transformやウェイポイント)を設定するためのブリッジ(仲介役)となります。

2. `remotePlayerNavmeshOverrideSystem` (イベント制御側コンポーネント)
シーン上のイベントオブジェクトやトリガーにアタッチして使用します。
単一の目的地(`navmeshTargetTransform`)または複数のウェイポイント(`waypointList`)を指定し、プレイヤーの自動移動を開始/停止させます。

3. `pauseOrResumePlayerControllerAndCameraSystem` (入力・カメラ・UIの一時停止用)
自動移動中、プレイヤーの通常のキーボード・マウス・パッド操作(WASDなど)を受け付けないようにし、HUD(UI)を非表示にするために使用します。

4. `eventTriggerSystem` (GKCの汎用イベントトリガー)
エリアへの進入時など、任意のタイミングで上記のコンポーネントを連携させて実行する UnityEvent の管理に使用します。



2. 具体的なセットアップ手順(手動手順)


シーン上に NavMesh がベイク(Bake)されていることを前提として、以下の手順でセットアップを行います。

  • ステップ 1: イベント制御オブジェクトの作成
1. シーン上に空の GameObject を作成し、名前を `Event Move Controller` などにします。
2. 作成した GameObject に以下のコンポーネントを追加します:
`remotePlayerNavmeshOverrideSystem`
`pauseOrResumePlayerControllerAndCameraSystem`
3. `remotePlayerNavmeshOverrideSystem`コンポーネントのMain Remote Player Navmesh OverrideにプレイヤーのMain Remote Player Navmesh Overrideを設定します。設定項目右側の◎をクリックすると、簡単に選択できます。

  • ステップ 2: 移動先の設定
単一の目的地に移動させたい場合:
1. 移動先にしたい位置に空の GameObject(ターゲット)を配置します。
2. `remotePlayerNavmeshOverrideSystem` の `navmeshTargetTransform` に、作成したターゲットを割り当てます。
3. `useWaypointList` のチェックが オフ であることを確認します。

複数のウェイポイントを順に辿らせたい場合:
1. 移動経路に沿って複数の空の GameObject を作成し、ウェイポイントとして配置します。
2. `remotePlayerNavmeshOverrideSystem` の `useWaypointList` を オン にします。
3. `waypointList` に作成したウェイポイントを順番に登録します。


  • ステップ 3: イベント開始時の処理(プレイヤー操作無効化 & 移動開始)
`eventTriggerSystem` などのトリガー、または独自のイベントシーケンサーから、イベント開始時に以下の関数を順に呼び出します:

1. `pauseOrResumePlayerControllerAndCameraSystem.pauseOrPlayPlayerComponents` を呼び出し、引数の Bool を `True` に設定します。
これにより、プレイヤーのWASD操作やカメラ操作が一時停止し、HUDが非表示になります。
2. `remotePlayerNavmeshOverrideSystem.setRemoteNavmeshStateExternally` を呼び出し、引数の Bool を `True` に設定します。
これにより、プレイヤーキャラクターが自動的に指定した目的地(またはウェイポイント)に向かって NavMesh 上を歩き始めます。

  • ステップ 4: イベント終了時の処理(通常プレイへの復帰)
目的地に到着したタイミング、またはイベントカットシーンが終了したタイミングで、以下の関数を呼び出して操作をプレイヤーに戻します:

1. `remotePlayerNavmeshOverrideSystem.setRemoteNavmeshStateExternally` を呼び出し、引数を `False` にします(移動の停止)。
2. `pauseOrResumePlayerControllerAndCameraSystem.pauseOrPlayPlayerComponents` を呼び出し、引数を `False` にします。
これにより、プレイヤーの操作、カメラ、HUDが通常通り動作する状態に復帰します。

タグ:

+ タグ編集
  • タグ:
最終更新:2026年06月30日 00:16
添付ファイル