UDKを使ってみよう!【基礎編】 ・・・「Unreal Japan News」第42回 | GameBusiness.jp

UDKを使ってみよう!【基礎編】 ・・・「Unreal Japan News」第42回

その他 その他

前回に引き続きUDKの使い方を実践的に説明していきます。
  • 前回に引き続きUDKの使い方を実践的に説明していきます。
  • 前回に引き続きUDKの使い方を実践的に説明していきます。
前回に引き続きUDKの使い方を実践的に説明していきます。

今回は実際の制作に入りたいところなのですが…アンリアル・エンジンで使われている言語とプロジェクト構成について説明しておいたほうが理解が早まると思われるので、まずはその説明をさせていただきつつ、ゲーム制作のさわりをできればと思います。

■UDKで使われているコンピューター言語

UDKの場合Kismetというグラフィカルにゲームのロジックを組む機能が備わっていますが、プログラミング言語としては、アンリアル・スクリプトというクラスベースのオブジェクト指向言語が備わっています。

このオブジェクト指向言語については真面目に説明すると凄く長くなってしまうので、詳しくはウィキペディアをご覧ください。
・ウィキペディア:オブジェクト指向プログラミング
・ウィキペディア:クラス

今回のキーワードは「クラス」と「継承」です。

オブジェクト指向言語の中に、クラスと継承という概念があり、あるデータ構造と機能をまとめ持ったものをクラスといい、似通ったデータ構造や機能を作成する場合はそのクラスを継承して似通ったクラスを作成していく、というものなのですが、UDKのプロジェクト・ディレクトリの分割単位もある種の機能群でまとめられていて、さらに別のプロジェクト・ディレクトリでそれらを継承・利用する機能群をまとめていくという構成になっています。

そして、UDKのプロジェクトはUnreal Tournamentというゲームが元になっていまして、実行ファイルこそUDK.exeという名前になっていますが、ゲーム本編を司どるプロジェクト・ディレクトリ名はUTGameとなっていて頭についているUTというのがその名残りとなっています。

■プロジェクト・ディレクトリの大まかな関係

UDKをインストールしたディレクトリを覗いてみると、以下のようになっているかと思います。



この中でも重要なディレクトリはDevelopment\Srcの中の以下の5つです。
・Coreで、純粋なオブジェクトやアルゴリズムクラス群を定義しています
・Engineで、Coreのクラス群を継承・利用し、ゲームエンジンの基本クラス群を定義しています
・GameFrameworkで、Engineのクラス群を継承・利用しゲームのためのフレームワーク(骨格)をなすクラス群を定義しています
・UDKBaseで、GameFrameworkのクラス群を継承・利用し、UDKのための基本的なクラス群を定義しています
・UTGameでUDKBaseを継承・利用した実際のゲームを定義しています

UTGame→UDKBase→GameFramework→Engine→Core

という相関関係になります。

■クラスの関係

上記のプロジェクト・ディレクトリの中にさらに沢山のクラス群があるのですが、中でもUDK上にゲームを組み上げるために肝になるクラスは次のファイル群で構成されています。これらを継承していくことでゲームを制作できます。

・Development\Src\Core\Classes\Object.uc
・Development\Src\Engine\Classes\GameInfo.uc
・Development\Src\Engine\Classes\Actor.uc
・Development\Src\Engine\Classes\Camera.uc
・Development\Src\Engine\Classes\Pawn.uc
・Development\Src\Engine\Classes\Controller.uc
・Development\Src\Engine\Classes\PlayerController.uc
・Development\Src\Engine\Classes\PlayerInput.uc
・Development\Src\Engine\Classes\AIController.uc

継承関係は以下のようになっています。

・Objectクラスがベースにあり
・Objectを継承して、位置情報を持ったActorや、Input、GameInfo等を作成
・Actorを継承して、ゲーム中のオブジェであるPawnやContorllerやCamera
・Controllerを継承して、PlayerControllerやAIControllerを作成されています

さらに技術的な事を詳しく知りたい方は以下のページも覗いてみてください。

・「テクニカル&プログラミングホーム」
http://udn.epicgames.com/Three/TechnicalHomeJP.html
・「UnrealScript」
http://udn.epicgames.com/Three/UnrealScriptHomeJP.html

■アンリアル・スクリプトのコードを書いてみよう

それではここから、アンリアル・スクリプトを使って、サードパーソン視点の独自のゲームを構築してみたいと思います。今回冒頭で述べさせて頂きましたように、アンリアル・スクリプトはクラスを継承して、少ない手間で似通ったクラスを構築することができますので、UDKのデフォルトのファーストパーソン視点のゲームからサードパーソン視点のゲームにするには数十行のコードを書くだけで可能です。

とはいえ、こちらのGameBusiness.jpページにつらつらとアンリアル・スクリプトを書いてしまうのもどうかと思いますので…実は、弊社のドキュメントサイトで実際にサードパーソン視点の独自のゲームを作成するための手順がドキュメント化されていますので、ここではそのドキュメントへのリンクを掲載しておきたいと思います。



・「基本:ゲーム開発のクイックスタート」
http://udn.epicgames.com/Three/BasicGameQuickStartJP.html

上記ページに記載されている手順を行うだけで、皆さんの独自のゲーム(上記ドキュメントの場合UDNGame)をサードパーソン視点でプレイができるようになります。

ぜひ、試してみてください!

■次回予告

次回はレベルデザイン(ゲームのステージの設計・構築)やさらに深い説明等、より実践的な内容に入っていきたいと思います。GameBusiness.jp 「Unreal Japan News(エピック・ゲームズ・ジャパン)」の今後にもぜひご注目ください。
《下田純也》

関連ニュース

特集

人気ニュースランキングや特集をお届け…メルマガ会員はこちら