UDN
Search public documentation:

GametypeTechnicalGuideJP
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

UE3 ホーム > テクニカル & プログラミング ホーム > ゲームプレイ 技術ガイド

ゲームプレイ 技術ガイド

概要


「Unreal Engine」で作成されたゲームでは、1 つ以上のゲームタイプを使用することがゲームの中心となっています。このようなコンセプトは、「Unreal Tournament」などのようなゲームにおいてはっきりします。「Unreal Tournament」では、ユーザーがプレイするゲームのタイプを実際に選択します。(Deathmatch (デスマッチ)、Capture the Flag (旗取り)、Last Man Standing (生き残り) や他ゲームタイプがあります)。一方、プラットフォーマーゲームやスポーツゲーム、レーシングゲーム、RTS ゲーム、RPG などといったゲームであっても、すべてゲームタイプに依存しているのです。ただし、ユーザーにトランスペアレントです。

ゲームタイプは、ゲームのルールを決定するものです。すなわち、ゲームの開始方法、得点獲得や他イベントの処理方法、ゲーム終了条件、ゲームの他の要素などを決定するのです。したがって、ゲームタイプはゲーム同様レベル固有のものです。新たなゲームタイプがロードされるのは、新たなレベルがロードされた場合です。 (少なくとも一般的な意味でのレベルがロードされた場合です。レベルストリーミングでは、現在のゲームタイプが残されたままでレベルが現在のレベルにロードされます)。Deathmatch ゲームにおいてゲームタイプは以下の処理を行います。すなわち、プレイヤーとボットをさまざまな場所にスポーンさせ、各プレイヤーによるキル (敵を倒すこと) と得点を管理し、時間切れまたはプレイヤーが必要なキル数を達成したときにゲームを終了させます。これらはみな単純なもので、同じコンセプトを他のゲームにも応用することができます。ただし、その場合もう少し複雑になることでしょう。

たとえば、アドベンチャー ロールプレイング ゲームについて考えてみましょう。プレイヤーがゲームを開始したとき、ゲームタイプはプレイヤーをワールドの中にスポーンします。場所は、指定された場所 (例 : ダンジョンの入り口) か前回ゲームがセーブされた場所です。プレイヤーはワールドを探検し、ダンジョンまでやって来ます。プレイヤーがダンジョンに入ると、新しいレベルとゲームタイプがロードされます。このゲームタイプは、プレイヤーをダンジョンの入り口にスポーンするとともに、プレイヤーがダンジョンの目標を達成するのを待ちます。(ダンジョンの目標は、ボスを倒すことであったり、特定のアイテムを回収することであったり、その他さまざまです)。ゲームタイプは、ダンジョンのミッションが完了したことを感知すると、プレイヤーをメインのワールドに送り戻すために、メインのワールドのレベルをロードします。メインのワールドに入ると、ゲームタイプは、プレイヤーをダンジョンの入り口にスポーンして、プレイヤーが探検を続けながらゲームの目標をすべてクリアするのを待ちます。

もちろん、さらに複雑なゲームでは、複数のゲームタイプが相乗的に作用することになります。しかし、その場合であっても、各ゲームタイプのコンセプトは、単純な Deathmatch ゲームの例のコンセプトと同じです。

GameInfo クラス


GameInfo クラスは、「Unreal」においてすべてのゲームタイプの基本クラスになっています。マップがロードされるたびに、適切な GameInfo クラスの新たなインスタンスが作成され、ゲームタイプに割り当てられます。特定のレベルのためにゲームタイプを設定する方法については、 ゲームのライフサイクル のセクションに詳細が掲載されています。

GameInfo プロパティ

Arbitration (アービトレーション : 仲裁)

  • bUsingArbitration - TRUE の場合は、ゲームがアービトレーションを使用します。
  • bHasArbitratedHandshakeBegun - アービトレイト (仲裁) されたハンドシェークが発生した場合は TRUE となります。ハンドシェークが開始すると、新たな接続は拒絶されます。
  • bNeedsEndGameHandshake - TRUE の場合は、ゲームは、その終わりにハンドシェークを実行します。
  • bHasEndGameHandshakeBegun - 終了時ゲームハンドシェーク (end game handshake) が開始すると、TRUE となります。
  • bIsEndGameHandshakeComplete - 終了時ゲームハンドシェークが完了すると、TRUE となります。
  • ArbitrationHandshakeTimeout - GLOBALCONFIG (グローバルコンフィグ) です。キックされる前にクライアントがアービトレーション ハンドシェークを実行しなければならない時間量を保持します。
  • PendingArbitrationPCs - ゲームがハンドシェークする相手として待っている PlayerControllers の配列です。
  • ArbitrationPCs - ゲームがハンドシェークを実行した相手で、かつ、オンラインサブシステムに書き出されるアービトレーションデータのファイナライズを要求している PlayerControllers の配列です。

チートの検出

  • [Min/Max]TimeMargin - クライアント クロックがサーバー クロックよりもこの値以上に遅れる / 進むと、スピードハック検知がトリガーされます。
  • TimeMarginSlack - クライアント クロックがサーバー クロックからドリフトする速さがこの値以上になると、スピードハック検知がトリガーされます。
  • bIsStandbyCheckingEnabled - TRUE の場合は、スタンバイ チート (接続をスタンバイ状態にするチート) のチェックを実行します。
  • bIsStandbyCheckingOn - スタンバイ チートがチェックされているときは、TRUE となります。
  • bHasStandbyCheatTriggered - スタンバイ チートが検知された場合に、TRUE となります。
  • Standby[Rx/Tx]CheatTime - 発生する可能性があるパケット / 確認応答を受け取らない時間量がこの値以上になると、チート コードがトリガーされます。
  • BadPingThreshold - ping がこの閾値を超えると、サーバーがパケットをディレイしていると見なされるか、不良なアップストリーム接続を持つようになります。
  • PercentMissingFor[Rx/Tx]Standby - パケット / 確認応答データを欠損するクライアントのパーセンテージがこの値よりも大きくなると、スタンバイ コードがトリガーされます。
  • PercentForBadPing - 不正な ping 値をもつクライアントのパーセンテージがこの値よりも大きくなると、スタンバイコードがトリガーされます。
  • JoinInProgressStandbyWaitTime -待機時間がこの値よりも大きくなると、スタンバイ問題のために接続がチェックされます。

ゲームのコンポーネント

  • PlayerControllerClass - 新たなプレイヤーが当該ゲームタイプのためにログインした場合に使用される PlayerController クラスです。
  • DefaultPawnClass - 新たなプレイヤーが当該ゲームタイプのためにログインした場合に使用される Pawn クラスです。
  • HUDType - 当該ゲームタイプ用のヘッドアップ ディスプレイ (HUD) のために使用される HUD クラスです。
  • PlayerReplicationInfoClass - 新たなプレイヤーが当該ゲームタイプのためにログインした場合に使用される PlayerReplicationInfo クラスです。
  • GameReplicationInfoClass - 当該ゲームタイプのために使用される GameReplicationInfo クラスです。
  • OnlineSub - プラットフォーム レイヤーのサービスと通信するために当該ゲームタイプによって使用される OnlinSubsystem インスタンスです。
  • GameInterface - オンラインゲームを作成、検索、破棄するためにゲームタイプによって使用される OnlineGameInterface インターフェースです。
  • OnlineStatsWriteClass - 統計を作成および保持するために使用し、クライアントに送るための OnlineStatsWrite クラスです。
  • OnlineGameSettingsClass - オンラインサービスを伴った、専用サーバーの登録を行う場合に使用するクラスです。
  • DeathMessageClass - プレイヤーがデス (機能停止) したときのメッセージを表示するために使用する LocalMessage クラスです。
  • GameMessageClass - ゲームプレイ イベントに関するメッセージを表示するために使用する GameMessage クラスです。
  • AccessControlClass - 当該ゲームタイプのために使用する AccessControl クラスです。
  • AccessControl - プレイヤーがゲームに入ることができるか、あるいは admin になれるか (あるいはその両方を行えるか) を制御する AccessControl インスタンスです。
  • BroadcastHandlerClass - 当該ゲームタイプのために使用する BroadcastHandler クラスです。
  • BroadcastHandler - 当該ゲームタイプのためのメッセージを表示するのに使用する BroadcastHandler インスタンスです。
  • AutoTestManagerClass - 当該ゲームタイプのために使用する AutoTestManager クラスです。
  • MyAutoTestManager - 自動化されたテスティングを管理するために使用する AutoTestManager インスタンスです。コマンドラインによって要求された場合にのみ存在します。

