UDN
Search public documentation:

GearsModsJP
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 ホーム > Mod HomeJP > Gears of War Mod ホーム > Gears of WarのModオーサリング

Gears of WarのModオーサリング


はじめに


Unreal エンジンの MOD の開発は、まさに「やりがいのある」仕事です。昨今のゲーム業界の状況では、ゲーム愛好家や意欲的なゲーム開発者が世界中に自分の技量を知らしめるチャンスも開かれつつあります。このドキュメントは、MOD に関心があるユーザーを対象に、Gears of War のような Unreal エンジン ベースのゲーム制作の成功に不可欠の情報を提供することを意図しています。技術情報のほか、作業の開始に役立つ基礎も掲載されています。一生懸命やれば、MOD のオーサリングを通して「面白い」と感じるものが必ずあるはずです。

作業の開始前の心得や情報などの詳細については、はじめてみよう (Mod 開発コミュニティ) ページを参照してください。

注意


Gears of War エディタは「現状有姿」で提供されるものであり、いかなる保証も伴いません。Epic および Microsoft によるサポートも提供しておりません。

他の開発者の権利を尊重してください。カスタム コンテンツを利用可能にすることで、そのコンテンツに関する責任はお客様が単独で負うことになり、公開したコンテンツに対し必要なすべての権利を有し、あらゆる準拠法を準拠し、いかなる当事者の権利も侵害しないことに同意するものとします。

Microsoft Vista でマップをパブリッシュするために、管理者タイプのユーザーとしてゲームを開始しなければならない場合があります。これを実行するには、[Start] (スタート) -> [Run] (プログラム名を指定して実行) に進み、「=cmd=」と入力します。=cmd= を右クリックし、 [Run as Administrator] (管理者として実行) を選択します。 [Allow] (続行) をクリックして作業を許可します。ゲームのインストールディレクトリ (デフォルトは C:\Program Files\Microsoft Games\Gears of War) に進み、マップを作成してパブリッシュします (後述の「 パブリッシュ 」を参照)。

始める前のアドバイス


MOD の開発は、小さなものから始めることをお勧めします。最初からハードルを上げすぎると、そこに到達する途中で何度も苛立ちや失望を味わい、ビジョンを実現できずに終わってしまう可能性があります。それよりも段階的に小さな目標を立てて、それらを順々に達成していくのが良策です。まずは、大規模なゲームに展開できそうな簡単なアイデアから着手し、単独でリリースできる扱いやすい小さな量に分けて作業してください。大きなプロジェクトに取り組む場合は、搭載機能をリリーススケジュールに組み込みます。例えば、新しい武器を 5 つ提供する場合は、先に 2 つまたは 3 つでリリースし、それと並行して残りの武器の作業を続けます。マイペースで、長期的な展開を想定してください。

誰にでもアイデアがあります。「これこそ、他の誰も考えつかないような革新的な新しいゲームコンセプトだ」と思うものです。でも、クールな発想を持っている、というだけでは、ゲーム業界で頭角を現すことなど稀で、そのアイデアを実践するか、または役に立つスキルを提供することが出来なければなりません。これは MOD のオーサリングにも当てはまります。MOD 制作者として腕を磨き、名を知られるようになれば、実現してもらいたいアイデアを提供してくれる人たちも現れるでしょう。開発技術を持ち合わせていないアイデアマンまたはリーダーが先導するプロジェクトには、絶対参加してはいけません。Web デザイナーしかいないプロジェクトにも参加してはいけません。皆それぞれに独自のアイデアがあります。それらを小さなサイズに分けて慎重に取り組むことで、素晴らしいプロジェクトを開発できるのです。

MOD をリリースできなければ、それを開発する意味はほとんどない、ということを忘れないでください。迅速に何かをリリースできるようにタスク リストを調整し、MOD の成長に合わせて機能を追加または強化していきましょう。すべてが完璧になるまで MOD を出し惜しみしていると、何もリリースしないで終わりを迎えることになります。

アイデアが浮かんだら、どのようなタイプの MOD が自分に合っているかを選択する必要があります。それからすべてを準備し、ビジョンを現実に変えるタスクを開始します。

Modプロジェクトの設定


さて、そろそろ始めましょうか。最初に、Unreal エンジン ゲームが通常どのようにインストールされているかを理解する必要があります。次に、このゲームのどこに MOD ゲームが組み込まれるか、さらに、Unreal エンジンによるコンテンツのハンドリングについて、元の方法と新しい方法をそれぞれ把握します。その後で開発アプローチに応じてすべてをセットアップし、MOD の作成を開始します。

ディレクトリ構造

デフォルトでは、Gears of War は次のディレクトリにインストールされます。

