UDN
Search public documentation:
NavigationAIJP
English Translation
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
レベルデザイナー向けナビゲーション AI
ドキュメントの概要:パスノードの設定および AI パスの使用についての参照とガイド。 ドキュメントの変更ログ: Richard Nalezynski? により作成。概要
このドキュメントではレベルでのナビゲーションネットワークのセットアップの仕方を説明しています。それによりNPS がレベル上で効果的にナビゲートすることができます。これは、レベルデザイナー向けです。基本パス
パスノード
レベルデザイナーは独自のレベルのサーフェス上にPathNodes
( NavigationPoint
のサブクラス) を配置します。これにより NPCs が歩き回ることができたり、ボリュームでは NPCs が泳ぐことができます。また、 PlayerStarts
は NavigationPoints
でそれらは同じナビゲーション関数を機能します。また、 InventorySpots
はパスのビルド時に自動的にピックアップ位置に配置されます(それらは見ることができませんが、パス・コネクションを見ることができます)。
PathNodes
の接続には、they should be less than 1200 Unreal ユニット以下になっていなければならず (プログラマーの方は nPath.h
の MAXPATHDIST でこの値を変更することができます)。==NavigationPoints== を2つ持つことは互いに近すぎる (オーバーラップするのため) ため、AI ナビゲーション問題の原因となるので回避してください。 PathNodes
を配置時 レベルのすべてのエリアが PathNode
またその他の NavigationPoint
により確実にカバーされるようにしてください。NPC が障害物がなく PathNode
を1200 ユニット以下で歩き回る場合 (例:周りに段差がないなど)、そのエリアがカバーされます。
![NavigationAI.gif](rsrc/Three/NavigationAIJP/NavigationAI.gif)
パスのビルド
PathNodes
を配置後、レベルデザイナーは Build メニューから AI Paths を選ぶ (または Build メニューから Rebuild All を選択してフル・リビルドを行う) ことで NavigationPoints
間のコネクションをビルドすることできます。
レベルに膨大な数のパスが構築されると、すべてのパスのリビルドに多少の時間がかかります。パス配置を調節するには、 Build Options (ビルドオプション)メニューにある Build Changed Paths (変更したパスをビルド)ボタンを使用して下さい。これは NavigationPoints
間のみのパスをリビルドします。これは追加、削除や移動されます。 これはレベルを保存したりプレイしたりする前にされますが、フルパスのリビルドが必要です。
ビルドしたパスの表示
パスがビルドされると、 Show Paths オプションフラグでさまざまなレベルのビューウィンドウにて見ることができます。これは任意のビューポートの Toggle Show Flags メニューにあります。 パスはNavigationPoint
から他の直線として表示されます。NPC がどちらかの方向にパスをトラバースした場合は、矢印が各方向を指した2直線になります。そうでない場合は、直線はどの方向にパスがトラバースされるかを矢印で表示します。
パスを使用したNPC が小さくても、コネクションパスを広くするよう PathNode
位置を調節することをお奨めします。NPC はスムーズにコーナーを丸くしたり、パスを前後にストレーフするためより大きいパスが得られさらに自然な動きが見られます。
パスカラーリング
一度ビルドされると、パスはさまざまな色でパスについての重要な情報を表示します。ナビゲーショングラフエッジのデフォルトパスカラーは次のように定義されています。:- オレンジ - フライングパス。狭い。
- ライトオレンジ - フライングパス。広い。
- ライトパープル - 要ハイジャンプ (通常のジャンプより高い)
- ブルー - 狭いパス。
- グリーン - 通常の幅。
- 白 - ワイドパス。
- ピンク - 非常にワイドパス。
- 黄色 - 強制パス
- パープル - 『上級』パス (『高度な知識』を要求されます)
- レッド - 『ワンウェイ』パス (例: there is a reachspec going from ノード A->Bとなっているreachspec がある。 B->Aでない。) 注記:最近のビルドでは、簡単にスポットできるためワンウェイ状態にするためレッド破線に変更されました)
パスのデバッギング
パスのビルド後、ウィンドウがパスエラーと共にエディタにポップアップします。エラーをクリックすると有害な NavigationPointに導かれます。また、 Tools メニューの Check map for errors... (エラー用のマップをチェック)を選択することでウィンドウにアクセスすることができます。 レベルが完全にパスされ定義されたあと、 Tools メニューの Review Paths (パスのレビュー)を使用してください。次の項目がチェックされます:- true に設定する bMustBeReachable の
NavigationPoints
すべてはレベルのあらゆるパスから到達可能です。 - すべてのムーバーはそれに関連した
NavigationPoint
を有する (Mover
の編集可能な bNoAIRelevance プロパティが true になっていない限り ) - どちらにせよ
PathNodes
はJumpDests
に変換される。
PathNodes
をチェックする。
AI NPC が困惑または何かおかしな挙動をしている場合は、次のコンソールコマンドが利用できます:
-
Viewclass Pawn
- 質問で AI NPC を見る -
ShowDebug
- AI NPC が何を考えているか、およびそれにしたがっているパスを見る。 -
RememberSpot
- レベル上のナビゲーションパスをチェック時に位置をマークする。ShowDebug
(何か他のものを見ずに)を使用することにより継続的に更新したパスをマークした位置に表示することになります。
応用パス
Door
Door
NavigationPoints
はDoor (その位置に基づきます。2つのエリア間で移動を可能またはブロックします) として作用する任意の Mover
と共に配置してください。を影響しているエリアの中心に配置します(典型的にはdoor に実際使用されている静的メッシュの真ん中、しかし地面に接触するくらいの低さで)。また、 必要に応じて更新の必要な Door
NavigationPoint
の重要なプロパティがいくつかあります。
- DoorTag -
Mover
のタグ。このDoor
が関連。 - DoorTrigger - if the
Door
がトリガされた場合、これがトリガアクタのタグになり、Door
を開く。 - bInitiallyClosed -
Mover
のデフォルト状態がムーブメント (もし false の場合)を可能にするかどうか、または それを回避する ( true の場合、デフォルト値)。 - bBlockedWhenClosed - if the
Mover
がクローズしている場合、NPC が開くことはありえない (デフォルト設定 false )。
Movers
はプロパティを持つ。True に設定時、 Door
PathNode
はその Mover
用に自動的に生成される。これはたいがいの Doors
に作動する。
JumpPads
JumpPads
は指定した方向に Pawn
タッチを投げます。==JumpPads== は ==JumpPad== の ForcedPaths[] 配列プロパティの最初のエントリであて先 PathNode
指定することによりセットアップされます。パスがリビルドされると、適当なジャンプベロシティは自動的に計算されます。自動生成されたベロシティに問題が起きた場合、 JumpPad
の JumpModifier ベクトルプロパティが設定されます。
JumpDests
JumpDests
は、 PathNodes
の代わりにジャンプするには高すぎる任意のスポットで使用します。ただし、その下にあるパスにリンクします。==JumpSpots== 低重量でNPCにより、またはなんらかのジャンプブースがある場合に使用されます。Bot からのパスは JumpSpot
にジャンプし、それは ForcedPath[] 配列プロパティエントリの1つの JumpSpot
をもつべきです。
Lifts
リフトとして使用されているMover
は決して BumpOpenTimed 状態で使用してはいけません( StandOpenTimed を代わりに使用してください)。==Lifts== として使用されている Movers
はそれらに関連した2つのタイプの NavigationPoints
を持っています。 LiftCenter
はそのリフトの中心に配置してください。 LiftExit
は Lift
から各出口に配置されます(しかし遠くにあるため NPSがたっていても Lift
で邪魔をしません)。 LiftCenter
および LiftExits
は LiftTag プロパティを持ちます。これは Mover
のタグに設定されていなければなりません。加えて、 Lift がトリガされた場合トリガをしているアクタのタグを LiftCenter
の*LiftTrigger* プロパティにつけます。==LiftExits== は任意のプロパティ SuggestedKeyFrame を持ちます。つまりこれは、 LiftExit
が使用される時にムーバーのキーフレーム数に設定されるということです。これは ある状況でのNPCよるナビゲーションを改善します。
Ladders
LadderVolume
は上れるように壁に向かっていなければなりません( WallDir プロパティを調節してください。これは LadderVolume
を選択時、方向矢印として表示されます。)大体の場合において、レベルデザイナーは、パスをビルド時に LadderVolume
の上部と底部にて Ladder NavigationPoints
が自動的に追加できるようにすることができます。しかしながら、自動配置された Ladder に問題がある場合は、レベルデザイナーは LadderVolume=
bAutoPath プロパティを false に設定後、手動でLadder を配置することができます。Ladder センターは LadderVolume
内になければいけません。 LadderVolume
はその底部で床に接触していなければなりません。また、 Ladder を使用している最大のNPCの 高さにより上部でエッジをつついていなければなりません。
カバーリンク
CoverLinks
は Gears of War 用に開発されました。次の設定が使用されます: - bCircular = 円柱の回りのカバーなどのように円形のカバーを作るにはこれをチェックします。通常、互いを点にする円柱のどちらかの側に配置されている2つのカバーノードを使用して行います。
- bClaimAllSlots = AI がカバー内にある場合は、他のAI はこのスポットではカバーを取り去るようなことはしません。
- MaxFireLinkDist = カバースロット間での AI 発動リンクを作成するため、カバースロットが他のカバースロットをクエリーする最大の距離 (カバー内時、Gears AI にどこを射撃できるかを知らせる)。
- bCanPopUp = スロットがアクタがたち上がったり、ここから狙撃できるかどうかをデザイナーに知らせます。
- bAllowPopUp = アクタがたち上がり、ここから狙撃させたい場合はこのフラグをセットします。
- bAllowMantle = アクタにこのカバーをよじ登らせたい場合にこのフラグを設定します。
- bAllowCoverslip = アクタにこのカバーの周りでスリップさせたい場合はこのフラグをセットします (エッジでのみ動作します)。
- bAllowSwatTurn = アクタにこのカバーの一部に、または一部からスワットターンをさせたい場合はこのフラグをセットします (エッジでのみ動作します)。