ゲーム設定項目

  • bRestartLevel - TRUE の場合は、プレイヤーが死ぬと、レベルが再スタートします。
  • bTeamGame - TRUE の場合は、ゲームはチームゲームとして設定されます。したがって、プレイヤーたちは分けられて 1 つ以上のチームのどれかに所属することになります。ベースとなる GameInfo には、チームを作成するためのロジックがビルトインされていません。このプロパティは、当該ゲームがチームをもつということを指定するに過ぎません。
  • bGameEnded - ゲーム終了条件を満たしたときに、TRUE となります。 EndGame() によって設定されます。
  • bOverTime - TRUE の場合は、ゲームは延長されています。このようになるのは、 EndGame() が呼び出されたものの、満たされない終了条件があったために CheckEndGame() が false を返した場合です。
  • bDelayedStart - TRUE の場合は、プレイヤーが参加したときにゲームがすぐに開始されません。
  • bWaitingToStartMatch - ゲームが PendingMatch (ゲーム開始のために待機中) の状態にある場合は、TRUE となります。
  • bChangeLevels - GLOBALCONFIG です。TRUE の場合は、ゲームが再スタートしたときに新たなマップがロードされます。
  • bAlreadyChanged - ゲームが再スタートして bChangeLevels=TRUE の場合に、新たなマップでロードプロセスが開始されると、TRUE となります。
  • bGameRestarted - ゲームが再スタートしたときに、TRUE となります。
  • bLevelChange - レベル遷移 (ProcessServerTravel() による) が進行しているときに、TRUE となります。
  • GameDifficulty - GLOBALCONFIG です。当該ゲームのための難易度モディファイアです。これは、ゲームにきわめて固有なものなので、サブクラスで利用すべきです。
  • GoreLevel - GLOBALCONFIG です。ゴア (流血シーン) の量を保持します。 0 にすると、ノーマルなゴアの量が表示され、値が大きくなると表示されるゴアの量が少なくなります。
  • GameSpeed - ゲーム時間のためのスケーリング係数です。 WorldInfo.TimeDilation を設定するために使用されます。
  • MaxSpectators - GLOBALCONFIG です。サーバー上で当該ゲームタイプによって許可される最大プレイヤー数です。
  • MaxSpectatorsAllowed - 当該ゲームタイプによって常に許可される最大スペクテーター (観戦者) 数です。この MaxSpectators は、config で設定され、改変が可能であるため、実用的な値にクランプ (値を制限) するために使用されます。
  • NumSpectators - ゲームに存在する現在のスペクテーター数です。
  • MaxPlayers - GLOBALCONFIG です。サーバー上で当該ゲームタイプによって許可される最大プレイヤー数です。
  • MaxPlayersAllowed - 当該ゲームタイプによって常に許可される最大プレイヤー数です。この = MaxPlayers= は、config で設定され、改変が可能であるため、実用的な値にクランプ (値を制限) するために使用されます。
  • NumPlayers - ゲームにおいて、人によって制御されているプレイヤーの現在数です。
  • NumBots - ゲームにおいて、AI によって制御されているプレイヤーの現在数です。
  • NumTravellingPlayers - この前のマップから現在まだ移動しているプレイヤー数です。
  • CurrentID - 一意の PlayerID が作成されたときに、それを各 PlayerReplicationInfo (プレイヤー複製情報) に割り当てるために使用される現在の ID です。
  • DefaultPlayerName - LOCALIZED です。当該ゲームタイプのために、名前をプレイヤーに割り当てる際に使用するデフォルトの名前プレフィックスです。
  • GameName - LOCALIZED です。当該ゲームタイプのための表示名です。
  • FearCostFalloff - bDoFearCostFalloff=true の場合に、時間の経過にともなって NavigationPoints のための FearCost がどのくらい速くフォールオフするかを決定する係数です。
  • bDoFearCostFalloff - TRUE の場合は、時間の経過にともなって NavigationPoints のための FearCost がフォールオフします。
  • GoalScore - マッチ (競技) を終了させるために、プレイヤーによって必要とされる「スコア」です。スコアは任意のコンセプトです。ただし、多くのゲームにおいて、何らかのスコアが監視され、特定のスコアに達するとゲームが終了します。
  • MaxLives - マッチごとにプレイヤーに与えられるライフの最大数です。
  • TimeLimit - 1 つのマッチに課せられる制限時間です。
  • GameInfoClassAliases - GameClassShortName 構造体配列です。当該ゲームタイプのための短縮名をフルクラス名にマッピングします。
  • DefaultGameType - CONFIG です。ゲームタイプが特に指定されていない場合に使用されるデフォルトのゲームタイプです。(そのゲームタイプ クラスへのフルパスを指定する文字列の形式で保持されます)。
  • DefaultMapPrefixes - CONFIG です。レベル名のプレフィックスを特定のゲームタイプにマッピングする GameTypePrefix 構造体配列です。ゲームタイプが指定されていない場合に使用するゲームタイプを指定するのに使われます。 DefaultGameType をオーバーライドします。詳細については、 ゲームタイプのプレフィックス のセクションを参照してください。
  • CustomMapPrefixes - CONFIG です。レベル名のプレフィックスを特定のゲームタイプにマッピングする GameTypePrefix 構造体配列です。ゲームタイプが指定されていない場合に使用するゲームタイプを指定するのに使われます。 DefaultGameType をオーバーライドします。詳細については、 ゲームタイプのプレフィックス のセクションを参照してください。
  • bRequiresPushToTalk - TRUE の場合は、当該ゲームタイプのために音声通信がプッシュ トゥ トーク方式でなければなりません。それ以外は、音声通信は常に開いたままになっています。

ミューテータ

  • BaseMutator - 当該ゲームタイプに適用される第一の ミューテータ への参照です。

ネットワーク / レプリケーション

  • InactivePRIArray - ゲームから退出したプレイヤーの PlayerReplicationInfos (プレイヤーレプリケーション情報) の配列です。これは、退出したプレイヤーが再接続したときのために保存されます。
  • bKickLiveIdlers - GLOBALCONFIG です。TRUE の場合は、 Pawn を伴った PlayerControllers を、アイドリング (待機状態) のためにゲームから退出させることができます。
  • MaxIdleTime - プレイヤーは、この最大時間量よりも長い時間アイドリングすると、ゲームから退出させられます。
  • LeaderboarId - スキル / スコアの統計を書き出すための順位表の ID です。
  • ArbitratedLeaderBoardId - スキル / スコアの統計を書き出すための、アービトレイトされた順位表の ID です。
  • bUseSeamlessTravel - TRUE の場合は、マップの移動を実行するために SeamlessTravel() が使用されます。これは、バックグラウンドでロードするためクライアントの接続を切りません。
  • CoverReplicatorBase - 専用サーバーの登録が開始したときに適用する URL オプションの文字列です。
  • bHasNetworkError - 重大なネットワークエラーが発生し、サーバーがマップ移動を実行できなくなったときに、TRUE となります。
  • ServerOptions - 専用サーバーの登録が開始したときに適用する URL オプションの文字列です。
  • AdjustNetSpeed - 現在の調整されたネットスピードです。リッスンサーバーのためのネットスピードを動的に管理するために使用されます。
  • LastNetSpeedUpdateTime - クライアントの入場 / 退出によってサーバーのためにネットスピードが更新された直近の時間です。
  • TotalNetBandwidth - GLOBALCONFIG です。リッスンサーバーに利用できる帯域幅のトータルの値です。ネット接続間で動的に分割されます。
  • [Min/Max]DynamicBandwidth - 接続単位で動的に設定される帯域幅の最小値と最大値です。