C:\Program Files\Microsoft Games\Gears of War

ユーザー設定は次のディレクトリにユーザー単位で保存されます。

C:\Documents and Settings\<userID>\My Documents\My Games\Gears of War for Windows\WarGame\

ゲームを起動するには、デスクトップのショートカット アイコンをクリックするか、[Start] (スタート) メニューを使用するか、または次のコマンドを実行します。

Startup

ゲーム エディタの起動も、[Start] メニューから実行するか、または次のコマンドを実行します。

Startup editor -cookededitor -installed

デスクトップのショートカット アイコンをコピーして、名前を「_Gears of War Editor_」に変更することもできます。ショートカットを右クリックし [Properties] (プロパティ) を選択して [Target] (リンク先) を次のように変更します。

Startup editor -cookededitor -installed

効果を狙ってアイコン画像をを変更することもできます。ショートカットを右クリックして [Properties] (プロパティ) を選択します。_[Change Icon]_ (アイコンの変更) ボタンをクリックし、緑のエディタ ボタンを選択します。

パッケージ

パッケージはゲーム リソースのコレクションです。さまざまなタイプのアセット (テクスチャ、モデル、アニメーションサウンド、音楽、UI シーン) で構成することができます。パッケージのフォーマットはすべてのリソースで同じで、複数のリソース タイプをパッケージに組み込むことができます。Gears of War では作業環境を健全に保つために、パッケージをリソース単位で区分けし、Textures ディレクトリにはテクスチャを含むパッケージ、Sounds ディレクトリにはサウンドを含むパッケージ、のように格納しています。これらのパッケージに異なるタイプのコンテンツを格納することもできますが、同じファイル拡張子 (.upk) が付けられるので、同じタイプのファイルであると見なされます。

詳細については Unreal パッケージ ページを参照してください。

プログラミング

作業を始めるにあたり、各自で徹底的な調査が必要になります。時間をかけてフレームワークと使用可能なコードに精通しなくては、堅実な UnrealScript (Unreal スクリプト) プログラマーにはなれません。MOD のデザイン目標に関連した問題をクリエイティブに解決する方法を習得し、入手可能なツールを最大限に利用できるように実力を養ってください。

UnrealScript ソース ファイル

注意: UnrealScript ソースは Gears of War には利用できず、このゲームに関するプログラミングはサポートされていません。

コンテンツの作成

レベル

ゲーム エディタを使用すると、レベルは以下のディレクトリに保存されます。

C:\Documents and Settings\<userID>\My Documents\My Games\Gears of War for Windows\WarGame\Unpublished\CookedPC\CustomContent\Maps

ゲーム メニューにレベルが表示されるようにするには、CustomContent のサブディレクトリ (Maps など) に保存する必要があります。CustomContent ディレクトリに直接保存したものはすべて無視されます。制作する MOD の名前にふさわしい名前のディレクトリを作成することをお勧めします。

レベルの保存時には必ず正しいゲームモード接頭辞 (SP_ または MP_ など) を付けてください。

デフォルトでは、ゲームは Published ディレクトリ内でカスタムコンテンツを探しますが、ここで 3 つの選択肢があります。

  1. Setup.exe -useunpublished コマンドを実行し、_Unpublished_ ディレクトリの外に移動するように指図する。これは開発中のターンアラウンドタイム (所要時間) を短縮するのに最適な方法です。
  2. エディタの [Publish by Cooking] (クッキングしてパブリッシュ) ボタンを使用する。これにより、Unpublished ディレクトリのコンテンツが Published にコピーされ、ゲームは自動的にコンテンツを検出します。(ロードは速くなりますが、パブリッシュは遅くなります)
  3. エディタの [Publish by Copying] (コピーにしてパブリッシュ) ボタンを使用する。これにより、Unpublished ディレクトリのコンテンツが Published にコピーされ、ゲームは自動的にコンテンツを検出します。(パブリッシュは速くなりますが、ロードは遅くなります)

ゲームの初回起動時には、_CustomMaps_ フォルダのサブディレクトリを調べて、新しいレベルの存在を確認すると、レベル単位の設定 (.ini) ファイルを自動的に生成し、インゲーム UI を含むレベルを登録します。これらの設定ファイルを編集し、レベルの説明テキストなどを追加することができます。

パブリッシングとクッキング

CookedPC の命名規則は一見わかりにくいのですが、レガシーなので大人しくこれに従うのが一番です。パブリッシングとは、すべてのファイルを Published ディレクトリに置き、配布できるようにすることです。

PublishedUnpublished の動作に関する注意:ゲームエディタでコンテンツを保存すると、MOD 制作者の作業ディレクトリである Unpublished ディレクトリに書き込まれます。

