CEDEC2015に行ってきたよ(二日目)

バタバタとしていて遅くなってしまいましたが、CEDEC2015の二日目の雑感をまとめておこうと思います.

『Data Art and Entertainment』(真鍋 大度/株式会社ライゾマティクス)

講演の流れとしては、真鍋さんが手がけてきた作品(?)を順にたどるといった形だったので、ちょっと基調講演としては期待外れなのか?などと失礼なことを思いながら話を伺っていたのですが…

面白いことを妄想できる人はたくさんいるかと思うんですけど、その自分の頭の中で考えたことを他の人に伝わるように形にできるというのはとてもすごいと感じました.

そして、やりってみたいことに対しては、デザイナーだとかデータアナリストだとかプログラマーだとかといった境目はないということも感じました.

自分の殻に閉じこもっていちゃだめだよな...

講演が終わる頃にはとても刺激をうけておりました.

逆転裁判スクリプトシステムによる実演を交えた3Dアドベンチャーの作り方』木本 雅博/株式会社カプコン

3Dゲームのスクリプトシステムに少し関わっていたこともあって、3Dキャラクター制御をどういった形でスクリプトシステムにするんだろう?という疑問から聴講させていただきました.

期待していた内容とは趣旨が違っており、 Excel をベースにしたスクリプトシステムとそのパイプラインを構築したという事例紹介でした.

個人的に新しい発見はなかったのですが、Excelベースという旧来からのシステム設計でも丁寧にパイプラインを作り込んでいくことは重要だと感じました.

ネクスト・レベルに到達するためのテクノロジー戦略 A technology strategy to reach the next level』(Julien Merceron/Konami Digital Entertainment)

CEDEC2013で「ゲームテクノロジーをデザインする」という講演をされていたんですが、その続きに該当する講演でした.
スライドが公開されたタイミングでまた改めて考えを整理するとして、話を伺いながら感じたこととしては

といったことを考えました.

デベロッパミドルウェアとどうやってつきあっていくのか?という問題に関しては、同時通訳の方も迷われたのか主張が理解できなかったのですが、必要性を感じつつもロックインの問題などが出てくるので開発リソースを特定のミドルウェアに依存してしまうよりは、うまく利用しながら社内の資産を蓄える(社内ライブラリの“Gardening”化)ことが重要といった主張だと理解することにしました.

ちなみに、(社内)ライブラリのコードベースを使い捨てずに、時間をかけて少しずつ成長させていくことを”Gardening”と呼ぶようです.

ついつい、最初から作り直した方が…の誘惑に負けてしまいそうになるんですけどね...

GPGPUを活用した剛体シミュレーション最適化事例』(松生 裕史, 吉田 弘一/Sony Computer Entertainment Inc.)

導入部では、剛体シミュレーションをGPUで行うのに先立ちCPU物理とGPU物理の利点・欠点を簡潔に紹介していただきました.

あたりまえっちゃあたりまえな話なんですけど、個人的には「なるほど」と思った瞬間でした.

  • CPU 物理 : ゲームロジックと深く関わる物理
  • GPU物理 : 物量で賑やかな演出の物理

後半戦では、データ構造に着目した最適化事例として、AOS(Arrays of Structure)とSOA(Structure of Arrays)の対比が紹介されました.

AOS から SOA に変換した結果、キャッシュヒットがしやすくなり高速化につながるというイメージ通りの結果ではありますが、とても有益な情報だと思いました.

ここから、GPUシミュレーションはキャッシュミスしやすいという問題点があり、物理を行うときに空間充填曲線を用いてキャッシュミスを防ぐという方法が紹介されました.

キーワードとしては「モートンコード」で、Texture の Swizzle でキャッシュミスを減らすために空間的に近い座標でピクセルを並べ替えるというアイディアになります.

Swizzle Texture には、少し前に結構お世話になっていたのですが、これを3次元の座標系に導入してコリジョン判定で使うというのはとても面白いと思いました.

他にも使い道はありそうなので、「モートンコード」に関して少しサンプルなんかを作ってみようかと思いました.

『サブディビジョンサーフェスのすべてがわかる・グラフィックスエンジニア向け理論編』(手島孝人/ピクサー・アニメーションスタジオ 松岡徹/DeNA)

CEDEC2013で手島さんから紹介のあった「OpenSubdiv」の続きになるかと思います.

前回は、サブディビジョンサーフェースの概要と「OpenSubdiv」の紹介といった感じだったと思うのですが、今回は細かな実装方針や背景理論の紹介となっていました.

理論の方は全くついて行けないので、ぼーっと聞いていることしかできなかったのですが、OpenSubdiv をスマートフォンに組み込んで端末スペックにスケールさせてモデルデータを利用することってできないか?などと妄想をしていました.

一回ポリゴンメッシュにして、二回目以降はキャッシュできるような仕組みを作ることができれば生成コストって多少遅くても価値があるのかなぁ?

ちょっと試してみたいですね.