ポーズ

  • bPauseable - TRUE の場合は、プレイヤーがオンラインでプレイヤーしているときに、ゲームをポーズすることができます。スタンドアローン型ゲームでプレイしているならば、プレイヤーは常にゲームをポーズすることができます。
  • bAdminCanPause - TRUE の場合は、adimin がオンラインでプレイヤーしているときに、ゲームをポーズすることができます。
  • Pausers - ポーズ解除が可能か否かを決定するために ClearPause() でチェックされるデリゲートの配列です。

プロファイリング / テスティング

  • bFixedPlayerStart - TRUE の場合は、プロファイリングを一定にするために、同一のスポーン ポイント (複数可) をゲームが使用します。 GameInfo にはこのための機能がありません。この機能は、サブクラスにおけるスポーンポイント選択のロジックに追加される必要があります。
  • CauseEventCommand - マップ URL にあるゲームに渡されたコンソールイベントを保持します。通常は、テスティングのために (すなわち、自動化されたフライスルーをトリガーするために) 使用されます。 GameInfo にはこのコマンドを実行するための機能がありません。サブクラスの中に追加する必要があります。
  • BugLocString - マップ URL にあるゲームに渡された Bugit (バグ要修正) の位置の文字列を保持します。
  • BugRotString - マップ URL にあるゲームに渡された Bugit (バグ要修正) の回転の文字列を保持します。

GameInfo の関数

ゲーム

  • OnEngineHasLoaded - 起動時にエンジンがロードされたときに、ネイティブコードから呼び出されるイベントです。このイベントは、ゲーム起動時に一度だけ呼び出されます。新たなマップが (したがってゲームタイプが) ロードされるたびに呼び出されるわけではありません。
  • GetSupportedGameTypes [InFilename] [OutGameType] [bCheckExt] - 指定されたマップ名のための GameTypePrefix 構造体を取得します。詳細については、 ゲームタイプのプレフィックス のセクションを参照してください。
    • InFilename - このマップ名のためにゲームタイプを取得します。
    • OutGameType - 出力パラメータです。指定されたマップに関連づけられている GameTypePrefix 構造体を出力します。
    • bCheckExt - オプションのパラメータです。TRUE の場合は、マップ名のファイル拡張子をチェックすることによって、有効なマップファイルであることを確認します。
  • GetMapCommonPackageName [InFilename] [OutCommonPackageName] - 指定されたマップのファイル名に、一般的なパッケージ名を (存在するならば) 取得します。成功すると、TRUE を返します。マップのための GameTypePrefix が見つからない場合や、 GameTypePrefix が一般的なパッケージを使用していない場合は、FALSE を返します。詳細については、 一般的なパッケージ のセクションを参照してください。
    • InFilename - このマップの名前のために一般的なパッケージの名前を取得します。
    • OutCommonPackageName - 出力パラメータです。一般的なパッケージの名前を出力します。
  • GetDefaultGameClassPath [MapName] [Options] [Portal] - 指定されたマップとオプションのために使用する、オプションの GameInfo クラスへのフルパスを返します。この関数は、クック済みのパッケージを事前にロードするために使用されます。したがって、フォールバックはまったく含める必要はありません。 SetGameType() が後に呼び出されて、望ましいクラスを実際に検索 / ロードすることになっています。
    • MapName - このマップの名前のためにデフォルトゲームタイプを取得します。
    • Options - マップのための URL からのオプション文字列です。(ただし存在する場合)。
    • Portal - プレイヤーを送る、目的地のポータルの名前です。(ただし存在する場合)。
  • SetGameType [MapName] [Options] [Portal] - 指定されたマップおよび指定されたオプションにおけるゲームのためにスポーンする GameInfo のクラスを返します。望ましいクラスが見つからない場合に備えて、この関数に何らかのフォールバックを含めるべきです。
    • MapName - このマップの名前のためにゲームタイプを取得します。
    • Options - マップのための URL からのオプション文字列です。(ただし存在する場合)。
    • Portal - プレイヤーを送る、目的地のポータルの名前です。(ただし存在する場合)。
  • InitGame [Options] [ErrorMessage] - 当該ゲームタイプのためにパラメータを初期化するとともにヘルパークラスをスポーンするために、他のスクリプトが実行される前に、エンジンによって呼び出されます。
    • Options - マップのための URL からのオプション文字列です。(ただし存在する場合)。
    • ErrorMessage - 出力パラメータです。ゲームタイプの初期化中に発生したエラーメッセージを出力します。
  • StartMatch - マッチがこれから始まり、プレイヤーのための Pawn がスポーンされることを、全アクタに通知します。
  • Reset - ゲームタイプを初期状態にリセットします。他のすべての Actor がリセットされた後に呼び出されます。
  • ShouldReset [ActorToReset] - 指定された Actor がリセットできるか否かを決定します。ゲームを再スタートしているあいだに、指定された Actor がその上で Reset() を呼び出さなければならない場合は、TRUE を返します。 GameInfo が手動でアクタをリセットする場合や、アクタがリセットされる必要がない場合は、FALSE を返します。
    • ActorToReset - リセットする Actor です。
  • ResetLevel - あらゆる Controller 、さらに、あらゆる Actor 、さらには GameInfo のそれぞれで Reset() を呼び出すことによって、レベルをリセットします。
  • RestartGame - bChangeLevels=TRUE の場合にマップを変更するか、あるいは、現在のマップをリロードすることによって、ゲームを再スタートします。
  • EndGame [Winner] [Reason] - ゲーム終了処理を実行します。ゲームの終了条件が満たされた場合に呼び出されます。
    • Winner - ゲームに勝利したプレイヤーの PlayerReplicationInfo (プレイヤー レプリケーション) です。
    • Reason - ゲームを終了する理由を指定する 文字列 です。たとえば、TimeLimit (制限時間)、LastMan (生き残り)、DungeonComplete (ダンジョンの完了) などです。
  • CheckEndGame [Winner] [Reason] - EndGame() から呼び出されて、指定された理由に基づいてゲームを実際に終了すべきか否かを確認します。サブクラスによってこれをオーバーライドして、ゲーム固有の変更を追加することができます。
    • Winner - ゲームに勝利したプレイヤーの PlayerReplicationInfo (プレイヤー レプリケーション) です。
    • Reason - ゲームを終了する理由を指定する 文字列 です。たとえば、TimeLimit (制限時間)、LastMan (生き残り)、DungeonComplete (ダンジョンの完了) などです。
  • CheckModifiedEndGame [Winner] [Reason] - CheckEndGame() から呼び出されて、ゲーム終了条件の変更を可能にします。デフォルトでは、全 ミューテータ 上にある CheckEndGame() を呼び出します。
    • Winner - ゲームに勝利したプレイヤーの PlayerReplicationInfo (プレイヤー レプリケーション) です。
    • Reason - ゲームを終了する理由を指定する 文字列 です。たとえば、TimeLimit (制限時間)、LastMan (生き残り)、DungeonComplete (ダンジョンの完了) などです。
  • PerformEndGameHandling - オンラインレイヤーのために、ゲームの終了条件の処理を行います。
  • GameEnding - エンジンによって呼び出されて、ゲームがシャットダウンされる (すなわち、アプリケーションが終了するか、新たなマップがロードされる場合) ことを、ゲームタイプに通知します。
  • PreExit - エンジンに呼び出されて、エンジンがシャットダウンすることをゲームに通知します。
  • MatchIsInProgress - マッチが現在進行中か否かを返します。
  • GameEventsPoll - カスタムのゲームロギングを一定間隔で実行する統計コードのエントリーポイントとして機能する関数スタブです。統計ロギングが開始されると、一定間隔で、 GameplayeStatsWriterPoll() タイマーによって呼び出されます。カスタムの統計ロギングを追加するには、サブクラスでこの関数をオーバーライドします。
  • EndLogging [Reason] - 統計ロギングを停止するための関数スタブです。統計ロギングを停止するロジックを追加するには、サブクラスでこの関数をオーバーライドします。
    • Reason - ロギングを中止する理由を指定する 文字列 です。