C:\Documents and Settings\<userID>\My Documents\My Games\Gears of War for Windows\WarGame\UnPublished\CookedPC\
C:\Documents and Settings\<userID>\My Documents\My Games\Gears of War for Windows\WarGame\UnPublished\CookedPC\CustomContent\Maps\
C:\Documents and Settings\<userID>\My Documents\My Games\Gears of War for Windows\WarGame\UnPublished\CookedPC\CustomContent\Chars\
C:\Documents and Settings\<userID>\My Documents\My Games\Gears of War for Windows\WarGame\UnPublished\CookedPC\Localization\<LANGUAGE>\

-useunpublished フラグを指定してゲームを起動しない限り、当然ゲームは Published ディレクトリから起動します。MOD の典型的なワークフローはレベルとコンテンツの開発の繰り返しで、その間は -useunpublished を指定してゲームを起動します。MOD が準備できたら、最後の [Publish] (パブリッシュ) コマンドを実行し、_Published_ ディレクトリにコンテンツを書き込みます。配布用にはロード用に最適化されたこれらのファイルが使用されます。設定ファイルとローカライズしたテキスト ファイルは、手動でコピーする必要があります。

別の方法として、MOD 制作者はコンテンツを変更したときに、=-useunpublished= フラグを使わず [Publish] コマンドを実行してコンテンツを単独に実行することもできます。この方法では、MOD コンテンツはクックされずに Unpublished ディレクトリにコピーされ、ゲームは自動的にこれを認識します。最初の方法と同様に、MOD を配布する前に最後の [Publish] コマンドを実行することをお勧めします。

要約すると、=-useunpublished= フラグは作業中に MOD 開発者が何度もファイルをコピーしなくても済むためのショートカット、ということになります。

ローカライズ

MOD パッケージのローカライズ テキスト ファイルを作成したら、次のディレクトリに置く必要があります。

C:\Documents and Settings\<userID>\My Documents\My Games\Gears of War\WarGame\UnPublished\CookedPC\Localization\<LANGUAGE>\YourModName.int

配布

完成した MOD は、WinRAR などのユーティリティを使用して圧縮アーカイブにパッケージ化します。

命名規則

整合性および保全性上、何らかの命名規則やコーディング規格など、他のベストプラクティスをプロジェクトの開発初期に制定するのは非常によいことです。これにより、チーム メンバー全員が同じ規則のもとに作業できます。

疑問があるときは、Gears of War の付属コンテンツで Epic 社内での作業の進め方の例を参照してください。

利用可能なModタイプ


カスタム コンテンツ

Unis (ユニット) やスケールに関しては、いくつか配慮すべき事項があります。

  • 通常、建物の「フロア」は 256 Units でも快適です。
  • 下のカバーの高さは 96 Unreal Units (UU) で、マントル効果には 96 UU より浅くする必要があります。
  • Marcus や他のキャラクターの高さは 162 Unreal Units、衝突シリンダ (collision cylinder) の幅は 50 UU です。

通常、キャラクターや武器のようなカスタム コンテンツは Archetypes? (アーキタイプ) で作成できます。ゲーム内ではキャラクターは Pawn (ポーン) により表現され (WarPawn)、武器も同様に表現されます。この方法で、キャラクターまたは武器メッシュを自作してインポートしたカスタム モデルに変更することができます。作成したものはすべて、Kismet Scripting (キスメットスクリプティング システム) を使用して設定できます。Pawn の所有と、プレーヤーのインベントリへの武器追加を設定します。

レベル

コードを書かずに新しいコンテンツを作成するには、レベルを使うのが最適な方法であることは言うまでもありません。新しいレベルを切り出し、ゲーム付属の既存のコンテンツ アセットを使って装飾します。または、独自のテクスチャやモデル (静的メッシュ) を作成することもできます。

Gears of War のゲームプレイで忘れてはならない、非常に大切な点の 1 つはカバーシステムです。これは CoverLink (カバーリンク) アクタを使用して処理します。レベル内でボット キャラクターがカバーに使用するエリアに CoverLink を配置します。その他の関連アクタには、PathNode と Trigger (トリガ) があり、当然 PlayerStart (プレーヤースタート地点) も含まれています。キャラクターは SkeletalMeshActors (骨格メッシュ アクタ) として配置します。ライティングは、SpotLight、SpotLights および PointLights を使うか、またはライトから派生した他のアクタを使って処理します。

Campaign (会戦)

Campaign (会戦) ミッションでは、レベル内の進行には WarCheckpoint (戦闘チェックポイント) アクタを、シネマティクスには CameraActor (カメラアクタ) の使用をお勧めします。開始点として PlayerStart を設定することも大切です。

