Xbox LIVEインディーズゲームの上限容量と上限タイトル数の引き上げ

 Xbox 360Xbox LIVEインディーズゲームにおける上限容量と上限タイトル数の引き上げが発表されました。

  • 240MSPまたは400MSP設定のゲームタイトルの提出時のCCGAMEパッケージのファイルサイズが、最大500MBに引き上げられました。(これまでは最大150MBでした)
  • 80MSP設定のゲームタイトルの提出時のCCGAMEパッケージのファイルサイズが、最大150MBに引き上げられました。(これまでは最大50MBでした)
  • 登録できるゲームが、最大20タイトル/アカウントに引き上げられました。(これまでは最大10タイトル、XBLIG開始当初は最大8タイトルでした)
タイトル価格設定 新ファイルサイズ上限 旧ファイルサイズ上限
240MSP, 400MSP 〜500MB 〜150MB
80MSP 〜150MB 〜50MB

 以前の制限では、特に80MSPで画質や音質を確保しようとすると、すぐに50MB上限いっぱいになっていましたし、容量が厳しいという声も耳にしていました。
 これは開発者に嬉しい変更点ですね。

訂正: 240MSPと400MSP設定にはファイルサイズに下限があるという情報は誤解のため、内容を修正しました。また、変更はすでに有効になっている模様です。

公式ニュース記事 http://create.msdn.com/ja-JP/home/news/indie-newyear-2012