移動

  • ProcessServerTravel [URL] [bAbsolute] - 新たなレベルにサーバーをジャンプさせる処理を行います。
    • URL - 移動先のマップの URL です。
    • bAbsolute - TRUE の場合は、絶対的移動が使用されます。そうでない場合は、相対的な移動が使用されます。
  • ProcessClientTravel [URL] [NextMapGuid] [bSeamless] [bAbsolute] - 指定された URL に移動するようにすべてのクライアントに通知します。
    • URL - 移動先のマップの URL です。
    • NextMapGuid - 次レベルのサーバーバージョンの GUID (グローバル一意識別子) です。
    • bSeamless - TRUE の場合は、シームレスな移動が使用されます。
    • bAbsolute - TRUE の場合は、絶対的移動が使用されます。そうでない場合は、相対的な移動が使用されます。
  • SendPlayer [aPlayer] [URL] - プレイヤーを指定された URL に送ります。
    • aPlayer - 新たな URL に送るプレイヤーの PlayerController です。
    • URL - 移動先のマップの URL です。
  • GetNextMap - 次のゲームで、プレイヤーが移動すべきマップを返す関数スタブです。ゲームにマップのサイクルがある場合は、サブクラスでこの関数をオーバーライドしなければなりません。
  • GetTravelType - 使用すべき移動のタイプを決定します。絶対的移動については TRUE を返し、相対的移動については FALSE を返します。
  • PreCommitMapChange [PreviousMapName] [NextMapName] - 前のレベルをアンロードする前に、 CommitMapChange() によってエンジンが呼び出すイベントスタブです。
    • PreviousMapName - アンロードされるマップの名前です。
    • NextMapName - ロードされるマップの名前です。
  • PostCommitMapChange - 前のレベルがアンロードされて新たなレベルがロードされた後に、 CommitMapChange() によってエンジンが呼び出すイベントスタブです。
  • GetSeamlessTravelActorList [bToEntry] [ActorList] - シームレスな遷移中にサーバー上でエンジンによって呼び出されて、新たなレベルに移動すべきアクタのリストを取得します。 PlayerControllers 、および、 Role < ROLE_Authority Actor 、 さらに、リストに入っている Actor (すなわち、リストに入っている Object.Outer = =Actor ) 内部にあるあらゆる非アクタは、ここに含まれるか否かにかかわらず、すべて自動的に移動されます。 PersistentLevel 内の動的 (bStatic および bNoDelete) アクタだけが移動できます。(これには、ゲームプレイ中にスポーンされる全アクタが含まれます)。この関数は、遷移の両側で呼び出されます。中間でアクタに変更が生じることがあるからです。(たとえば、プレイヤーが参加したり、ゲームから退出したりする場合)。
    • bToEntry - TRUE の場合は、サーバーが古いレベルからエントリに移動します。そうでない場合は、サーバーはエントリから新たなレベルに移動します。
    • ActorList - 出力パラメータです。 移動すべき Actor の配列を出力します。
  • PostSeamlessTravel - シームレスな移動が完了した後に、 新たな GameInfo 上でエンジンによって呼び出されます。この関数は、通常、ゲーム内にすでに存在するプレイヤーを再初期化するために使用されます。そのようなプレイヤーは、 Login() を呼び出さないからです。
  • HandleSeamlessTravelPlayer [C] - シームレスなレベル遷移を経て残っていたプレイヤーの再初期化を処理します。サーバーの後にロードを終えたプレイヤーのために、 PostSeamlessTravel() およびエンジンから呼び出されます。
    • C - 処理すべきプレイヤーの Controller です。
  • SetSeamlessTravelViewTarget [PC] - シームレスなレベル遷移を経て残っていたプレイヤーのために ViewTarget (ビューターゲット) を設定します。
    • PC - ViewTarget を設定すべき PlayerController です。

プレイヤー

  • PreLogin [Options] [Address] [ErrorMessage] - サーバーに加わりつつあるプレイヤーを受け入れ、もしくは拒否します。
    • Options - マップのための URL からのオプション文字列です。(ただし存在する場合)。
    • Address - 接続しているプレイヤーの IP アドレスです。
    • ErrorMessage - 出力パラメータです。失敗したログインのためのエラーメッセージを出力します。 文字列 が空白以外の場合は、ログインが失敗したことを表します。
  • Login [Portal] [Options] [UniqueID] [ErrorMessage] - プレイヤーをログインさせるとともに、プレイヤーのための PlayerController をスポーンします。スポーンした PlayerController を返します。
    • Portal - プレイヤーを送る、目的地のポータルの名前です。(ただし存在する場合)。
    • Options - マップのための URL からのオプション文字列です。(ただし存在する場合)。
    • UniqueID - ログインしているプレイヤーのための UniqueNetID (一意なネット ID) です。
    • ErrorMessage - 出力パラメータです。失敗したログインのためのエラーメッセージを出力します。 文字列 が空白以外の場合は、ログインが失敗したことを表します。
  • PostLogin [NewPlayer] -プレイヤーのログインが成功した後にエンジンによって呼び出されて、プレイヤーのセットアップを処理します。
    • NewPlayer - ログインしたプレイヤーの PlayerController です。
  • Logout [Exiting] - Controller から呼び出されて、プレイヤーが破棄されたときに、ゲームからプレイヤーを削除します。
    • Exiting - ゲームから退出するプレイヤーの Controller です。
  • SpawnDefaultPawnFor [NewPlayer] [StartSpot] - DefaultPawnClass を使用して、指定された Controller のための Pawn をスポーンして返します。
    • NewPlayer - Pawn をスポーンするプレイヤーの Controller です。
    • StartSpot - Pawn をスポーンする NavigationPoint です。
  • GetDefaultPlayerClass [C] - 指定された Controller のために使用するデフォルトの Pawn クラスを返します。
    • C - この Controller のために Pawn クラスを取得します。
  • StartHumans - RestartPlayer() を呼び出すことによって、人が制御するプレイヤーをスタートさせます。
  • StartBots - RestartPlayer() を呼び出すことによって、AI が制御するプレイヤーをスタートさせます。
  • RestartPlayer [NewPlayer] - プレイヤーのために、始点を探し、 Pawn をスポーンし、デフォルトのインベントリを追加するなどして、プレイヤー (人または AI) を再スタートさせます。
    • NewPlayer - 再スタートさせるプレイヤーの Controller です。
  • GenericPlayerInitialization [C] - 移動メソッド (PostLogin() および HandleSeamlessTravelPlayer()) において共通するプレイヤーの初期化をすべて処理します。
    • C - 初期化するプレイヤーの Controller です。
  • UnregisterPlayer [PC] - プレイヤーがゲームから退出する際に、名前の付いたセッションからプレイヤーを削除します。
    • PC - ゲームから退出するプレイヤーの PlayerController です。
  • AtCapacity [bSpectator] - ゲームがすでに定員になっているか否かを返します。
    • bSpectator - TRUE の場合は、スペクテーター (観戦者) の定員に達しているか否かを返します。そうでない場合は、プレイヤーの定員に達しているか否かを返します。
  • GetNumPlayers - ゲーム内にいるプレイヤーの数を返します。
  • GetNextplayerID - 参加しているプレイヤーのために使用する、次の ID を返します。
  • SetPlayerDefaults [PlayerPawn] - 特定のプレイヤー Pawn のプロパティを、デフォルトの値にリセットします。 RestartPlayer() から呼び出されます。
    • PlayerPawn - この Pawn のためにプロパティをリセットします。
  • CanSpectate [Viewer] [ViewTarget] - 指定された PlayerController が、指定された PlayerReplicationinfo の視点から見物することができるか否かを返します。
    • Viewer - スペクテーターの PlayerController です。
    • ViewTarget - 見物対象の PlayerReplicationInfo です。
  • ChangeName [Other] [S] [bNameChange] - 指定されたプレイヤーの名前を、指定された名前に変更します。
    • Other - プレイヤーの Controller です。
    • S - プレイヤーに付ける名前です。
    • bNameChange - 未使用です。
  • ChangeTeam [Other] [N] [bNewTeam] - 指定されたプレイヤーのチームを、指定されたチームに変更します。
    • Other - プレイヤーの Controller です。
    • N - プレイヤーを配置するチームの番号です。
    • bNewteam - 未使用です。
  • PickTeam [Current] [C] - 指定されたプレイヤーを配置するチームの実際の番号を返します。
    • Current - プレイヤーを配置するチームの仮の番号です。
    • C - プレイヤーの Controller です。
  • PlayerCanRestartGame [aPlayer] - 指定されたプレイヤーが、ゲームを再スタートしても良いかどうかを返します。
    • aPlayer - 再スタートを要求しているプレイヤーの PlayerController です。
  • PlayerCanRestart [aPlayer] - 指定されたプレイヤーが、再スタートされても良いかどうかを返します。
    • aPlayer - 再スタートされるように要求しているプレイヤーの PlayerController です。
  • SwapPlayerControllers [OldPC] [NewPC] - シームレスな移動を行い、新たなゲームタイプの Controller クラスが前のものと異なる場合、ビューポート / 接続の PlayerControllers を交換します。
    • OldPC - 前のゲームタイプに由来するプレイヤーの PlayerController です。
    • NewPC - 新ゲームタイプにおけるプレイヤーのための PlayerController です。