シングル プレーヤー レベルの大半ではこれはユニークなプロセスで、ほとんどが繰り返し作業です。初期デザインの区画分けが済めば、通常はそこから展開し、ゲームプレイがデザイン目標に合っているかどうかを判断し、必要に応じて修正を加えます。ゲームプレイが完成したら、コンセプトに基づいてデコレーションを加え、ビジュアルデザインを実装します。

Versus (対戦)

Versus (対戦) ミッションでは、WarTeamPlayerStart という特別なタイプの PlayerStart が必要です。これらのアクタの配置は慎重に検討する必要があります。また、TeamIndex を必ず 0 または 1 の値に設定し、チームが適切に配置されるようにします。追加武器の積み出しには WarWeaponPickupFactory アクタを配置し、WeaponPickupClass をスポーンさせたい武器のクラスに設定します。

さらに、レベルで重点を置く gametype (ゲームタイプ) を検討するのもいいアイデアです。利用可能なゲームタイプは以下のとおりです。

  • Warzone (戦闘地帯) - 激闘の、チームベースの決死戦 (チーム デスマッチ)
  • Assassination (暗殺) - 敵チームのリーダーを暗殺すると対戦に勝つ
  • Execution (処刑) - 敵を処刑してポイントを稼ぐ
  • Annex (領地併合) - 要所を占拠してポイントを稼ぐ
  • King of the Hill (お山の大将) - 固定地の攻略ポイントを陥落

マルチプレーヤー レベルのデザインに関するガイドラインの詳細は、Multiplayer Map Theory (マルチプレーヤー マップの理論) (Gears of War) ページを参照してください。

サンプル


新しいレベルの作成から始めます。_[File]_ (ファイル) メニューから [New] (新規) を選択します。

[View] (表示) メニューから [World Properties] (ワールド プロパティ) を選択し、レベルのプロパティを編集できます。_[World Info]_ (ワールド情報) セクションでは、*Author* (作者) や Title (タイトル) などの情報を入力します。対戦レベルの場合、必ず bIsMultiplayerMapGameTypesSupportedOnThisMap を選択してください。

サポートされている GameType のリストを次に示します。

Class'WarefareGameContent.WarGameAnnex'
Class'WarefareGameContent.WarGameConquest'
Class'WarefareGameContent.WarGameKillTheLeader'
Class'WarefareGameContent.WarGameResurrection'
Class'WarefareGameContent.WarGameTDM'

会戦レベル

基本

フロア

Cube (キューブ) のビルダブラシを右クリックして [Builder Brush - Cube] プロパティを開きます。以下の値を入力します。

  • X: 1024
  • Y: 1024
  • Z: 128

[Build] (ビルド) ボタンをクリックしてブラシを作成します。[CSG: ADD] (構成立体表現を追加) ボタンをクリックし、このフロア ジオメトリをワールドに追加します。

ライト

視界が良くなるようにライトが少なくとも 1 つ必要です。フロアのトップサーフェスを右クリックします。コンテキスト メニューの [Add Actor] (アクタ追加) メニュー項目から [Add Light (Point)] (ポイントライトを追加) を選択します。ライトの追加を繰り返すこともできますが、_[Edit]_ (編集) メニューから [Duplicate] (複製) を選択するか、または Ctrl+W を押して、選択したライト アクタの複製を作成することもできます。

マテリアル

フロアがよく見えるように、マテリアルを適用する必要があります。汎用ブラウザで [Material] (マテリアル) フィルタを選択します。COG_City_Architecture などのパッケージを右クリックし、コンテキスト メニューから [Fully Load] (完全にロード) を選択します。パッケージから COG_City_BaseMat_Metal_CP_Mat などのマテリアルを選択します。フロアのトップサーフェスを右クリックし、コンテキスト メニューから [Apply Material: COG_City_BaseMat_Metal_CP_Mat] を選択します。フロアをもう一度右クリックし、コンテキスト メニューから [Surface Properties] (サーフェス プロパティ) を選択してマテリアルのスケールを調整します。正しいサーフェスが選択されていることを確認してください。

スカイドーム

汎用ブラウザで、Environments\SkyDomes ディレクトリにある SkyDomes パッケージを開きます。すでに開いている場合は、完全にロードされていることを確認します。スカイドームは実際には静的メッシュなので、_[Static Mesh]_ フィルタを選択します。パッケージから NewSkyBox_DR_SMesh などのスカイドーム静的メッシュを選択します。ビューポートを右クリックし、コンテキストメニューから [Add StaticMesh: SkyDomes.NewSkyBox_DR_SMesh] メニュー項目を選択します。スカイドーム静的メッシュのスケール調整が必要な場合があります。これには、アクタを右クリックして_[StaticMeshActor Properties]_ を選択します。正しいアクタが選択されていることを確認してください。この場合は、他のアクタをスケールしないように 1 つだけ選択する必要があります。値を 1.5 にすると、フロアに対してドームがうまく収まります。