Sunflowでレンダリング

 「sftdlgMQでレンダリング」( http://d.hatena.ne.jp/XELF/20111206/1323152325 )に続いてレンダリングを試してみました。
 今回は、3Dレンダラー「Sunflow」のシーンファイルを書き出すMetasequoiaスクリプト「ExportSunflowScene.py」(仮)を作成して、
Sunflow v0.07.2を使って、Lulieをレンダリングしました。


エクスポートの対応内容

  • カメラ設定→ピンホール・カメラ
  • sunsky光源(固定)
  • 平行光源(パラメータ変換の詳細は未検証)
  • メッシュ
    • 頂点の「位置」「法線の生成」「テクスチャ座標」
    • 面→三角形(Sunflowは両面描画になるようです)
  • 材質(拡散色・スペキュラ・テクスチャ)→フォンシェーダ
  • Sunflow(v0.07.2時点)テクスチャのアルファは将来対応らしいので、テクスチャのアルファ部分は非対応です。
  • ファイルパス固定

 画像は、対応機能の強化とレンダリングを交互に行ってできた結果をレイアウトしたものです。画像によって、「光源」「法線」「サンプル数」などが変化しています。

この手法での弱点

  • Sunflow v0.07.2でのテクスチャのアルファ未対応。
  • Metasequoia Ver3.0 Beta11のスクリプトに、GUIをサポートをするAPIがないので、変換の詳細設定の方法や、保存ファイルの選択が課題になる。
  • Metasequoia/Keynoteプラグインのモーションの姿勢を適用する手間。手動の「Freeze」行程が必要になる。

縁取りやドロップシャドウつきの特別な文字列描画に挑戦

 前回の「エンボス in 3Dモデル」の本来の目標としてた特別な文字列描画プログラムができました。前回の「エンボス in 3Dモデル」で文字の3Dモデルを作って使うものです。
※「エンボス in 3Dモデル」のプラグインには、文字サイズを特定するために、加工前に境界箱情報を生成する処理を追加しました。

  • 使用フレームワーク: XNA Game Studio 4.0
  • スクリーンショットは、テストのため「A」「B」「C」「D」の4文字だけで、ランダムで表示しています。
    • 大きさや見た目の違ういくつかの文字列は、1種類のフォントを直接描画しています。1つのFBXファイルに格納した「A」〜「D」の4つの3Dモデルのみです。

特徴

    • 文字のフォントは、3Dモデルとして読み込む。画像を読み込んだものではない。
    • FillやStrokeの色を決定するテクスチャ、レンダーターゲット、専用のエフェクト(HLSL)で描画を実行する。

メリット

  • 文字の大きさが変更でき、劣化が小さい。
  • ひとまとめで描画した文字列は、文字同士がきれいに融合した状態(一方が他方の上になったりしない)で描画できる。
  • その状態で、「アンチエリアシング」「文字の太さ」「縁取り」「ドロップシャドウ」に相当する効果を伴った出力を作れる。
    • ドロップシャドウ効果は、本体の文字列より先に、文字列として影を描画している。ポストエフェクトによるブラーなどではない。

デメリット

  • SpriteFont(スプライト方式の文字描画)などより高負荷。
  • ポリゴンメッシュとして直線の集合として表現するので、曲線部分の再現には限度がある。(パフォーマンスとの相談)
    • ベクトルフォントと比べると、大きな文字描画の品質には限度あり。(DirectX11以降用に作れば改良できそう)

エンボス in 3Dモデル

 とある考えのもとに、Metasequoiaスクリプトとして「emboss.py」(仮)を作ってみました。Metasequoiaの機能と見分けるため、ベベル(bevel)や押し出し(extrude)以外の単語を使って、エンボス(emboss)と呼ぶことにしておきます。
※とはいえ、ピクセルシェーダによるバンプマッピングというわけでもありません。

  • 「押し出し」の「通常」や「ベベル」に似た加工ですが、同じではありません。
  • 基本的には以下の画像のように、「Create text」によってフォントから生成されるような3Dモデルへの適用を想定しています。
  • 3Dで演算しているので、もとのモデルはどちらを向いていても処理できます。(ただし、どんなものでもきれいに見えるというわけではありません)
  • 当面の目標は「前から見てきれいに見える」ところまでです。優角(180°<θ<360°:reflex angle)であっても、見えないところに不要なポリゴンを生成しています。

スクリプトを適用してみる

こちらは45°傾斜になる設定(size = 10, depth = -10)で試した結果です。上から「元のモデル」「1回適用」「2回適用+近接する頂点をくっつける」の状態のスクリーンショットです。2回適用してもうまくいくようですね。それを超えるときれいでない部分まで、前方から見えるようになります。
同じく45°傾斜になる設定です。文字ではなく適当な向きにそろったポリゴンに適用した結果です。エッジ表示をしているので、このスクリプトの性質がわかるかと思います。このスクリプトは、輪郭になっているエッジの外に矩形を追加し、輪郭になっているコーナーの外側にファンを追加します。追加の頂点の位置関係は、スクリプトの直接書き変えながらも、幅と深さと、ファンの分割角度をパラメータとして変更できます。
実装を最適化していないので重くなりますが、緩い角度になる設定を使えば、多段適用してもきれいな結果が出てきました。そこで、パラメータを変えながら3段階適用してみた結果です。

 「とある考え」というのは、「これで作れる素材を使って〜しよう」というものですが、それは進展があった際のお話としましょう。

Metasequoiaスクリプトの余談

 いくつかの点で時間を要しました。

  • MetasequoiaスクリプトPythonベース
  • MQPointで手軽な「複製」「スカラー * MQPoint」などのメソッドが見当たらない模様。
    • 「和」「差」「内積」「外積」「正規化」はある。
  • 任意軸回転は、Quaternionクラスの自作で解決した。
    • 行列(MQMatrix)はあるが、用意された回転操作は、オイラー角(MQAngle)ベースのメソッドしかない。
  • 関数内のエラーが、トップレベルの呼び出しのエラーとして知らされるので、問題の修正が難しい。
C#思考的Pythonミスコーディング
  • 「var」と書いてしまう。ローカル変数で余計な宣言をしようとする。
  • 「if」や「else」に「:」を忘れる。
  • 三項演算子を書こうとする。(すっきりしない方法では書ける模様。Python 2.5以降では「then_value if predicate else else_value」があるらしい)
  • 「&&」と書いてしまう→「and」。

Kinect: ディズニーランド・アドベンチャーズ

 Kinect専用ゲーム「Kinect: ディズニーランド・アドベンチャーズ」を遊んでみました。

 「Kinect: ディズニーランド・アドベンチャーズ」では、ディズニーランド・パーク(カリフォルニア州アナハイム)がモチーフの世界を歩き回ることができます。そこにはお馴染みのキャラクターがいて、手を振って会うと、おじきやハイタッチなどができます。キャラクターからは、ちょっとしたお願いごと「タスク」をもらうことがあります。再び手を振れば、別れることができます。

 パーク内では、腕を前に伸ばして移動です。腕を右や左に向ければ方向転換もできます。光る線の道しるべ「ルートガイド」をたどっていけば、「タスク」を進められる場所に着きます。何をしようか迷ったときはルートガイドに沿って進んでいけば、自然と進められるというわけです。ほかにやりたいことがあればマップを使って移動してもいいですし、別のタスクを進めても構わないようです。そう、マルチタスク……もとい、いわゆる「お使いクエスト」になっているんですね。

 キャラクターに会う以外にも、「まほうのつえ」や「ブラスター」を使ったパーク内の遊びも用意されています。

 写真を撮ったり、サインをもらったり、かくれミッキーを探したりと、ディズニーランドにいる気分を味わいつつ、ゲームならではの体験も楽しめるようになっています。コレクション要素も多く、結構なボリュームがありそうです。

アトラクション

 タスクに絡めて、アトラクションが用意されていて、手を振って近づくと、遊ぶことができます。
 アトラクションは、避けたりジャンプしたりポーズをとったりと、全身の動きを使ったアクションです。「Kinectスポーツ」や「Kinectアニマルズ」にあるような高得点を目指すゲームといってよさそうです。

マッターホーン・ボブスレー

 たとえば、「マッターホーン・ボブスレー」では、雪合戦のステージがあります。物陰から雪男に雪玉を投げつけ、飛んできた雪玉をしゃがんでかわすゲームです。
 プレイヤーの意志で自由に歩き回るわけではないものの、なんだかカバーアクションのあるTPSのようです。なかなか体力を使うステージです。

惜しい点

  • アバター作成では、画面の中にボタンとスクロールがあって、誤操作してしまうことがありました。
  • アバターを選ばせてくれるのなら、もう少し顔立ちに選択肢があればと思うところです。
  • 主なキャラクターは、日本語音声と日本語字幕になっていますが、一部キャラクターは英語音声と日本語字幕となっていました。
  • 腕を使う移動操作で、散らばるコインを集めるのはちょっと大変ですね。
Microsoft MVP 向け “ディズニーランド・アドベンチャーズ” レビュー キャンペーンに参加し、本ソフトのレビューを行っています

sftdlgMQでレンダリング

 Metasequoiaプラグイン形式のレンダラー「sftdlgMQ」を試してみました。

sftdlgMQ_110121のバージョンでの印象

  • Metasequoia用のプラグインなので、材質などはだいたいそのままで問題ない。(外部レンダラー利用ではα値の扱いで問題が出やすい)
  • Metasequoia用のプラグインなので、設定がMQX形式ファイル内に保存されて便利。
  • フォトンマップは何か問題がありそう。
  • エッジはアンチエリアシング対象外の様子。
  • Keynoteとの連携はないが、Keynoteで「Freeze」すればポーズつきの描画はできる(破壊的操作なので怖いですが)。
  • レンダリング画像の保存はBMP形式のみ。(PNG形式などでα値も保存できたら応用が広がりますね)
  • 若干挙動不審な場合あり。
  • 両面ポリゴンの設定はない様子。(以下の画像では未対処)

 材質パラメータの強化、GIの強化、Keynote連携などを期待したいところですね。

現在のLulieモデルの進捗状況


 sftdlgMQで描画させた画像をまとめて、レイアウトしてみました。

  • ダークレッドと空色の背景: フォトンマップありです。
  • オレンジの背景: フォトンマップなしのセルシェーディングです。
  • 背景色がシェーディングに影響しています。

 以前、Metasequoia内蔵レンダラーを使った画像( http://d.hatena.ne.jp/XELF/20110717/1310912666 )では、法線関連や発色など、シェーディングには不満がありました。そのような点はこのようなレンダラーを使うと解消できます。

 一方で、プリレンダリング画像を作ろうとすると、ポリゴンの交錯や法線などの問題がところどころ見つかります。モデルの方を更新していきたい部分です。

Halo: Combat Evolved Anniversary

 「Halo: Combat Evolved Anniversary」は、Xboxで発売されたHaloシリーズの1作目「Halo: Combat Evolved」(Halo1)の10周年を記念したリメイク版です。
 HaloシリーズのプレイはODSTやREACHのみで、原点を未経験でした。

グラフィックス

 「Halo: Combat Evolved Anniversary」では、面白いことに、プレイ中にBackボタンを押すと、当時のオリジナル版グラフィックスと、リメイクできれいになったリマスター版グラフィックスとを、切り替えられるようになっています。ポリゴンの数やテクスチャなど、およそ10年の差はかなりのものです。

 さすがに10年前と思う部分もありますが、Halo初代に基本システムや要素がすでにできており、それが受け継がれてきたと感心させられる部分もあります。振り返っておくにはいい機会だと思います。

キャンペーンモード

 キャンペーンモードは、マスターチーフ(愛称)として、FPS形式の銃撃戦をしつつ、マップを移動しながらストーリー進めていくゲームモードです。この点では、TPSのGears of Warシリーズなどとも大きく違いませんが、いくつかの点では違いも感じられます。
 マップは開けた場所と屋内ともにあります。目的地は明確に示されることは少ないため、道を探すこともしばしば必要になります。

 ゲームの進行は、「チェックポイント」毎に自動保存されます。そのような区切りのタイミングでプレイ中にときどきロードが行われ、ほぼシームレスに進行します。一瞬ひっかかりがあるものの、戦闘中ではないのでプレイに支障はありません。「チェックポイント」と表示されるタイミングは比較的あいまいで、ゲームの進行にときどきリトライできるタイミングを記録するためにチェックポイントが仕込まれている印象です。
 何となく難易度ノーマルでプレイ開始したのですが、ときには一撃必殺の近接武器を持った敵もいるなど、しっかりとした立ち回りの必要性を感じました。難所では、リトライを繰り返す羽目になってしまうこともあります。しかし、本作では失敗した場合、ロード待ちなしですぐにチェックポイントから再開できるので、スムーズにプレイを続けることができます。

AIのふるまい

 雑魚の敵には愛嬌があったり、こちらに気づかず寝ていたりするなど、Haloらしい個性が出ているところもあります。
 また、車両や仲間の兵士が登場する場面もあります。車両の運転時、仲間の兵士が歩み寄って同乗し、近くの敵に向けて銃を撃ってくれます。仲間の兵士や敵は、車両に当たりそうになると必死に避けたりもします。仲間の兵士を轢いてしまわないように注意を払いたくなりますね。細かい部分ですが、ちょっとした自律的な挙動は見ていて楽しいものです。

Kinectセンサー

 また、Xbox LIVEのタイトルアップデートで利用可能になるKinectセンサーの機能では、「解析」「センサー」といった声に反応して、「ライブラリー」に敵などの詳細情報を集めることができます。Halo:CEAの追加要素の1つですね。