ナビゲーション

  • DoNavFearCostFalloff - bDoFearCostFalloff=true の場合、ナビゲーションポイントの FearCost フォールオフを更新します。 GameInfoTimer() から呼び出されます。
  • NotifyNavigationChanged [N] - NavigationPoint (ナビゲーションポイント) がブロックされるか、ブロック解除されたときに、ゲームタイプに通知する関数スタブです。これによって、ゲームタイプがワールド内の AI に通知し、AI がルートを更新することができるようになります。
    • N - 変更された NavigationPoint です。
  • ShouldSpawnAtStartSpot [Player] - 指定されたプレイヤーの StartSpot プロパティを、 Pawn のためのスポーン位置として使用すべきか否かを返します。
    • Player - プレイヤーの Controller です。
  • FindPlayerStart [Player] [InTeam] [IncomingName] - 当該プレイヤーの出発地点として最善な NavigationPoint を返します。 PlayerStartsRatePlayerStart() によって評価されます。
    • Player - プレイヤーの Controller です。
    • InTeam - オプションの引数です。プレイヤーが属すチームの番号です。
    • IncomingName - オプションの引数です。出発地点として使用するテレポーターのタグを指定します。
  • ChoosePlayerStart [Player] [InTeam] - 指定されたプレイヤーの出発地点として最善な PlayerStart を返します。 PlayerStartsRatePlayerStart() によって評価されます。
    • Player - プレイヤーの Controller です。
    • InTeam - オプションの引数です。プレイヤーが属すチームの番号です。
  • RatePlayerStart [P] [Team] [Player] - 指定された PlayerStart が、指定されたプレイヤーとチームにとってどの程度望ましいものかを評価して返します。
    • P - 評価を受ける PlayerStart です。
    • Team - プレイヤーが属すチームの番号です。
    • Player - プレイヤーの Controller です。

インベントリ

  • ShouldRespawn [Other] - 指定された PickupFactory (ピックアップ ファクトリ) が再スポーンすべきか否かを返します。デフォルトでは、マルチプレイヤーのゲームにおいてのみ、アイテムの再スポーンが許されています。
    • Other - 再スポーンさせるアイテムの PickupFactory です。
  • AddDefaultInventory [P] - 指定された Pawn のためにデフォルトのあらゆるインベントリをスポーンします。 (Pawn::AddDefaultInventory() を使用します)。 Pawn をスポーンする ActorFactory および RestartPlayer() から呼び出されます。
    • P - デフォルトのインベントリを渡す Pawn です。
  • PickupQuery [Other] [ItemClass] [Pickup] - 渡されたアイテムを指定されたプレイヤーが選択できるか否かを返します。 Pawn がアイテムを選択しようとする際に PickupFactory または DroppedPickup によって呼び出されます。
    • Other - アイテムを選択しようとしている Pawn です。
    • ItemClass - アイテムの Inventory クラスです。
    • Pickup - アイテムを含む Actor です。(例 : PickupFactory )。
  • DiscardInventory [Other] [Killer] - プレイヤーが死んだ後、プレイヤーのインベントリを破棄またはドロップします。
    • Other - 死んだプレイヤーの Controller です。
    • Killer - オプションの引数です。死んだプレイヤーを殺したプレイヤーの Controller です。(ただし、存在する場合)。

メッセージ

  • BroadcastDeathMessage [Killer] [Other] [damageType] - あるプレイヤー (Killer) が他のプレイヤー (Other) を殺した場合に、 DeathMessageClass からのメッセージを表示します。 BroadcastLocalized() を呼び出します。
    • Killer - 一方のプレイヤーを殺したプレイヤーの Controller です。 None (プレイヤーによって殺されなかった場合) または Other (この場合自死ということになる) にすることができます。
    • Other - 殺されたプレイヤーの Controller です。
    • damageType - プレイヤーの死を招いたダメージの DamageType (ダメージタイプ) です。
  • Broadcast [Sender] [Msg] [Type] - 指定されたメッセージを、ゲーム内の全プレイヤーに表示します。
    • Sender - メッセージを開始する Actor です。
    • Msg - 表示するメッセージを表す 文字列 です。
    • type - オプション引数です。送信されるメッセージの追加の「タイプ」を規定するために使用できる 名前 です。
  • BroadcastTeam [Sender] [Msg] [Type] - 通信者と同じチームにいる全プレイヤーに指定されたメッセージを表示します。
    • Sender - メッセージを開始する Actor です。
    • Msg - 表示するメッセージを表す 文字列 です。
    • type - オプション引数です。送信されるメッセージの追加の「タイプ」を規定するために使用できる 名前 です。
  • BroadcastLocalized [Sender] [Message] [Switch] [RelatedPRI_1] [RelatedPRI_2] [OptionalObject] - ゲーム内の全プレイヤーにローカライズされたメッセージを表示します。
    • Sender - メッセージを開始する Actor です。
    • Message - メッセージの入手元である LocalMessage クラスです。
    • Switch - オプションの引数です。表示するメッセージのインデックスです。
    • RelatedPRI_1 - オプションの引数です。メッセージの中で表示すべき情報を得るのに使用できる PlayerReplicationInfo です。
    • RelatedPRI_2 - オプションの引数です。メッセージの中で表示すべき情報を得るのに使用できる PlayerReplicationInfo です。
    • OptionalObject - オプション引数です。メッセージを表示する際に使用できる Object です。たとえば、 LocalMessage クラスのデフォルトの動作では、これを Class オブジェクトとして扱い、その上にある GetLocalString() を呼び出すことによって、表示すべきメッセージを入手します。(これは BroadcastDeathMessage のために使われます)。
  • BroadcastLocalizedTeam [TeamIndex] [Sender] [Message] [Switch] [RelatedPRI_1] [RelatedPRI_2] [OptionalObject] - 指定されたチームにいる全プレイヤーにローカライズされたメッセージを表示します。
    • TeamIndex - メッセージの表示先になるチームの番号です。
    • Sender - メッセージを開始する Actor です。
    • Message - メッセージの入手元である LocalMessage クラスです。
    • Switch - オプションの引数です。表示するメッセージのインデックスです。
    • RelatedPRI_1 - オプションの引数です。メッセージの中で表示すべき情報を得るのに使用できる PlayerReplicationInfo です。
    • RelatedPRI_2 - オプションの引数です。メッセージの中で表示すべき情報を得るのに使用できる PlayerReplicationInfo です。
    • OptionalObject - オプション引数です。メッセージを表示する際に使用できる Object です。たとえば、 LocalMessage クラスのデフォルトの動作では、これを Class オブジェクトとして扱い、その上にある GetLocalString() を呼び出すことによって、表示すべきメッセージを入手します。(これは BroadcastDeathMessage のために使われます)。

Kick (締め出し)

  • KickIdler [PC] - AccessControl::KickPlayer() を使用してゲームから指定されたプレイヤーを取り除きます。
    • PC - 締め出されるプレイヤーの Controller です。
  • Kick [S] - ゲームから指定されたプレイヤーを取り除きます。
    • S - 取り除くプレイヤーを指定する 文字列 です。これは、そのプレイヤーの PlayerNamePlayerID でなければなりません。
  • ForceKickPlayer [PC] [KickReason] - admin のステータスにかかわらず、指定されたプレイヤーをゲームから取り除きます。
    • PC - 締め出されるプレイヤーの Controller です。
    • KickReason - プレイヤーが取り除かれた理由を指定する 文字列 です。
  • KickBan [S] - 指定されたプレイヤーをゲームから取り除くとともにバンする (接続を禁止する) ことによって、再エントリを拒否します。
    • S - 取り除くプレイヤーを指定する 文字列 です。 これは、そのプレイヤーの PlayerNamePlayerID である必要があります。