プレーヤースタート地点

フロアのトップサーフェスを右クリックし、コンテキスト メニューの [Add Actor] メニュー項目から [PlayerStart] (プレーヤースタート地点) を選択します。

ビルド

[Build] メニューから [Build All] (すべてビルド) を選択します。すべて首尾よくいけば、エラーは出ないはずです。エラーが表示された場合は、エラーを修正するかもう一度やり直します。

保存

[File] メニューから [Save As] (名前を付けて保存) を選択します。Maps ディレクトリに移動して保存します。適切な名前を付けてください。この場合は SP_Example でよいでしょう。

トライアウト

[Play in Editor] (エディタでプレイ) アイコンをクリックしてゲームを実行し、サンプルレベルを開始します。

アンビエンス (環境) とデコレーション

サウンド

汎用ブラウザの [Actor Classes] タブでは、AmbientSound (アンビエントサウンド) アクタは KeyPoint のサブクラスの 1 つです。AmbientSound (アンビエントサウンド) の下には AmbientSoundSimple (アンビエントサウンド シンプル) があり、その下には他のサウンド アクタ タイプがあります。AmbientSoundSimple を選択し、レベルの適切な場所を右クリックしてコンテキストメニューの [Add Actor] メニュー項目から [Add AmbientSoundSimple] を選択します。

メッシュ

ゲームにふさわしいビジュアル タイプでレベルを飾るために、メッシュを配置することができます。汎用ブラウザで、_[Static Mesh]_ フィルタを選択します。パッケージを見つけ、そこから目的の静的メッシュを選択します。レベルの適切な場所を右クリックし、コンテキスト メニューから [Add StaticMesh: (メッシュの名前)] を選択します。

カバー

セットアップ

カバーのセットアップでは、まず配置する静的メッシュを見つけます。

汎用ブラウザで [Static Mesh] フィルタを選択します。COG_Militech_Architecture_02 パッケージで、例えば COG_Militech_Timgad_W1_plantershort_SMesh などの静的メッシュを選択します。フロアのトップサーフェスを右クリックし、コンテキスト メニューから [Add StaticMesh: COG_Militech_Architecture_02.COG_Militech_Timgad_W1_plantershort_SMesh] を選択します。

CoverLinks (カバーリンク)

この段階でレベルをテストしてみると、プレーヤーには配置したばかりの静的メッシュのカバー コンテキストがないことがわかります。ここで必要なのは CoverLink アクタです。

配置

汎用ブラウザの [Actor Classes] タブでは、CoverLink アクタは NavigationPoint のサブクラスの 1 つです。CoverLink の下には CoverLinkDynamic があります。CoverLink を選択し、静的メッシュを右クリックしてコンテキスト メニューの [Add Actor] メニュー項目から [Add CoverLink] を選択します。カバースポットに面していることを確認してください。

デフォルトでは、CoverLink にはスロットが 1 つ (Slot 0) あります。スロットを追加するには、カバーリンクを右クリックし、コンテキスト メニューから [CoverLink Properties] (カバーリンク プロパティ) を選択してプロパティを編集するだけです。スロット情報は CoverLink セクションにあります。矢印をクリックすると、現在のスロットが展開されます。デフォルトではスロットは 1 つしかありません。省略記号ボタン (...) をクリックすると、右側に角カッコのアイコンと緑のプラス記号が表示されます。プラスアイコンはスロットを追加するのに使用し、カッコはスロットを削除するのに使用します。最後に、スロットの CoverTypeCT_Standing または CT_Midlevel のいずれかであることを確認します。

CoverGroup (カバーグループ)

CoverLink アクタを CoverGroup に割り当てることができます。汎用ブラウザの [Actor Classes] タブでは、CoverGroup アクタは Info のサブクラスの 1 つです。CoverGroup を選択し、グループに含めるカバーリンクの近くを右クリックして、コンテキスト メニューの [Add Actor] メニュー項目から [Add CoverGroup] を選択します。

CoverGroup に CoverLink アクタを追加するには、対象のCoverLink アクタを選択し、CoverGroup を右クリックします。コンテキストメニューの [Path Options] (パス オプション) メニュー項目にある [Complex Options] (詳細オプション) サブメニューから [CoverGroup: Add Links] を選択します。

ビルド

[Build] メニューから [Build All] (すべてビルド) を選択し、パスとライティングをリビルドします。

注意 : 長めのカバーにスロットが 2 つだけ手動で配置されている場合、パスをビルドする際にスロットが CoverLink アクタに自動的に追加されます。

