,
FF14 RMT
植物のような複雑な形状のオブジェクトに対して、キャラクターの衝突判定を行おうとする良い方法として、ピッチングバッファと呼ばれる低解像度のバッファを用意し、衝突判定を行いたい植物などのオブジェクトをレンダリング、レンダリングしたピッチングバッファの画素を順にスキャンしていくことで、単純にオブジェクトの衝突判定が実現できるといった発表もされました
シリーズの狙いでは
・ゲームソフトパブリッシュのチャレンジ
・シリーズ化することでの知名度のアップ
・次々とリリースすることでインパクトを与える
・価格以上のクオリティーを保つことでのブランド構築
・ワールドワイド同時リリースによる宣伝効果のアップ
・自社IPを持つことで企業価値を高める
オンライン配信タイトル開発のメリットとしては
・開発コストの削減
・クオリティコントロール
・開発者のモチベーション維持
・マスターアップからリリースまで1か月
・開発者、開発チームのスキルアップ
などが挙げられていました
またGTF形式であればPS3上では読み込み速度が速くなるといった利点があるそうです
なお、PixelJunkでは、スキニングの処理を行う際にも高度な負荷がかかるため、PS3のSPUを用いて処理を行っているとのことです
その後PCビルドで使用するためにDDSのアルファチャネルのみ形式に変換、PS3ビルドではさらにそれをGTFという形式に変換するといった手法が公開されていました
具体的には
・ゲーム本来の楽しさを追求
・続編にとらわれないラインナップ」
・短い時間で何度も楽しめるリプレイ性
・ゲームを触ってみたくなるようなアイディア
・次世代機の技術を生かしたビジュアル&ゲームデザイン
といったものが挙げられました
配信部分でのワールドワイドの配信では、キュー・ゲームス社内には外国人スタッフが多いため、まず英語と日本語での開発を社内で行っているとのことです
この技法は、そのほかにも応用が可能とのことで、衝突判定を行ったときに、岩のような形状の変化しないオブジェクトと小さなキャラクターが衝突したというケースの場合、衝突した場所における岩の画像のディスタンスフィールドと衝突地点における岩の構成を調べることが可能となっているそうです
実際に植物をレンダリング際には、セグメントよりも細かい単位で植物のなめらかな曲線を補完しながらポリゴンを張るといった処理も行われています
またオンラインという特性上、パッチによるアップデートやアイテム配信なども実装しやすいとのことです
これはDistance fieldを用いることで、アンチエイリアシングをかけることができ、画素値の0が近い状態を抽出することで、エッジとして抽出された領域を曲線で滑らかに明度の変換を行うと、全体のサイズに対して細いアンチエイリアシングをかけることができる、オブジェクトをズームレベルに対して適切な幅でアンチエイリアシングをかけることができるそうです
PS3の特性を活かした開発
なお、PixelJunkではSPU1基のみで行っていはいますが、より複雑な処理を行いたいという場合は、SPUひとつでは足りないため、複数のSPUを用いた並列処理が必要となるそうです
最期に木下氏は「SPUは強力でSPU専用のチューニングをすれば、より早くなるし、手間はできるだけ多くのスクリプトに任せることで、生産性の向上などのメリットが生み出せるでしょう」といったコメントをし、講演は終了しました
今回のセッションでは、まず会社概要がシリーズコンセプトキュー・ゲームス スタジオディレクター 吉田謙太郎氏より説明されたほか、PixelJunkシリーズのコンセプトなどが語られました
プロジェクトごとのバージョン管理には、サブバージョンを使用しているとのことです
CEDEC初日19:40からキュー・ゲームスのスタッフによる「PixelJunk Edenにおける植物制御に関する技術解説」と題したセッションが行われました
また、衝突することで反発する方向などの計算にも使えるとのことです
PixelJunkでは、パーティクルシステムのシミュレーションを高速で行うためにSPU1基を用いているとのことで、重力や外力が加わる環境下でのパーティクルの挙動のシミュレーション、キャラクターとパーティクルの衝突判定を前処理のようにあらかじめ荒く判定を行っているそうです
このときにピッチングバッファにレンダリングする際に画素値として植物などのオブジェクトに番号などを割り当てることで、何に衝突したかを判定することができるとのことです
またステージ中に登場するアイテムのようなものにも衝突判定を行っており、パーティクルの判定の前処理部分では最終的にはPPU側でパーティクルをKd-Treeの形で構成し、あらかじめ衝突判定を行いたい領域をしてしています
そのほかにもPixelJunkは、ゲーム内のデータをスクリプト化しているため、追加のマップパックなどのリリースもスクリプトの追加などで行えるようになっているそうです
また、両ビルドで異なる点としては、PS3ではSPUを用いて、PCではGPUを用いたアルゴリズムなどで代用しているといった点が挙げられていました
PixelJunkでは、これらのデータのビルドシステムにはGNU Makeを用いているとのことで、たとえば画像素材であれば、デザイナーがTGAで用意をして、オリジナルの変換ツールでTGAの形に出力
そのためPixelJunkでは、データ内にムービーなどの巨大なファイルを内包することは極力避けており、代わりにオートプレイなどによるチュートリアルを実装しているそうです
Distance fieldの手法
講演では、サンプルにある画像を例に解説されており、画像の白い部分を感知し、黒い部分は元のフィールドよりも遠いという設定の元、アンチエイリアシングをかけています
これらは早い段階でユーザーからのフィードバックなどがあり、開発者のモチベーション維持にもつながるといった内容のほか、PS3のダウンロード販売は配信するデータ量にコストがかかるので、ファイルサイズには気を使うといった内容も語られていました
また現在では、『PixelJunk』シリーズの第一作目である『PixelJunk Racers』が2007年9月にPlaystation Storeで配信が開始され、その後『PixelJunk Monsters』そして今回のセッションのタイトルにもある『PixelJunk Eden』を配信しています
また、テキスト量が膨大にならないよう、開発の早い段階でテキストをフィックスし、意識して減らし、ローカライズしているといった内容が語られていました
SPU側で行う作業では、パーティクルの物理計算や大まかな衝突判定を行いたい領域をKd-Treeを構築しフラグを付けておくといった方法で計算されています
植物の表現
PixelJunk Edenに登場する植物の表現では、植物の枝を木構造上に組み合わせた形で表現しており、植物の動きの表現のためにブランチをセグメント単位で分割し、幾何学的なパラメータを持たせて制御するといった技法を使っているそうです
PCとPS3を使った開発
また、PixelJunkの開発はPCとPS3の両方で行っているとのことで、これはビルドが高速であるというメリットがあり、ステージデータのようなものはプログラムを走らせながら作業をする必要があるものはPCビルドを利用して作成されたそうです
反面のデメリットとしては、PCではSPUが使用できないため、これに伴う回避策が必要であったり、PCとPS3の両ビルドでは違う実装をしなければならない場合は保守が煩雑になるといったことがあったとのことでした
続いて登壇者はキュー・ゲームス プログラマ 木下直紀氏に代わり、セッションタイトルのPixel Junk Edenにおける技術解説が行われました
売上的な部分ではこれまでシリーズ3タイトルで累計一億円を超えており、オンライン配信タイトルでも、それなりの収益を見込めることが可能だということが語られていました
通常の場合はランタイムデータを管理するのであれば、サブバージョンで管理するとよいとのことですが、最初からデータが肥大化すると作業工程などにも遅れが出てしまうため、開発終盤まではチェックインするまではサーバーでファイルを管理してRSyncを使ってデータの同期を取っているといった内容が語られていました
ゲーム中の処理部分では、PPU側で基本的に各処理のタスク管理を行い、SPUでは各タスクやコンテキストを管理・処理しており、これによりPPUに余分な負荷をかけず、余裕のある処理が可能であるといった内容が語られました
キュー・ゲームスは今年で設立7年になるゲームディベロッパーで、代表作にはGBA『デジドライブ』、DS『スターフォックスコマンド』などがあり、そのほかにもPLAYSTATION3のXMBやミュージックビジュアライザーなども手掛けています
そのほかにもPixelJunkシリーズは、Youtubeへのアップロードやトロフィー機能など、意外と開発スケジュールに影響を与えず導入することができたといった利点があったそうです
木下氏の講演では、PixelJunkではいくつかの技術によって構成されており、その中にはDistance Field、植物制御に関するシミュレーション、SPUを用いた高速のパーティクルシステムなどが挙げられていました
さらにDistance fieldを用いた画像では、画像を拡大したときの境界線を滑らかに改善することができ、本来であれば128×128の画像を拡大したときにジャギーが目立ってしまいますが、Distance fieldを用いた画像であれば、滑らかなエッジで表現できるということのようです
Distance fieldは、入力画像に含まれるオブジェクトから各画像の距離を測定し、出力画像の画素として、白い領域のオブジェクトをDistance fieldに変換するといった技法です
大まかな領域に含まれるパーティクルをPPU側でKd-Treeを構成し最終的な衝突判定を行っているそうです
また、オブジェクトの境界線を符号付きの値を画素値として使用したうえで、その画素のオブジェクトの画像のエッジ抽出などを用いてアンチエイリアシングへの応用なども可能だとのことです
これはゲーム実行ファイルのようなコアな部分を変更するよりもかなり簡単にできるとのことです
なお、PixelJunkシリーズの各タイトルの開発期間は最大半年、スタッフ数はプランナー、アーティスト、プログラマーなど最小限に絞り、現在は2ライン順並行で開発を行っているとのことです
同様に音声はWAV系で作成し、PS3ビルドではAT3に変換するといった手法を取っているそうです