ネットワーク / レプリケーション

  • InitGameReplicationInfo - ゲームのために GameReplicationInfo を初期化します。
  • StartOnlineGame - StartMatch() によって呼び出され、オンラインシステムにゲームを起動させるとともに、コールバックを待機するように命令します。接続済みの各クライアントに対して、セッションを進行中としてマークするように命令します。
  • OnStartOnlineGameComplete [SessionName] [bWasSuccessful] - オンラインシステムがゲームの起動を完了したときに呼び出されます。
    • SessionName - セッションの 名前 です。
    • bWasSuccessful - TRUE の場合は、オンラインシステムがゲームの起動に成功しました。また、全クライアントが登録されます。
  • EndOnlineGame - PerformEndGameHandling() から呼び出されて、オンラインシステムに対してゲームを終了するように命じます。全クライアントに対しても同様の命令を行います。
  • GetNetworkNumber - ホストマシンの IP アドレスを返します。
  • RequiresPassword - 参加するためにパスワードをゲームが必要とするか否かを返します。
  • ReplicateStreamingStatus [PC] - 現在のレベル ストリーミングのステータスを、指定された PlayerController にレプリケートします。
    • PC - ストリーミングのステータスをレプリケートする、プレイヤーの PlayerController です。
  • BestNextHostSort [A] [B] - 指定されたホストのうちどれが望ましいかを返します。上位のホストからなるリストをソートするために使用されます。最も多いピア接続をもつクライアントが最上位に来ます。さらに、参加時間に基づいてソートすることによって、最も新しいプレイヤーが望ましいものとなるようにします。
    • [A/B] - ソートすべきホストの PlayerControllers です。
  • UpdateBestNextHosts - 現在のサーバー上で次善のホストからなるリストを更新するとともに、全クライアントにこのリストをレプリケートします。
  • UpdateNetSpeeds - 新たなスピードでゲーム内の全 PlayerControllers を更新します。
  • CalculatedNetSpeed - MinDynamicBandwidth (最小動的帯域幅) と MaxDynamicBandwidth (最大動的帯域幅) の間にクランプされたネットスピードを計算します。
  • WriteOnlineStats - 全クライアントに対して、統計情報を書き出すように命令し、さらに、ローカルの統計情報を処理します。
  • WriteOnlinePlayerScores - マッチがアービトレイトされる場合、全クライアントに対して、プレイヤーのスコアのコピーを書き出すように命令します。アービトレイト (仲裁) されない場合は、最初のローカルプレイヤーにのみスコアを書き出させます。
  • UpdateGameSettings - ゲームを探索しているプレイヤーに対して発行しなければならないゲーム設定項目の変更を更新するために使用される関数スタブです。サブクラスによってオーバーライドされる必要があります。
  • UpdateGameSettingsCounts - プレイヤー数に関するオンライン サブシステムの情報を更新することによって、LAN マッチが正しいプレイヤー数を表示できるようにします。
  • ProcessClientRegistrationCompletion [PC] [bWasSuccessful] - プレイヤーがアービトレーション (仲裁) の登録を完了したことを、ゲームに対して通知する関数スタブです。登録の完了を処理するには、サブクラスでこの関数スタブをオーバーライドします。
    • PC - 登録を完了したプレイヤーの PlayerController です。
    • bWasSuccessful - TRUE の場合は、登録が成功しました。
  • StartArbitrationRegistration - 非同期の登録を開始する関数スタブです。サブクラスによってオーバーライドされる必要があります。
  • StartArbitratedMatch - アービトレイトされたマッチを開始する関数スタブです。サブクラスによってオーバーライドされる必要があります。
  • RegisterServerForArbitration - アービトレーションのためのサーバーを登録する関数スタブです。サブクラスによってオーバーライドされる必要があります。
  • ArbitrationRegistrationComplete [SessionName] [bWasSuccessful] - アービトレーションのためのサーバーを登録し終えたときに呼び出される関数スタブです。
    • SessionName - セッションの 名前 です。
    • bWasSuccessful - TRUE の場合は、登録が成功しました。
  • NotifyArbitratedMatchEnd - アービトレイトされたマッチが終了したときに呼び出されて、全クライアントに対して接続を切り、メニューに進むように命令します。
  • ProcessServerLogin - コマンドライン上で渡されているログインパラメータのチェックをします。存在する場合は、専用サーバーの登録プロセスを開始する前に、非同期ログインを実行します。ログインが進行中の場合は、TRUE を返します。
  • ClearAutoLoginDelegates - ログインプロセスが終了 / 失敗すると、ログインデリゲートをクリアします。
  • OnLoginFailed [LocalUserNum] [ErrorCode] - サーバーログインが失敗した場合に呼び出されて、 ClearAutoLoginDelegates() を呼び出します。
    • LocalUserNumber - 関連づけられているユーザーの Controller 番号です。
    • ErrorCode - 発生した EOnlineServerConnectionStatus 非同期エラーコードです。
  • OnLoginChanged [LocalUserNum] - サーバーログインが完了したときに呼び出され、サーバーを登録します。
    • LocalUserNumber - 未使用です。
  • RegisterServer - オンラインサービスで専用サーバーを登録します。
  • OnServerCreateComplete [SessionName] [bWasSuccessful] - 専用サーバーの登録が完了したときに呼び出されます。
    • SessionName - セッションの 名前 です。
    • bWasSuccessful - TRUE の場合は、登録が成功しました。
  • TellClientsToReturnToPartyhost - PlayerController をイタレートするとともに、パーティーに復帰するように命令します。
  • TellClientsToTravelToSession [SessionName] [SearchClass] [PlatformSpecificInfo] - PlayerController をイタレートし、リモートプレイヤーに対して、指定されたセッションに移動するように命令します。
    • SessionName - 登録するセッションの 名前 です。
    • SearchClass - セッションが入れられるべき OnlineGameSearch クラスです。
    • PlatformSpecificInfo - プラットフォーム固有領域に配置すべきバイナリデータです。
  • AddInactivePRI [PRI] [PC] - 指定された PlayerReplicationInfo を非アクティブなリストに追加するとともに、アクティブなリストから削除します。
    • PRI - 非アクティブなリストに追加すべきプレイヤーの PlayerReplicationInfo です。
    • PC - PRI と関連づけられているプレイヤーの PlayerController です。
  • FindInactivePRI [PC] - 再エンターしている指定プレイヤーと関連づけられている PRI を検索して返します。
    • PC - プレイヤーの PlayerController です。
  • OverridePRI [PC] [OldPRI] - 必要に応じて、指定されたプレイヤーの PlayerReplicationInfo のプロパティを、ログインプロセス中に割り当てられた古い PlayerReplicationInfo のプロパティでオーバーライドします。
    • PC - プレイヤーの PlayerController です。
    • OldPRI - ログイン時に割り当てられたプロパティを保持している PlayerReplicationInfo です。

ポーズ

  • CanUnpause - デリゲートです。ゲームがポーズ解除を要求されたときに呼び出されて、そのアクションが許されるか否かを決定します。ゲームのポーズ解除が可能な場合は、TRUE を返します。デフォルトの実装では、すべての要求が成功します。
  • SetPause [PC] [CanUnpauseDelegate] - 指定されたプレイヤーがゲームをポーズする権利を持っている場合は、ゲームをポーズするとともに、デリゲートをリストに追加します。デリゲートは、ゲームのポーズを解除してもよい (例 : ゲームがポーズされた理由が除去された場合など) かどうかを調べるために呼び出されます。
    • PC - ゲームのポーズ解除を試みているプレイヤーの PlayerController です。
    • CanUnpauseDelegate - 当該ポーズの解除が許されるか否かを決定するために使用するデリゲートです。(このデリゲートは、 CanUnpause デリゲートのシグネチャと一致しています)。
  • ClearPause - デリゲートのリストをチェックして、当該ポーズの解除が可能か否かを決定します。デリゲートによって解除が可能であるとされた場合は、そのデリゲートをリストから削除し、残りのデリゲートをチェックします。リストが空の場合は、ゲームがポーズ解除されていると見なされる。
  • ForceClearUnpauseDelegates [PauseActor] - オブジェクトの CanUnpause デリゲートをポーズリストから強制的に削除します。リストの中に オブジェクトの CanUnpause デリゲート ハンドラがある場合は、 ClearPause() の呼び出しをトリガーします。 PlayerController が破壊されているときに呼び出されることによって、ゲームをポーズした PC がゲームのポーズ解除を行う前に破壊された場合に、ゲームがポーズ状態になって動かなくなるのを防ぎます。
    • PauseActor - この Actor のために CanUnpause デリゲートをすべて解除します。
  • AllowPausing [PC] - 指定されたプレイヤーがゲームをポーズできるか否かを返します。
    • PC - ゲームのポーズを要求しているプレイヤーの PlayerController です。