編集のヒント

[Edit] (編集) メニューから Duplicate (複製) メニューを使用して (または Ctrl+W) スロットを複製することもできます。同じタイプのカバーを使用する場合はこの方法で時間を節約できます。マウスをミドルクリック (マウスの中ボタンのクリック) すると、サーフェスに合わせて CoverLink が調整され、可能な範囲で正しい設定が行われます。Alt キーを押しながらドラッグすると、スロットを素早く複製できます。

スロットを右クリックすると、コンテキストメニューに頻繁に使用するフラグの一部が表示されます。

"," キーを押しながらグラウンドをクリックして、新しいカバーリンクを同様に配置することもできます。

その他のヒント

90 度角の内側にカバーを配置する場合は、コーナー近くに 2 つのスロットを、それぞれの壁に面して配置します。ぴったりと重ね合わせないでください。重ね合わせると、カバーを リビルドするときにソーティング アルゴリズムがスロットの接続関係をうまく理解できず、面倒なことになりかねません。

コーナー エッジが追加されていて、カバースリップ (すべり) が可能なはずなのにそれが正しく認識されない場合は、(これが衝突の問題でないことを確認してから) そのカバーリンクの向きを変え、自動更新ではなく手動で更新し、カバースリップさせたい外側のカバースロットを選択して外側に向くように少しだけ回転します。ミドルクリックしてカバースリップが適用されることを確認します。うまくいくまでこの調整を繰り返します。カバースロットを軸から離れるように 2 度から 5 度回転させると、ゲームプレイでの違いはほとんど見られませんが、カバースリップできないために不満に思うプレーヤーも少なくありません。

AI は、カバースロット間の直線エリアではなく、カバースロットの位置しか取ることができません。そのため、カバースロットが 2 つだけの長い直線壁をビルドすると、スロット間に追加スロットが自動的に生成されます。手動で配置しても、それらは存在しません。

個々のスロットと同様、CoverLink アクタはパス ネットワークの一部です。CoverLink はリンク内のスロットと重ならないようにします。2 つのノードが重なると、AI が混乱します。

カバーエリアが既に設定されている場合、カバーリンクを移動することができます。TAB と CTRL キーを押しながらリンクを移動すると、スロットは元の位置のままマスター リンクオブジェクトだけ移動します。

カバー グループに関するヒント: 特定のカバースロットに進むように AI を指図する代わりに、1 つのエリアに「カバー グループ」アクタを配置して、特定のスロットではなくカバーエリアを参照することができます。指定半径内にすべてのカバースロットが含まれるようにカバー グループを設定することも、複数のカバーリンクとカバー グループ アクタを手動で選択し、グループを右クリックして選択されているカバーリンクをグループに追加することもできます。カバー グループには半径と手動リンクを同時に指定することができ、2 つの方法はお互いに矛盾するものではありません。カバー グループにリンクを含めると、カバー グループが参照するすべてのリンクに向かって点線が表示されます。半径設定を使用する場合は点線は表示されませんが、カバースロットは同様に参照されています。

通常 CoverLink で設定されるフラグは、2 つのノード間の任意の地点で有効です。例えば、4 つのスロットを持つまっすぐなカバーを想定してください。スロット 3 だけに "allow mantle" (マントル可能) が設定されている場合、そのスロットの真上に移動しなければマントルできません。スロット 3 と 4 にマントル効果が設定されている場合、2 つのスロット間の任意の場所でマントルできます。つまり、基本的にプロパティ フラグの設定に関しては、カバースロットが 1 つではあまりプレーヤーの役に立ちません。そのスロットのちょうど真上に位置する可能性が低いためです (AI ならばこのぐらいの精度で使用できますが)。

シングルプレーヤーの場合はストリーミングに注意してください。エディタ内のすべてのレベルチャンクが見えていない状態で、誤ってカバーをリビルドすることがよくあります。その結果、現在「見えていない」ものに対する自動配列が実行され、一部のカバーが簡単にめちゃくちゃになってしまいます。

武器

武器の配置は WarWeaponPickupFactory アクタにより処理されます。

配置

汎用ブラウザの [Actor Classes] タブでは、PickupFactory アクタは NavigationPoint のサブクラスの 1 つです。PickupFactory の下には WarPickupFactory があり、これにより、武器や弾薬など、Gears of War に特有の各種のファクトリ タイプを選択できます。WarWeaponPickupFactory を選択し、フロアのトップサーフェスを右クリックしてコンテキストメニューの [Add Actor] メニュー項目から [Add WarWeaponPickupFactory] を選択します。このアクタは、スポーンされる武器 (WeaponPickupClass) を設定するまで役に立ちません。武器を設定するにはこれを右クリックし、コンテキストメニューから [WarWeaponPickupFactory Properties] を選択して WarWeaponPickupFactory プロパティを編集するだけです。*WeaponPickupClass* プロパティは [WarWeaponPickupFactory] セクションにあります。

