Land of the Dead - Loot and Shoot

Land of the Dead

Land of the Dead - Loot and Shoot

ゾンビゲーム。結構昔に作られたゲームのはずなんだけど、今みても何の遜色もない。オーサリング的にはシンプルなんだけど、ビジュアルがしっかりしてるからかな。誰が作ったかは不明。

 

今年のスタント・ドライバー賞 - Stunt Driver

Stunt Driver

Stunt Driver

「8つの狂った競技で競い合い、今年のスタント・ドライバー賞を獲得しよう。」 いつの間にか、Miniclip.comに日本語のページができてたのね。ちょっと、驚き。Miniclip.comは、shockwave3Dゲームを多く提供するので好き。オーサリングはSilent Bay Studios。相変わらず、物理演算なクルマゲームが得意みたい。

 

Sewer Run

Sewer Run

Sewer Run

単純なスケートボードかと思いきや、ロケット弾や爆発で対戦相手を吹き飛ばして順位を競うゲーム。オーサリングは mohsye.com。WEBサイトもリニューアルして爽やかな印象だが、ゲームは「Cat a Pult 3D」の頃から続く暴力的なモノが多いかも。

 

K-Swiss Street Kiter - スニーカー

K-Swiss Street Kiter

K-Swiss Street Kiter

全米で人気のスニーカーメーカーの、ストリート カイト?ゲーム メッシュ変形による道路のフワフワ感がでてる。下カーソルキーで浮けるのだけど、この感覚がわりと新鮮。オーサリングは Inbox Digital。

 

ウインドウオブジェクトからアクセスする場合の落とし穴

Director Lingo

Director MX 2004以降、ウインドウクラスのオブジェクトからアクセス(_player.window[1].movie...)できるようになりました。これにより、他のムービー自体のメソッドやプロパティにも、現在のムービーからアクセスできます。従来、ムービー内部のアクセスは、そのムービー自身からしか行えませんでした。そのため、tellコマンドというやや特殊な仕様がありました。しかし、ウインドウオブジェクトやムービーオブジェクトにより、より簡単にムービーを扱えるようになりました。ですが、簡単なことには落とし穴があります。

 

Grudge Teaser 1

Grudge

Grudge Teaser 1

臨場感あふれる、ハイクオリティーな FPSゲーム。オーサリングは Mockworld。nickの phosphor betaも凄かったけど、こちらも負けていない。もともと FPSゲームのみ扱う Mockworldだけど、毎回クオリティーが上がっていくのが嬉しい。そろそろ、この辺りが 現 ShockwavePlayerの限界なんじゃないかと思うくらい。それと個人(少人数)制作の限界も。次期 ShockwavePlayerで PS2なみの技術的手法が使えるようになるのであれば、テレビゲーム業界のデベロッパが参入してきてもおもしろいかも。。

 

Shell V-Power 3D Driving Game

shell_1

Shell V-Power 3D Driving Game

ハイクオリティーな 3Dドライビングゲーム。オーサリングは Barry Swan。ライトマップもキレイだし、ビジュアルは文句なしの品質。イニシャライズはちょっと時間が掛かるけど、必見。注目は、クルマに落ちる影。クルマの下にあるライトマップのピクセルを当たって、その明度をクルママテリアルのカラーに反映する。地味だけど臨場感が増す。あと、おもしろいのが、カメラフォグの使い方。

 

VRモデリングは制約のデザイン