ゲームプレイ

  • SetGameSpeed [T] - ゲームスピードとワールドの TimeDilation を指定された値にセットします。ゲームの Timer() を実行する頻度を制御します。
  • AllowCheats [P] - チートがゲームで許されているか否かを返します。デフォルトでは、オフラインのゲームでのみ許されています。
  • UpdateGameplayMuteList [PC] - プレイヤーのゲームプレイ固有のミュート情報が更新できることを、ゲームタイプに通知するために使用されます。 プレイヤー は、更新可能であることをサーバーに通知する必要があります。さもなければ、一意なネット ID が不正なものとなり、ミュート情報が正しく機能しなくなります。
    • PC - このプレイヤーの PlayerController のためにミュート情報を更新します。
  • RecalculateSkillRating - 当該ゲームのための公表スキルを更新するためにゲームタイプによって使用されます。
  • MatineeCancelled - 当該 PC がシネマティックスモードにあり、Matinee がユーザーによってキャンセルされた場合に、呼び出されます。
  • GetCoverReplicator - 当該ゲームのために、 CoverReplicatorBase を返します。1 つも存在していない場合は、新たにスポーンして返します。
  • NotifyKilled [Killer] [Killed] [KilledPawn] [damageType] - 指定されたプレイヤーに殺されたことを通知します。 Killed() から呼び出されます。
    • Killer - 殺した方のプレイヤーの Controller です。
    • Killed - 殺された方のプレイヤーの Controller です。
    • KilledPawn - 殺された方のプレイヤーの Pawn です。
    • DamageType - プレイヤーの死の原因になったダメージの DamageType (ダメージのタイプ) です。
  • Killed [Killer] [KilledPlayer] [KilledPawn] [damageType] - Pawn によって呼び出され、 Pawn が殺されたことをゲームに通知します。
    • Killer - 殺した方のプレイヤーの Controller です。
    • Killed - 殺された方のプレイヤーの Controller です。
    • KilledPawn - 殺された方のプレイヤーの Pawn です。
    • DamageType - プレイヤーの死の原因になったダメージの DamageType (ダメージのタイプ) です。
  • PreventDeath [KilledPawn] [Killer] [DamageType] [HitLocation] - Pawn によって呼び出され、殺された Pawn をゲームがオーバーライドすることを許可します。
    • KilledPawn - 殺された方のプレイヤーの Pawn です。
    • Killer - 殺した方のプレイヤーの Controller です。
    • DamageType - プレイヤーの死の原因になったダメージの DamageType (ダメージのタイプ) です。
    • HitLocation - プレイヤーの死の原因となったヒットの位置を指定する Vector (ベクター) です。
  • ReduceDamage [Damage] [injured] [instigatedBy] [HitLocation] [Momentum] [DamageType] [DamageCauser] - プレイヤーにダメージが与えられたときに TakeDamage() によって呼び出され、ダメージ量を修正することを可能にします。
    • Damage - 出力パラメータです。与えられたダメージ量を受け取り、出力します。
    • injured - ダメージを受けたプレイヤーの Pawn です。
    • instigatedBy - ダメージを与えたプレイヤーの Controller です。
    • HitLocation - ダメージの原因となったヒットの位置を指定する Vector です。
    • Momentum - ダメージに適用されるモメンタムの方向と大きさを指定する Vector です。
    • DamageType - 与えられたダメージの DamageType です。
    • DamageCauser - ダメージを実際に引き起こした Actor です。
  • AddObjectiveScore [Scorer] [Score] - 目標が達成された後に、指定されたプレイヤーのスコアを増加させます。
    • Scorer - プレイヤーの PlayerReplicationInfo です。
    • Score - プレイヤーのスコアに加える値です。
  • ScoreObjective [Scorer] [Score] - プレイヤーのスコアを増加させるとともに、目標が達成された後に、ゲームを終了すべきか否かをチェックします。
    • Scorer - プレイヤーの PlayerReplicationInfo です。
    • Score - プレイヤーのスコアに加える値です。
  • CheckScore [Scorer] - ScoreObjective() によって呼び出され、指定されたプレイヤーのスコアに基づいて、ゲームを終了させるか否かを決定します。
    • Scorer - プレイヤーの PlayerReplicationInfo です。
  • ScoreKill [Killer] [Other] - プレイヤーのスコアを増加させるとともに、殺された後に、ゲームを終了すべきか否かをチェックします。
    • Killer - プレイヤーの死を引き起こしたプレイヤーの Controller です。
    • Other - 死んだプレイヤーの Controller です。

オプション

  • GrabOption [Options] [Result] - オプション文字列から次のキー / 値のペアを抽出します。ペアが見つかった場合は、TRUE を返します。
    • Options - 出力パラメータです。現在のオプション文字列を受け取り、パースされたペアを引いたオプション文字列を出力します。
    • Result - 出力パラメータです。パースされたペアを出力します。
  • GetKeyValue [Pair] [Key] [Value] - キー / 値のペアをキーと値に分解します。
    • Pair - キー / 値のペアを受け取ります。
    • Key - 出力パラメータです。キーを出力します。
    • Value - 出力パラメータです。値を出力します。
  • ParseOption [Options] [InKey] - 指定されたキーについて、オプション文字列からキー / 値のペアを抽出します。 文字列 の形式でキー / 値のペアを返します。
    • Options - 現在のオプション文字列を受け取ります。
    • InKey - 検索対象のキーです。
  • HasOption [Options] [InKey] - オプション文字列に指定されたキーのキー / 値のペアが存在するか否かを返します。
    • Options - 現在のオプション文字列を受け取ります。
    • InKey - 検索対象のキーです。
  • GetIntOption [Options] [ParseString] [CurrentValue] - オプション文字列から指定されたキーの Int 値を返します。
    • Options - 現在のオプション文字列を受け取ります。
    • ParseString - 検索対象のキーです。
    • CurrentValue - キーが見つからなかった場合に使用する現在の (デフォルトの) 値です。

ミューテータ

  • AddMutator [mutname] [bUserAdded] - ゲームに指定されたミューテータを追加します。
    • mutname - 追加するミューテータクラスを指定する 文字列 です。
    • bUserAdded - TRUE の場合は、ゲームのインターフェースを通じてプレイヤーによってミューテータが追加されました。
  • RemoveMutator [MutatorToRemove] - 指定されたミューテータをゲームから削除します。
    • MutatorToRemove - 削除する ミューテータ です。
  • AllowMutator [MutatorClassName] - 指定された Mutator (ミューテータ) クラスをゲームに追加できるか否かを返します。
    • MutatorClassName - チェックするミューテータクラスを指定する 文字列 です。
  • Mutate [MutateString] [Sender] - 入力文字列をミューテータリストに渡します。PlayerController.Mutate() によって使用されます。ミューテータが入力された実行関数を持てるのようにします。(ミューテータをキーにバインドします)。
    • MutateString - ミューテータリストに渡す 文字列 です。
    • Sender - ミューテータ文字列を送っているプレイヤーの PlayerController です。
  • CheckRelevance [Other] - Actor が当該ゲームに関係があり、破棄されてはならない場合は、TRUE を返します。 Actor::PreBeginPlay() で呼び出されます。スポーンされている Actor をミューテータが削除または置換できるようにします。
    • Other - この Actor の関係性を調べます。
  • ModifyScoreKill [Killer] [Other] - プレイヤーのキルをミューテータリストに渡し、スコアの処理を行います。
    • Killer - プレイヤーの死を引き起こしたプレイヤーの Controller です。
    • Other - 死んだプレイヤーの Controller です。
  • DriverEnteredVehicle [V] [P] - ビークル (乗り物) 乗車イベントをミューテータリストに渡します。
    • V - 乗車されたビークルです。
    • P - ビークルに乗るプレイヤーの Pawn です。
  • CanLeaveVehicle [V] [P] - 指定された Pawn が指定された Vehicle (ビークル) から出ることができるか否かについて調べます。ミューテータが存在するか否かをミューテータリストが決定できるようにします。
    • V - 退去される Vehicle (ビークル) です。
    • P - ビークルから退去しようとしているプレイヤーの Pawn です。
  • DriverLeftVehicle [V] [P] - ビークル退去イベントをミューテータリストに渡します。
    • V - 退去される Vehicle (ビークル) です。
    • P - ビークルから退去しようとしているプレイヤーの Pawn です。