ビルド

[Build] メニューから [Build All] を選択し、このアクタを追加して作成された新しいパスをリビルドします。

スクリプティング

ゲームプレイのスクリプティングはエディタで Kismet (キスメット) を使用して作成します。メイン ツールバーのアイコンをクリックして Kismet を開きます。通常ゲームプレイは、イベントとアクションのほかに各種の条件により記述します。

トリガ

トリガは、レベル内のイベントやアクションとやり取りするための一般的な方法です。

フロアのトップサーフェスを右クリックし、コンテキストメニューの [Add Actor] メニュー項目から [Add Trigger] (トリガを追加) を選択します。他の Trigger アクタも利用できます。汎用ブラウザの [Actor Classes] タブで、[Trigger] を見つけます。そこに Trigger クラスの他のサブクラスも表示されています。

Kismet では、最近配置した Trigger アクタのイベントを処理することができます。エディタのワークスペース エリアを右クリックすると、コンテキストメニューに [New Event Using Trigger0] (トリガ0 を使用する新規イベント) が表示されます。_Touch_ など、使用可能なイベントのメニュー項目があります。

AI

CoverLinks と武器はいずれも AI パスネットワークの一部で、NavigationPoint アクタのサブクラスです。AI は敵またはチームメートに使用できます。

パスノード

フロアのトップサーフェスを右クリックし、コンテキストメニューの [Add Actor] メニュー項目から [Add Path Node] (パスノードを追加) を選択します。パスノード アクタの複製を作成し、レベル周囲に配置するのは良いアイデアです。

トリガ

レベルに Trigger アクタを配置します。

スクリプティング

Kismet を開きます。

この作業にはいくらでも熱中できますが、ここでは基本的なセットアップを紹介します。

ワークスペース エリアを右クリックし、コンテキストメニューの_[New Action]_ (新規アクション) メニューの [AI] サブメニューから [AIFactory] (AI ファクトリ) メニュー項目を選択します。[AIFactory Action] プロパティで、*[SpawnSets]* プロパティを見つけます。ここではスポーンされる AI のタイプを選択できます。レベル内で AI のスポーンが可能な領域 (通常はパスノード アクタを経由) を選択します。[AIFactory Action] の [Spawn Points] アウトプットを右クリックし、コンテキストメニューから [New Object Vars Using...] (新規オブジェクト変数...) を選択します。AIFactory がスポーンをトリガするには、例えば [Level loaded and visible] (レベルロード済みで表示) の Kismet イベントを作成し、マップの開始時にスポーンするようにするか、またはレベルで Trigger アクタの Touch イベントを作成することができます。

チェックポイント

チェックポイント作業については、特に洗練された方法はありません。本質的にこれらはほとんど Kismet により決まるもので、スクリプト作業が多くなる可能性があります。

配置

汎用ブラウザの [Actor Classes] タブでは、WarCheckPoint アクタは PathNode のサブクラスで、PathNode はNavigationPoint のサブクラスのです。WarCheckPoint を選択し、レベルの適切な場所近くを右クリックしてコンテキストメニューの [Add Actor] メニュー項目から [Add WarCheckPoint] を選択します。

スクリプティング

通常は、_[Level Loaded and Visible]_ (レベルロード済みで表示) というイベントを常に使用してください。すでに使用されていない [Level Beginning] (レベル開始) もありますが、これは、この古いいイベントを偶然使用していた何かを壊さないために残してあるだけです。

Kismet でワークスペース エリアを右クリックします。コンテキストメニューの Warfare (交戦) サブメニューに [Set Active Checkpoint] (アクティブなチェックポイントを設定) アクションがります。_[Level Loaded and Visible]_ のアウトプットを [Set Active Checkpoint] のインプットに接続します。チェックポイント アクタを選択し、イベントの下の方を右クリックしてコンテキストメニューから [New Object Var Using WarCheckpoint0] (WarCheckpoint0 を使用する新規オブジェクト変数) を選択します。

Set Active Checkpoint がトリガーされると、自動的に Checkpoint Activated イベントを起動します。そこから、例えばチェックアウトをクリーニング、新しいパスウェイを開くなど、他のアクションが発生するようにスクリプトを追加できます。

チェックポイントは PIE (Play-in-Editor) では機能しないため、エディタを終了して通常のゲーム内でマップを実際に試してみて、動作を確認する必要があります。そのためには、有効なプレーヤー プロファイルも必要です。