ハリウッド映画で使われる 3Dモデルや、CGパースのそれに比べると(プリレンダリング)、VR向けの3Dモデルには多くの制約がある。ゲーム業界と同様に。(リアルタイムレンダリング

プリレンダリングとリアルタイムレンダリング

プリレンダリングされた 10分の動画は、どんな環境で再生しても 10分の尺だ。けれど、これがリアルタイムレンダリングで再生されるとすると、5分で再生が終わったり、10分立ってもまだ半分しか再生していないなんてこともありうる。プリレンダリングされた画像では、環境によって画像が変化したりはしない。リアルタイムレンダリングでは簡略化されて表示されたり、色数が少なくなったり、いつでも変化する可能性がある。

100台のPCで再生すれば、どのPCでも違った結果で表示されるのがリアルタイムレンダリングだ。たった一枚の画像を表示するのでさえも、その環境の(具体的にはグラフィックボードの)力を借りているのだ。

制約があるということ

リアルタイムレンダリング用のモデルを作るとき、プリレンダリング用途とまったく異なるのは、再生される環境を考えなければならないこと。再生内容は環境に大きく左右されるからだ。環境が決まらなければ、制作は始まらない。

この辺りがきちんと体系化されているのがゲーム制作会社。まず、再生するプラットフォーム(ゲーム機)は、通常同じハードウェアだ。デザイナーとプログラマーの領域もはっきりしている。ゲーム機のスペックとプログラムなどの負荷を考慮した上で、シーン当たりにどれほどのポリゴン数で、何MBまでのテクスチャでという仕様書が出来上がる。(実際にはそんな単純な話じゃないけど。)

制約は創造性を育む

つまり、デザイナーは与えられた制限の中で最高の表現をするために試行錯誤する必要があった。そんな背景の中で生まれたのが「ローポリ」だったり「ドット絵」みたいなテクニックだったりなんだと思う。(アイザワはそんなに昔の話は知らないので想像なんだけど)

確かに最近は、プリレンダリング用のモデルでもリアルタイムに動かせるほどハードウェア性能が向上している。だけど、制約を意識することが、創造性を育むのだ。

リアルタイムにライティングの計算が出来ない? だったら、始めからテクスチャに焼き付けておこう。モーションブラーがレンダリングできない? そんなの半透明のモデルを重ねたらソレっぽく見えるでしょ。

リアルタイム系モデラーは制約の中で、プリレンダリングに負けない品質を求めてきた。最近のゲームのなかには、リアルタイムのレンダリングとは思えないほど美しいタイトルもある。それは単純にハードウェア性能の向上だけでなく、創造性のある技法に依るところが大きい。

続く

 

Battle of the Planets - OTOY 3D

Battle of the Planets -- Zoltar's Revenge

Battle of the Planets -- Zoltar's Revenge

OTOY 3Dエンジンを使用した シューティングゲーム。Win+IEの環境のみ。ゲームは楽しいし、ビジュアルも格好良い。オーサリングは、JulesWorld。

 

ライトがフレームレートに与える影響 - FPS with Light

FPS with Light

FPS with Light

ライトがフレームレートにどれほど影響するかというFPSテスト。想像以上にライトが足枷になるのが体感できるかも。『シーンにライトがあると、リアルタイムに頂点ひとつひとつにライトの色が加算される』。この単純な理屈を理解すれば、負荷が高くなるための単純な結論が出る。(じゃないのかな。。)

  • ライトの数が多ければ多いほど。
  • 頂点が多ければ多いほど。
  • #ambient < #directional < #point < #spot

極論は、ライトが無くても 3Dシーンは成立する。現実世界では光源があって、モノに反射して色が見えるわけだけど、(だから光源がないと真っ暗)、CGの世界では違う。マテリアル自体に明るさを持たせたり、頂点自体に色を持たせたり、テクスチャに焼き付けたり。光源が無くても、色を出す(表示させる)方法は幾つかある。ということで、リアルタイム系CGでは負荷の掛かるライトはそれほど使わない。あらかじめ照明効果を何らかの方法で持たせておいて、リアルタイムではライトの計算をなるべくさせないのが一般的。とはいえ、陰付けのための手っ取り早い方法としてライトはとてもラク。現実世界の光源のあるところにライトを配置する感覚ではなく、どのように陰を付けるのかを意識すると、必要最小限のライトで済みます。

今回の FPSテストでも、ログをとってあります。

 

建物の材質を変更する 3Dシミュレーション

FurnishedBuilding

FurnishedBuilding

建物の材質を変更するリアルタイム 3Dシミュレーションのデモ。建造物というよりも箱庭な感じだけどね。トイレなどに隠されたアクションには洒落っ気がある。 オーサリングは CanDoInteractive

 

InspectableList が働かない。 - Flash ActionScript

Flash actionscript

Flashコンポーネントのメタタグで InspectableListが働かない。調べたけど日本語の情報を見つけられなかったのでメモ。

拡張したコンポーネントで継承したパラメータをプロパティインスペクタに表示するには [InspectableList()]タグを使うのだけど、どうも表示されない。自身のプロパティは InspectableListにあるなしに関わらず表示される。どうやら、InspectableListが機能していないよう。で、検索すると「“import” is required for component meta-data」に情報があり。古い内容みたいなので、もしかすると最新版の Flashだと問題ないのかも。。

スーパークラスを importで読み込んでおく必要があるよう。さらに付け加えると、拡張する際に完全修飾名(mx.controls...)を使うと駄目なのね。単純にクラス名にする必要があるっぽい。

 

ナノテクノロジーな 3Dアクションゲーム - Nanoquest

nano quest

Nanoquest

ナノテクノロジーな 3Dアクションゲーム。アイテムを集めて仲間を助けようみたいな。ナノテクについてちょっと学べたり。ハイスコアを出した人に ipod nanoをプレゼントする洒落っ気も(*アイルランドの子供向け)。オーサリングは CanDoInteractive。CanDoInteractiveは教育機関向けのコンテンツに積極的。

 

3Dシミュレーション - セキスイハイム「bj+me」

bj + me セキスイハイム

bj + me ひろがる空間 つながる家族

セキスイハイムのとっても素敵な shockwave3Dコンテンツ。住宅メーカーが Web3Dshockwaveを採用して素敵なコンテンツが実現したことを嬉しく思う。(ありがちな PowerSketchとかじゃなくて Shockwaveということに意義がある)。最近はゲームばかりが目立つから。コンセプトが楽しいし、デザインもイマドキな感じなビッグコンテンツ。

自分で家具を置いた間取りを 3D表示したり、公開したり、他人の家を見たり。『セキスイハイムのハイムbj/bj plusのオープンな空間を使って自分だけのこだわり空間を演出することができるコンテンツ』。

斬新な手法はないが、サーバーサイドとの連携や Flashインターフェースがしっかりしてる。3Dモデルはベイクされたテクスチャで表現力もある。アイテムも順次追加されているようだし、今後の成長が楽しみだ。オーサリングは 株式会社ミツエーリンクス。 *この手のユーザの力で大きなコンテンツになっていくサイトはやっぱり楽しい。。もし、類似コンテンツ作成されたい方がいらっしゃいましたら、アイザワまでご連絡を =)。住宅系コンテンツを Web3D、いや Shockwave3Dで盛り上がらせたいなぁ。。。

 