チートの検出

  • EnableStandbyCheatDetection [bIsEnabled] - スタンドバイチート検知機能を有効 / 無効にします。
    • bIsEnabled - TRUE の場合は、スタンドバイチート検知機能が有効になります。そうでない場合は、無効になります。
  • StandbyCheatDetected [StandbyType] - スタンドバイチートが検知されたことをゲームコードに通知します。
    • StandbyType - 検知されたチートの EStandbyType です。

自動テスティング

  • DoTravelTheWorld - 自動テスティングのためにワールドの移動を開始します。
  • IsAutomatedPerfTesting - 自動パフォーマンスのテスティングが有効な場合は、TRUE を返します。
  • IsCheckingForFragmentation - フラグメンテーションのチェックが有効な場合は、TRUE を返します。
  • IsCheckingForMemLeaks - メモリリークのチェックが有効な場合は、TRUE を返します。
  • IsDoingASentinelRun - Sentinel を実行している場合は、TRUE を返します。
  • ShouldAutoContinueToNextRound - 次のラウンドに自動継続する場合は、TRUE を返します。
  • CheckForSentinelRun - 必要に応じて、 AutoTestManager に対して Sentinel の実行を要請します。GameInfo のサブクラスによって呼び出されなければなりません。 (GameInfo::StartMatch() の基本実装において呼び出されるのではなく)。

ゲームのライフサイクル


ゲームのライフサイクルとは、ゲームタイプがいつ作成されるのか、プレイヤーがどのように作成されるのか、ゲームが終了条件をどのように判断するのかなどといった問題にかかわりますが、ぜひ理解しておかなければなりません。それによって、エンジンを独自のゲームタイプに適合させることが容易になります。エンジンの起動からゲームタイプ独自のライフサイクルまで、ゲームの流れについては、 UnrealScript Game Flow で詳しく解説されています。

ゲームタイプのプレフィックス


「Unreal Engine 3」のゲームタイプシステムには、マップのファイル名に基づいて、マップに使用するのに適切な GameInfo クラスを自動的に選択してくれる機能が備わっています。 DefaultMapPrefixes (デフォルト マップ プレフィックス) 配列と CustomMapPrefixes (カスタム マップ プレフィックス) 配列が、 GameTypePrefix (ゲームタイプ プレフィックス) 構造体のリストを保持しています。各リストでは、特定のプレフィックス文字列が、(特に) ゲームタイプクラスにマッピングされています。

GameTypePrefix (ゲームタイプ プレフィックス) 構造体

  • Prefix - マッププレフィックスを指定する 文字列 です。マッププレフィックスは、マップ名から始まる文字列であり、ハイフン (-) がそれに続きます。このハイフンは、プレフィックスに含まれません。単に、プレフィックスと残りのマップ名を区別するためのものです。
  • bUseCommonPackage - TRUE の場合は、一般的なパッケージがこのゲームタイプのために生成されます。詳細については、 一般的なパッケージ のセクションを参照してください。
  • GameType - プレフィックスにマッピングするゲームタイプのクラスを指定する 文字列 です。 URL にゲームタイプが指定されていない場合は、このゲームタイプが、当該プレフィックスをもつマップに使用されます。
  • AdditionalGameTypes - URL を通じて当該マッププレフィックスによってサポートされる付加的なゲームタイプクラスを指定する 文字列 の配列です。
  • ForcedObjects - 各マップでクックされないようにするために、一般的なパッケージに入るべき強制オブジェクト (およびクラス) です。

ゲームタイプのプレフィックスを追加する

ゲームタイプのプレフィックスのマッピングを追加するには、 DefaultGame.ini config ファイルの [Engine.GameInfo] セクションで、新たなエントリを作成します。以下はその例です。

[Engine.GameInfo]
+DefaultMapPrefixes=(Prefix="DM",bUsesCommonPackage=FALSE,GameType="UTGame.UTDeathmatch")

一般的なパッケージ

TODO

ポーズ


ゲームをポーズするには、 GameInfo 上の SetPause() を呼び出します。 SetPause() は、配列に追加されるパラメータとしてデリゲートを受け入れます。特定の理由でゲームがポーズされた場合、その条件がもう問題ではないことを確認するための特定のデリゲートが、 SetPause() に渡されます。

たとえば、 PlayerController.uc において、Controller は、接続されるか接続を解除された場合に、下記のように、 PlayerController 上の SetPause() を呼び出して、 CanUnpauseControllerConnected 関数を渡します (この関数はさらに GameInfoSetPause() に渡されます)。

// Pause if the controller was removed, otherwise unpause
SetPause(!bIsConnected,CanUnpauseControllerConnected);

CanUnpauseControllerConnected 関数は、単にコントローラーがプラグインされているかどうかを返します。

/** Callback that checks to see if the controller is connected before unpausing */ function bool CanUnpauseControllerConnected() { return bIsControllerConnected; }

GameInfo 内の SetPause 関数に渡されるデリゲートがない場合は、常に TRUE を返すデフォルトの CanUnpause 関数が使用されます。これが当てはまる場合は、ゲームのポーズ解除をする際にチェックすべき特定の条件がないために、プレイヤーが単にポーズする必要がある場合です。

ゲームのポーズを解除するために ClearPause() が呼び出されたときに、 Pausers 配列に入っている各デリゲートが実行されます。 このデリゲートは、TRUE を返すと、配列から削除されます。ゲームのポーズが解除されるのは、この配列が空になったときだけです。

ミューテータ


Mutators (ミューテータ) は、ゲームプレイの特定の要素を変更するためにゲームに使用できる特別な Actor です。たとえば、ミューテータは以下のことを実行できます。

  • プレイヤーのログインパラメータを変更する。
  • プレイヤーの Pawn のプロパティを変更する。
  • 一部の (あるいは全部の) Actor を変更、削除、置換する。(ただし、bGameRelevant=TRUE ではない Actor)。
  • プレイヤーのスタート位置をオーバーライドする。
  • ゲームの終了条件を変更する。

上記のリストは、ミューテータが変更できるゲームの要素の一部に過ぎません。

ミューテータを追加する

ミューテータをゲームに追加するには、 GameInfoAddMutator() 関数を使用します。この関数は、潜在的には他のあらゆる Actor から呼び出され、プレイ中にミューテータを動的に追加することによって、特定の要素をゲームプレイ イベントに応じて変更することができます。デフォルトでは、 InitGame() から呼び出されて、マップ URL で指定されたミューテータを追加します。

ミューテータをマップ URL で指定するには、 Mutator= の後に、追加するミューテータのリストをカンマで区切りながら置きます。 例:

MapName?Game=GameName?Mutator=BigHeads,Instagib

このマップ URL によって、 MapName というマップがロードされます。このマップでは、 GameName というゲームタイプが使用されます。さらに、 BigHeadsInstagib というミューテータが加わります。このようにしてミューテータを加えるためのマップ URL は、通常、使用するミューテータをプレイヤーに選択させるメニューによって動的に生成されます。特定のゲームタイプのために「デフォルト」のミューテータを 1 つ以上ハードコード化することも可能です。そのためには、このゲームタイプのための InitGame() イベントの中に、これらのミューテータのための明示的な AddMutator() の呼び出しを追加します。