ここ3週間くらい、自宅でUDKを再学習しています。
以前UDKを使おうと思った時は「ライセンスの関係で、会社で使えないんじゃ意味ないなぁ〜」と思って放置してたんですが、最近「自宅でのリアルタイム表現の検証用には使えるかな?」と思いついて4Gamerのチュートリアルや、UDKの公式Webを見ながらフィールド作ったりして遊んでいます。
今回は、その過程で見つけたUDKの公式Webにある"EpicGames社のデザイン ワークフロー"ページが面白かったので、読み解いてみました。ここではBG制作を主軸にUnrealEngineを使用したゲーム制作フローが一通り紹介されています。(文中に”Gearsの時は〜”という記述があるので、多分Gears of War製作時のワークフローだと思います。)また、言葉だけでは各項目の関連性がわかりづらかったので、簡易的なフロー図も作ってみました。
Epicのゲーム制作は、まずゲームプレイのコンセプトから
Epicのゲーム制作は、ゲームプレイのコンセプト固めから開始し、コンセプトアート・プロトタイプ制作を経て完成まで持っていくという、日本の開発でも馴染み深いフローを採用しているようです。
海外のゲームはコンセプトアートや、プレイ体験からプロジェクトが始まるものも多いとLyeさんのIDA-10さんへのインタビューでも出てきたのですが、Gears of War のように新しい遊び(TPSでのカバーアクションや、ブラインドファイア)を入れる場合は、やはりゲームプレイのコンセプトを固める所から入るようです。
ゲームプレイのコンセプトはゲームデザイナと、プログラマで作り込む
ゲーム制作で一番最初に決める事となるゲームプレイのコンセプトは、レベルデザイナとプログラマが協力し、UnrealEngineを使用して試作品を製作するようです。
その際、KismetというUnreal Engine内での処理を記述するのに使われるビジュアルプログラミング環境を使用し、オブジェクトなどの挙動や、AI等を試作し、ゲームプレイのコンセプトを確かめていくようです。
Kismetとは?
Kismetには,以下の要素が含まれています。
* イベント:どういう条件で処理が始まるか
* アクション:実際の処理
* 条件:処理の振り分けなど
* マチネー:Unrealのアニメーション管理システム(後述)
* 変数:処理中に使われる値を保持し受け渡す
* オブジェクト:アクタや処理中の複雑な変数など
処理は必ずイベントから始まり,アクションはオブジェクトに結びついているので,どのオブジェクトの動作かを「Target」で指定します。処理の流れとデータの流れは色の違う線で結んでいきます。演算や比較では,AとBの2種類の変数が必要です。
どのような条件で呼び出すことができ,どのような動作をさせられるのかが分かれば,FPS以外にも簡単なゲームを組むことはできそうです。
フィールド制作の出発点は、コンセプトアートから
ゲームプレイのコンセプトが決まれば、次にコンセプトアートの制作に入るようです。コンセプトアートは、レベルデザイナとアーティストが協力して製作し、世界観の設定や、ゲーム中に登場するデザインオブジェクトの制作を中心に、ゲームプレイのコンセプトを踏まえたフィールドのコンセプトアートを制作します。EpicGamesではゲームプレイのコンセプトが完了するまで開始されないようです。
コンセプトアートを制作し、アートディレクターとデザイナーリードの承認を得れば、担当となるレベルデザイナと、BGアーティストに渡して、それぞれがコンセプトアートから情報を読み解いて、フィールド制作を進めていくようです。
Epicのモデル製作は、ハイポリゴンモデルが先
EpicGamesのモデル製作ワークフローはCharacterModeling2でも掲載されていたように、ハイポリゴンモデルを製作してから、ローポリゴンに落としていく、製作スタイルを取っているようです。
※画像をクリックすると大きく表示されます。
自分がよく聞く方法は
- ローポリゴンモデルの製作
- ハイポリゴンの製作
- ①で制作した、ローポリゴンモデルにノーマルマップの焼付け
(この後調整で行ったり来たりしますが…)
という所が多い(?)と聞きますが、海外ではまずハイポリゴンモデル製作が先に来ることが多いようです。そういえばCharacterModeling3で掲載されていたKILLZONE2のヘルガストスナイパーも、ハイポリゴンから製作していました。
軽くまとめ
評判通り凄いエンジンだと、改めて思いました。ゲームデザイナやアーティストの試行錯誤が、エンジン上である程度自力で再現できちゃうんですね…。凄い。しかもTPS・FPSを作る時はEpic Gamesで実際に使われたデータ制作フローを参考にできるので、これもなかなか強力…。
うぅん、このエントリまとめてわかったんですが、やはりこのエンジンは触り倒さないとダメみたいですね。まだまだ表面的な部分だと思うので、もう少し深い部分も理解出来るように頑張ってみようと思います。ひとまず、メインの目的としてはモデルをインポートして、マテリアルエディタで、シェーダを検証するみたいな部分がメインになるとは思いますがKismetも面白そうですし、うぅん…。ボチボチやってみます(汗)