シネマティクス

ストリーミング

マルチプレーヤー マップは 1 つのレベルで構成されます。マルチプレーヤー マップの各ルームを個別のストリーミング レベルとして作成してから、最後に組み合わせます。

シングルプレーヤー マップは分割可能で、そのトリックを使う方がレベルのセクションを繰り返し作成するよりも作業が楽になります。例えば多くの内包マップには、サブレベルだけが追加され "_P" マップが複数存在します。これは、マップ全体を何度もリビルドせず、迅速に作業してリビルドし、ライティングを確認できるように、レベルデザイナーが作成したものです。

対戦レベル

基本

フロア

Cube (キューブ) のビルダブラシを右クリックして [Builder Brush - Cube] プロパティを開きます。以下の値を入力します。

  • X: 2048
  • Y: 1024
  • Z: 128

[Build] (ビルド) ボタンをクリックしてブラシを作成します。[CSG: ADD] (構成立体表現を追加) ボタンをクリックし、このフロア ジオメトリをワールドに追加します。

ライト

視界が良くなるようにライトが少なくとも 1 つ必要です。フロアのトップサーフェスを右クリックします。コンテキスト メニューの [Add Actor] (アクタ追加) メニュー項目から [Add Light (Point)] (ポイントライトを追加) を選択します。ライトの追加を繰り返すこともできますが、 [Edit] (編集) メニューから [Duplicate] (複製) を選択するか、または Ctrl+W を押して、選択したライト アクタの複製を作成することもできます。

マテリアル

フロアがよく見えるように、マテリアルを適用する必要があります。汎用ブラウザで [Material] (マテリアル) フィルタを選択します。COG_City_Architecture などのパッケージを右クリックし、コンテキスト メニューから [Fully Load] (完全にロード) を選択します。パッケージから COG_City_BaseMat_Metal_CP_Mat などのマテリアルを選択します。フロアのトップサーフェスを右クリックし、コンテキスト メニューから [Apply Material: COG_City_BaseMat_Metal_CP_Mat] を選択します。フロアをもう一度右クリックし、コンテキスト メニューから [Surface Properties] (サーフェス プロパティ) を選択してマテリアルのスケールを調整します。正しいサーフェスが選択されていることを確認してください。

スカイドーム

汎用ブラウザで、Environments\SkyDomes ディレクトリにある SkyDomes パッケージを開きます。すでに開いている場合は、完全にロードされていることを確認します。スカイドームは実際には静的メッシュなので、 Static Mesh フィルタを選択します。パッケージから NewSkyBox_DR_SMesh などのスカイドーム静的メッシュを選択します。ビューポートを右クリックし、コンテキストメニューから [Add StaticMesh: SkyDomes.NewSkyBox_DR_SMesh] メニュー項目を選択します。スカイドーム静的メッシュのスケール調整が必要な場合があります。これには、アクタを右クリックして [StaticMeshActor Properties] を選択します。正しいアクタが選択されていることを確認してください。この場合は、他のアクタをスケールしないように 1 つだけ選択する必要があります。値を 1.5 にすると、フロアに対してドームがうまく収まります。

プレーヤースタート地点

汎用ブラウザの [Actor Classes] タブでは、PlayerStart アクタは NavigationPoint のサブクラスの 1 つです。PlayerStart の下に WarTeamPlayerStart があります。プレーヤーはこれを使用して COG または Locust チームのいずれかに参加できます。WarTeamPlayerStart を選択し、フロアのトップサーフェスを右クリックして、コンテキストメニューの [Add Actor] メニュー項目から [Add WarTeamPlayerStart] を選択します。デフォルトではチームはゼロです。チームを設定するにはこれを右クリックし、コンテキストメニューから [WarTeamPlayerStart Properties] を選択して WarTeamPlayerStart プロパティを編集するだけです。*Team* プロパティは [WarTeamPlayerStart] にあります。

通常は、いずれかのチームをレベルの一方の端に割り当て、チームあたり 2、3 のプレーヤースタート地点を配置するのが一番よい方法です。

ビルド

[Build] メニューから [Build All] (すべてビルド) を選択します。すべて首尾よくいけば、エラーは出ないはずです。エラーが表示された場合は、エラーを修正するかもう一度やり直します。

保存

[File] メニューから [Save As] (名前を付けて保存) を選択します。Maps ディレクトリに移動して保存します。適切な名前を付けてください。この場合は MP_Example でよいでしょう。

トライアウト

[Play in Editor] (エディタでプレイ) アイコンをクリックしてゲームを実行し、サンプルレベルを開始します。

カスタム キャラクター

Gears of War のカスタム キャラクターに関する作業を始める前に、次の概要を参照して役立ててください。