ピエロをキャッチ - Clowning Around

Clowning Around

Clowning Around

飛んでくるピエロを積み重ねるゲーム。コレもまた 3Dとしては贅沢な感じ。オーサリングは Rayamedia

 

Police Chopper

Police Chopper

Police Chopper

ヘリコプターでスターを集めるゲーム。オーサリングは Rayamedia

 

飛ばし系 - Stuntman

Stuntman

Stuntman

大砲でスタントマンを飛ばす飛距離を競うゲーム。一昔前に流行ったね。shocckwave3Dである必要性がよく分からないが。。。でもグラフィックはきれい。 キャラクターも◎。オーサリングは Rayamedia

 

Superbike GP

Superbike GP

Superbike GP

バイクのレースゲーム。古いヤツだけど。オーサリングは Rayamedia

 

オブジェクトソート - リアルタイム系の3Dデザイナーのためのロジック

オブジェクトソート

3D空間を描画する仕組みについてのお話。一般的な リアルタイム3D描画プログラム(3Dエンジン)は、Zバッファ法という手法で、レンダリングを行う。その対に Zソート法があったり、Zバッファを使った描画方法の仕組みそのものは、本題ではないので省略するが。(機会があれば、そのうち。)カメラから見た深度情報に従って該当するピクセルを塗りつぶしていく Zバッファ法が苦手とするのが、半透明(やアルファ抜き)なオブジェクトの描画だ。とにかく一番手前にあるポリゴンのピクセルを塗りつぶすのだから、2番目に手前にあるポリゴンは考慮しない。つまりは、手前にあるのが半透明ならば、奥にあるのはどう描画するの?ということになる。

と、前置きはこの程度にして。半透明やアルファ抜きされたポリゴンを描画するためには、Zバッファとは違ったプログラムが必要となる。ソレが、アルファテストであったり、今回の本題オブジェクトソート。ともかく、本当に正確に半透明やアルファ抜きをリアルタイム描画するには、PCに負荷が掛かり描画速度が遅くなる。ピクセル単位、ポリゴン単位で、どの面が手前でどの面が奥でという風に前後関係を計算(ソート)する必要があるから。で、プログラマとしては半透明は使って欲しくないのだけれど、見栄え上どうしても必要だということで、まぁ正確ではないけど動作速度上影響も少ないオブジェクト単位でソートするのが落ち着きどころ。Shockwave3Dでもそう。

で、オブジェクトソートって何?という本題。何も知らずに半透明をガンガン使うと思いもせぬ悲惨なものになる恐れがある。だからこそ、デザイナーは半透明を積極的に使えるように描画のロジックを知っておく必要がある。

 
ようこそ、SOLA Blogへ

このウェブログは、三次元のリアルタイムレンダリングに関する話題が中心です。たとえば、SOLAやオンライン3Dゲーム、Web3D、VR。3DCGやプログラミングとかもその範疇。VR未体験の方は、ぜひイークラフトのVRコンテンツで遊ばれてください。とはいえ、雑記といえば雑記かも。

Archives
Search でも役立たず
Profile / Contact
アイザワ ユウイチ

アイザワ ユウイチ
テクニカル・アーティスト

東京都港区在中、株式会社イークラフト勤務。ランドスケープ業界に新感覚3Dツール SOLAを提案中。下のフォームから連絡とれます。気軽にどうぞ。