入門編: ゲームプレイ要素
概要
「Unreal Engine 3」または「Unreal Development Kit」で作成されたほとんどすべてのゲームには、共通するゲームプレイ要素があります。それらのゲームプレイ要素をカスタマイズすることによって、ゲームは完全にユニークなものになり、望みどおりの見た目と機能を実現できます。まったく同じプロジェクトというものは存在しません。したがって、「Unreal Engine」はゲームプレイ要素のデフォルトの実装を提供しますが、ゲームの設計に忠実であるならば、ゲームプレイ要素それぞれに変更を加える必要が出てくるはずです。
基本 : ゲーム開発のクイックスタート のページでは、自身のカスタムのゲームプレイ クラスを作成し、プロジェクトを立ち上げて実行することに慣れることができます。このページでは、モバイル用、 PC 用に限らず、空のゲーム フレームワーク (ただし、3 人称視点) を作成し、必要に応じてカスタマイズする方法について詳細に説明しています。
ゲームタイプ (Gametype) の外観
ゲームタイプは、ゲームのルールを規定します。ゲームタイプはゲームの構造を決めるとともに、本質的に、「Unreal Engine 3」で作られるあらゆるゲームの基礎となります。「Unreal Tournament 3」のようなゲームは、どのようなゲームタイプを目指しているのかはっきりしています。メニューから直接選択できるゲームタイプはいくつかあります。たとえば、Deathmatch (デスマッチ)や Capture the Flag (旗取り) などです。他のゲームは、ゲームタイプがそれほどはっきりしていない場合があります。たとえば、1 人用のプラットフォーマー ゲームを例にとってみます。プレイヤーの目にはゲームタイプがはっきりとしません。しかし、ゲームのルールと現在のレベルをクリアする条件は確かに存在しています。それは、プレイヤーに課せられた時間制限かもしれません。また、ある地点に到達するかボスキャラを倒したときにレベルをクリアしたことになるかもしれません。これらは、ゲームタイプによって明確化されるとともに記録の対象となる類いの要素です。もっと複雑な例としては、ダンジョンゲームをあげることができます。メインとなる世界には中心となるゲームタイプがあり、それに基づいてゲームの進行と状態が記録されます。それぞれのダンジョンでは、ダンジョン固有のゲームタイプを設定することができます。それによって各ダンジョンは完全にユニークなものになり、独自のルールと目的が備わります。
GameInfo
ゲームのゲームタイプは、GameInfo クラスによって制御されます。ゲームに含めるゲームタイプそれぞれに対して、このクラスの派生クラスが新たに作成されます。1 個のゲームは多数のゲームタイプを持つことができます。ただし、どの時点においても、使用されるゲームタイプは 1 つだけです。ゲームプレイの UGameEngine::LoadMap() のためにレベルが初期化されたときに、GameInfo アクタはインスタンス化されます。このゲームタイプは他の指定がない限り、このレベルの間中、使用されることになります。
通常、このクラスは以下の事項の処理を行います。
- プレイヤーがスポーンする位置の決定
- 適切なインベントリ アイテムをプレイヤーに与える
- 時間制限を設定する
- プレイヤーのスコア / キル (倒した数など) を記録する
- 必要な場合にレベルをリセットする
- ゲームの終了条件と照合する
また、このゲームタイプは以下のクラスも指定します。すなわち、プレイヤーを構成するために使用するクラス、使用すべき HUD のクラス、ゲームタイプそれぞれを完全にユニークなものにするその他クラスを指定します。
ゲームタイプおよび GameInfo クラス、カスタムのゲームタイプを作成する方法については、 ゲームプレイ 技術ガイド のページに詳しい解説が掲載されています。
プレイヤーの概観
「Unreal Engine」によるゲームのプレイヤーはそれぞれ、連携して一緒に機能する複数のシステムから構成されています。これらのシステムは、プレイヤーの見た目と行動、またワールドがどのように表示されるかやゲームをプレイしている人からの入力をどのようにゲーム内の行動に変換するかといったものを制御しています。
PlayerController
「Unreal Engine 3」のプレイヤーおよび他のエンティティは通常 Controller によって制御されます。 Controller はエンティティの頭脳となってエンティティの行動を規定します。プレイヤーは自身の特別な Controller として PlayerController を持っています。これは、ゲームをプレイしている人からの入力を受け取り、ゲーム内の行動に変換することができます。
Pawn (ポーン)
PlayerController がプレイヤーの頭脳であるならば、 Pawn は、ゲーム内においてプレイヤーや他のエンティティの物理的な表現物、すなわちボディに相当します。 Pawn は Controller からコマンドを受け取り、実行します。アニメーションやダメージ、さらにプレイヤーの身体に関係する他の事柄が処理されるのは、この Pawn においてです。
プレイヤーのシステム、 Controller や Pawn 、カスタムのプレイヤーやキャラクターを作成する方法についての詳細は、 キャラクター技術ガイド のページを参照してください。
カメラ
プレイヤーのワールドへの視界は、カメラシステムと Camera クラスによって制御されます。このクラスは、ワールドをビューポートにレンダリングする際に、始点となる位置と回転を指定します。本質的には、プレイヤーの眼となるものです。カスタマイズされた Camera クラス (完全にカスタマイズされたカメラシステム) を使用することによって、まったく新しくユニークな種類の視界を作成することができます。たとえば、デフォルトの視界は一人称の視点であり、プレイヤー自身は見えません。ゲームをプレイしているユーザーが、ゲーム内のプレイヤーの目を通して直接見ているかのような効果を演出します。カスタムの Camera を使用すると、ゲーム内のプレイヤーからの視点を簡単に変更することができます。プレイヤーは、ゲーム内のキャラクターをワールドと一緒に見ることができるようになるのです。トップダウンパースペクティブや横スクロール視点、等角投影法などの他の視界も簡単にこのシステムで実現できます。
入力
PlayerController は、ゲームをプレイしている人からの入力を受け取り、ゲーム内の行動に変換することができます。この入力は、 Input クラス (特に PlayerInput クラス) によってもたらされます。このクラスは、コントローラーやキーボード、マウスにおいてボタンやキーが押下されると、その情報を受け取って利用可能なデータに変換します。これによって、このデータは、それを適切に処理する PlayerController で利用できるようになります。入力は、2 つのことがらに密接に関係します。1 つはカメラシステムであり、もう 1 つはプレイヤーによるゲームの眺め方です。というのも、異なる視点をとると、通常はプレイヤーを制御する方法も異なるからです。こられは別々のシステムですが、大概の場合、カメラの視点を大きく変更すると、ユーザーによる入力を使用してプレイヤーを制御する方法も大きく変えなければなりません。
カメラシステム、 Camera クラス、カスタマイズされたカメラの視点とプレイヤーの制御については、その詳細が カメラの技術ガイド のページに掲載されています。
HUD と UI の概要
ヘッドアップディスプレイ (HUD) とは、ゲームプレイ中にスクリーン上でオーバーレイ表示されるステータスと情報のことです。HUD の目的は、プレイヤーに対して現在のゲームの状態 (すなわち、スコア、ヘルス値、残り時間など) を知らせることにあります。HUD は通常インタラクティブではありません。したがって、プレイヤーが HUD 上の要素をクリックすることはありません。ただし、ある種のゲームでは、ユーザーインターフェースと見分けることが難しいくらいに、どちらともつかない HUD になることがあります。
ユーザーインターフェース (UI) とは、メニューや他のインタラクティブな要素のことを指します。これらの要素はたいてい HUD と同じようにスクリーン上にオーバーレイ表示されます。ただし、ある状況下では、ゲームのワールドそのもののとして、ゲーム内のサーファスにレンダリングされることがあります。UI の典型的な例としては、ゲームが起動したときに表示されるメインメニューや、プレイヤーがゲームを休止したときに表示されるポーズメニューをあげることができます。ただし、他の UI はプレイ中に表示されます。それらの UI はキャラクター間の会話を表示するために使用されます。また、より複雑な状況においては (RTS や RPG などの場合のように)、ゲームプレイ自体に統合されることによって、プレイヤーが武器や防具、作成する部隊を選択できるようになります。
HUD
HUD クラスは、スクリーン上にオーバーレイされる要素を表示するための基本クラスです。ゲーム内のあらゆるプレイヤーは各自でHUD のインスタンスを持っていて、それらは各自のビューポートに描画されます。HUD の種類 (すなわちクラス) は使用されるゲームタイプによって指定されます。
HUD クラスおよび、HUD クラスのカスタマイズに関する詳細は、 HUD 技術ガイド を参照してください。
HUD によってスクリーン上に要素を表示させるには 2 つの方法があります。1 つは、Canvas による描画で、もう 1 つは Scaleform GFx のムービーです。
Canvas
Canvas クラスには、テキストと画像をスクリーン上に (または スクリプト化されたテクスチャ を使って他のサーファス上に) 描画するための機能がすべて含まれています。描画ループを通じて毎回新たな Canvas が HUD に割り当てられ、必要な要素をスクリーン上に描画するために使用されることができます。
Canvas クラスの詳細、およびそれを使用してスクリーン上に描画する方法の詳細については、 Canvas (キャンバス) 技術ガイド のページを参照してください。
Scaleform (スケールフォーム)
Scaleform GFx が「Unreal Engine 3」にインテグレート (統合) されたため、Adobe Flash Professional で作成されたモーショングラフィックスを利用して、インゲームの HUD および UI を作成することができます。これは、ムービーおよびムービープレイヤー、ムービー内に含まれている個々のオブジェクトを表現するクラスの集まりです。ムービープレイヤーをカスタマイズされた HUD 内に作成することによって、どのムービーをゲーム内で再生するかということを完全に制御することが可能になります。
Scaleform および「Unreal Engine 3」へのインテグレーション (統合) に関する詳細は、 Scaleform のページを参照してください。
Scaleform システムの技術的側面については、 Scaleform の技術ガイド のページで詳解されています。
Important!
You are viewing documentation for the Unreal Development Kit (UDK).
If you are looking for the Unreal Engine 4 documentation, please visit the Unreal Engine 4 Documentation site.