記事の目次

    本連載では、アカデミックの世界に属してCG・映像関連の研究に携わる人々の姿をインダストリーの世界に属する人々に紹介していく。第8回では、リアルタイム3DCGを専門とし、ゲームの制作技術・開発環境・AIなどを研究する東京工科大学の渡辺大地准教授に自身の研究室について語っていただいた。

    ※本記事は月刊『CGWORLD + digital video』vol. 248(2019年4月号)掲載の「ACADEMIC meets INDUSTRY 東京工科大学 メディア学部 メディア学科 渡辺研究室」を再編集したものです。

    TEXT_渡辺大地 / Taichi Watanabe(東京工科大学)
    EDIT_尾形美幸 / Miyuki Ogata(CGWORLD)
    取材協力_芸術科学会

    数理科学とプログラミングを組み合わせれば、世界の法則を創造できる

    東京工科大学の渡辺大地です。本連載を毎月楽しく読んでいますが、私に執筆担当が回ってくるとは思っていませんでした。というのも、すでに同僚が2名(No.001の三上浩司先生と、No.003の菊池 司先生)登場しているからです。両先生の記事をご覧になっている方には既読の内容もでてきてしまうと思いますが、あらかじめ何卒ご容赦ください。

    • 渡辺大地
      東京工科大学 メディア学部 メディア学科 准教授
      博士(工学)
      専門分野:リアルタイム3DCG、ゲーム制作技術、ゲーム開発環境、ゲームAI
      gamescience.jp


    まずは、私の研究のルーツからお話したいと思います。学生時代に大きなターニングポイントとなった出来事が2つありました。

    ひとつは、シリコングラフィックス(以下、SGI)製のワークステーションとの出会いです。大学2年当時、私は決して勤勉な学生というわけではなく、大学で学ぶ様々な分野に今ひとつ魅力を感じることができず、悶々と日々を過ごしていました。そんな中、友人のツテで、当時まだキャンパス内に2台しかなかったSGIワークステーションを使える機会がありました。確か当時のSGIワークステーションはエントリーモデルのPersonal IRISですら400万円くらいしたと思います。SGIワークステーションでプログラムを組んだときの衝撃は、今でもよく覚えています。8bitパソコンと普及型ワークステーションしか知らなかった私にとって、まさに異次元のテクノロジーでした。

    プログラムにのめり込み、学習を進めていく過程で、3Dの技術は線形代数や微分積分を駆使したものであることも理解し、それまでは試験問題を解く以外の意味をもたなかった数学が、表現技術の根幹をなすものであると知りました。特に、数理科学とプログラミングを組み合わせると「自分自身で世界の法則を創造できる」ということが、衝撃的とも言える感動を私に与えました。詳しくは後述しますが、これは私が現在ゲーム分野へ傾倒している一因となっています。

    もうひとつの重要な出来事は、企業でのインターンシップでした。と言っても、今のように就活を前提としたものではありませんでした。当時私が通っていた大学に設置されていた演習用ワークステーションでは、某CADソフトが非対応だったため、その移植を教員より頼まれたのです。今ふり返ると、よくこんな無茶な仕事を引き受けたものだと思いますが、当時の私は怖いもの知らずでした。

    そのCADソフトで使用しているライブラリは移植先OSにも対応していたので、基本的には適切なMakefileなどを設定してビルドするだけで終わるだろうと、最初は思っていました。しかしながら、そのコンパイラはバグの宝庫で、論理的には正しいコードがうまく動作しないという問題が頻繁に起こりました。デバッガも正常に動作しない上、1回のビルドに15分程度を要したので、標準出力で変数内部の様子を少し見てはビルドをやり直す......という作業を延々とくり返すことになりました。

    そんな状況だったため、(もちろん企業側の許可を得た上で)ソースコードやテスト環境の中もかなりいじることになったわけですが、この経験が本当に自分の勉強になりました。学生が独学でプログラムを学ぶと、少なくとも当時は「動きさえすれば良い」という価値観でコードを組み上げてしまい、結果的に使い物にならないということが起こりがちでした。それとは対照的に、一流のプロが数十人で数百万行のコードを統合させていく企業のシステム開発は、私には想像もできなかった工夫やアイデアの宝庫と言えました。

    これら2つの経験は、研究者、およびプログラマーとしての私の根幹をなす部分と言えます。

    理想を追い求め、大学教員の道を選択

    修士課程の修了後、博士後期課程に進学した私は、将来を決めるのはまだ先だろうと考え、のほほんと日々を過ごしていました。ところが、現在の私の勤務先である東京工科大学がメディア学部を新設することとなり、その教員にお誘いいただくという急展開が訪れました。そのとき私は博士課程1年生だったのですが、当時は開学予定の2年半前から教員を選定する必要がありました。博士課程に進学してみたものの、自分が大学教員になれるとは思っていなかったので、突然棚から落ちてきたぼた餅を前に私は悩みました。

    インターンシップ先の企業で自分が実装したプログラムが、実社会で役立ったという経験は、私にとってこの上なく魅力的なものでした(今でも憧れます)。 しかしながら、結果的に私は大学教員となる道を選択しました。その背景には、前述のCADソフト開発にまつわる考えがありました。このソフトウェアは画期的な曲面構造を実装しており、当時から主流だったNURBS曲面よりも使いやすいものだと私自身は心酔していました。しかし業界標準であるNURBSとの互換性を要求する世間の声は多かったそうで、曲面形式は大変複雑になってしまいました。結果的にソフトウェアは非常に扱いが難しいものとなり、本来の魅力を失っていったように私には思えました。

    この経験から、大学で研究を続ける方が、「自分自身で世界の法則を創造する」という私の理想を追い求めやすいのではと考えるようになり、大学教員になることを決意しました。今になって思い起こすと、大変青臭く世間知らずな感覚だったのですが、企業よりも大学の方が自分の気質には合っていたように思います。

    ゲームの研究は、様々な分野の専門家が協力しなければ実を結ばない

    私の専門分野はリアルタイム3Dだったため、着任当初の学部内では「3D技術の専門家」として位置づけられました。初代学部長はメディア学部を「技術コア」「表現コア」「環境コア」という3領域に体系化し、カリキュラムや人員構成を設計しました。その中で、私は片足を技術、片足を表現に乗せているような立ち位置でした。

    芸術やコンテンツ分野の専門家、研究者らと共に研究を進めていくうちに、これらの分野は決して感覚的なものではなく、強固な理論基盤をもっていること、あるいはもとうとしていることを知り、強い感銘を受けるようになりました。また、入学してくる学生たちはクリエイター気質をもつ傾向が強く、私自身の興味の幅も次第にコンテンツ分野へと広がっていきました。リアルタイム3Dと相性の良いコンテンツ分野は、なんといってもゲームです。しかし、着任当初の2000年頃はゲームを対象とする研究がほとんど成立しておらず、関連する各分野で個別に研究が進められているのが実状でした。当時からゲーム内での利用を想定した多くの技術を学生と共に研究していましたが、どの学会で発表すればいいのかと悩ましく感じることが多々ありました。

    そんな中、2004年に転機が訪れました。当時本学の研究員をしていた三上先生から、一緒にゲームに関する研究をやりましょうと声をかけていただいたのです。「ゲームの研究は、従来の分野の垣根を取り払い、様々な分野の専門家が協力しなければ実を結ばないだろう」という観点において、三上先生と私の考えは一致しました。コンテンツの研究は技術力がなければ実現しませんが、技術だけでは価値をもちません。技術と表現の両方が揃って初めて成り立ちますが、これをひとりの研究者だけでやっていくことには限界があります。現在、三上先生との共同研究は15年目になりますが、協力の必要性が増していくばかりだと感じています。

    ▲【左】2007年度の修士学生による研究。2DCG作成ソフトウェアのブラシツールを用いて描いたような段階的な色のムラ(ブラシタッチ)を、インタラクティブな挙動を考慮したリアルタイム3Dで表現しました/【右】2012年度の学部生による研究。Boidアルゴリズムの機能を追加・変更し、ニホンミツバチがスズメバチを攻撃する際に行う蜂球形成行動と呼ばれる特殊な集団行動をリアルタイム3Dでシミュレーションする手法を提案しました


    ▲2008年度の学部生による研究。アニメーターの板野一郎氏によって生み出されたミサイルアニメーション、通称「板野サーカス」のターゲット・ミサイル・カメラなどの動きを分析・体系化し、カメラワークの自動生成を行なっています。ミサイルを「秀才タイプ」「優等生タイプ」「劣等生タイプ」の3種類に分類し、これらをシーンごとに組み合わせることで、板野サーカスならではの映像表現を体系化した点がポイントです

    次ページ:
    「超現実」を表現することの価値を
    誰もが理解できるようにしていく

    [[SplitPage]]

    「超現実」を表現することの価値を、誰もが理解できるようにしていく

    現時点での本研究室の構成は、博士課程1名、修士課程8名、学部4年11名、3年12名です。私の専門に近い3Dモデリング、レンダリング、アニメーションに関する理論技術の研究や、ゲームAIの研究を行う学生に加え、ゲームデザインやUI、コンテンツ分析などを行う学生もいます。就職先は、ゲーム制作企業やCGプロダクションなどのコンテンツ系の業界と、プログラミングの技術力を活かせるITシステム系業界が半々です。学会発表の場は、芸術科学会情報処理学会などの学術会議が中心で、NICOGRAPH InternationalVRCAIなどの国際会議でも発表しています。

    ゲームを研究対象とする場合、「現実にはない現象を実現する」という、リアルなCGやCADとは異なるスタンスが存在します。ある時期まで、CG研究は「とにかくリアルに」という目標を追求しており、現在もそれが主流であることはまちがいありません。もちろん、SFやアクション映画などでは現実にはありえない現象が数多く描かれますし、それを実現する上でCG技術は欠かせません。しかしながら、その映像を生み出すために必要な理論は、現実世界を模倣したものが多いです。光学現象や流体表現などの多くは、現実世界の記述を目的とする物理学から取り入れられてきました。

    その一方で、本来はまったく現実世界の現象とは無関係な数学理論によって、リアルな自然現象の様子を表せる場合もあるのは、とても興味深いことです。代表的なものとして、フラクタル理論による自動地形生成などがあります。

    先にも述べましたが、プログラミングは数学理論による法則・概念を具現化するという、まさに現代の魔法と言える魅力的な存在です。コンピュータが誕生した当初から、技術者はゲーム制作を楽しんできましたが、その真髄はまさに「世界の記述」にほかならないと言えます。それが、私が深くゲーム研究に傾倒するようになった大きな理由です。ゲームプログラマーの多くが、この魅力に賛同してくれるのではないかと考えます。

    しかしながら、ゲームのもつ「なんでもあり」という側面は、研究として扱う上で悩ましい点でもあります。現実世界の模倣が目標ならば、いかに現実に近いかを指標にできますが、ゲームを含むコンテンツ全般では、「どちらが良いのか」の基準が定められないことが多いためです。実際、後述するエネルギー波の研究を学会で発表したときには、「現実に起こり得ない現象を表現することに意味があるのでしょうか?」という身も蓋もない質問が飛んできたこともあります。単純に理論技術を高度化するだけでなく、「超現実」を表現することの価値を誰もが理解できるようにしていくことが、コンテンツを研究する人々の大きな課題のひとつであると言えるかもしれません。

    • ◀▲2016年度の学部生による研究。キャラクターの関節の回転速度を通常よりやや高速にすることで、そのアニメーションを誇張する表現手法があります。本研究ではこの手法を応用し、ライブコンサートなどで行われる「オタ芸」と呼ばれるパフォーマンスの動きを自動生成するツールを提案しています。上図の左側は日常生活で行う「指さし」の挙動で、右側はその挙動に「オタ芸」の特徴を反映した誇張表現を合成しています

    次ページ:
    リアルタイム3Dにおけるエネルギー波表現

    [[SplitPage]]

    RESEARCH 1:リアルタイム3Dにおけるエネルギー波表現

    ・研究目的

    アニメーションや漫画などの創作コンテンツの中で、エネルギーの塊が強く発光し、移動するという表現があります。古くはアメリカの1940年代のアニメ『スーパーマン』シリーズから用いられているこの表現は、『ゴジラ』『ウルトラマン』シリーズなどの特撮映像や、『宇宙戦艦ヤマト』『ガンダム』シリーズなどのSFアニメの世界で大きく発展してきました。漫画『ドラゴンボール』の中では、この現象を「エネルギー波」と呼称しており、それ以来日本国内ではエネルギー波と呼ばれることが多いです。

    エネルギー波はゲームにおいても欠かせないエフェクトですが、視点が固定されないゲームでエネルギー波を表現する場合には、現状の技術では様々な制約が生じます。われわれは、このエネルギー波をゲームの中で表現するための理論技術の研究を行なっています。


    ・関連研究

    エネルギー波をCGで表現する方法は、大きく3種類に分類できます。第1に、流体力学やボリュームレンダリング、フォトンマッピングを用いて実現する方法です。ウォルト・ディズニー・アニメーション・スタジオが制作する映画などでも用いられており、質の高い映像を生み出せますが、計算が複雑でゲームなどのリアルタイムレンダリングには不向きです。

    第2に、アニメーションテクスチャを用いる方法です。事前にエネルギー波のアニメーションを作成しておき、それをテクスチャに適用して表現します。実際のゲームの大半は、この方法が用いられています。この方法でも質の高い映像を実現できますが、状況に応じた変化に対応できない、任意の視点からの表現に対応できないといった問題があります。

    第3に、3Dテクスチャを用いる方法です。縦横に加え、高さ方向の情報ももつボクセルデータをリアルタイムに表示する技術を使います。高い表現力を有する技術ですが、解像度を高くしようとすると膨大なメモリを要するため、エネルギー波自体を間近から見るような状況だと粗さが目立ってしまいます。


    ・手法概要

    われわれが提案する手法[1][2]の基本的な処理のながれは、次の2段階に分かれます。

    【1】空間中のエネルギー分布関数を定める
    【2】視線直線上のエネルギー分布値を計算し、エネルギー値が高いほど明るく表示する

    【1】のエネルギー分布関数は、3次元空間中の位置ベクトルを入力し、その箇所のエネルギー値を算出する関数です。この分布関数は、エネルギー波の形状により様々な関数を用います。研究を始めた頃は球型と円柱型のみでしたが、現在はトーラス型や自由曲線型など、様々な形状を表す関数を用意しています。【2】の段階では、各画素に実際に表示される輝度を計算します。この計算には、線積分と呼ばれる数学手法を用いています。任意のエネルギー分布関数に対して線積分関数を解析的に求積できない場合には、近似値計算を行います。

    ▲【左】球型と円柱型を表す関数を利用したエネルギー波をキャラクターが放っています。研究の初期段階では、単純形状を組み合わせ、漫画の一場面にあるようなエネルギー波を表現することを目指しました。視点を変更すると、エネルギー波の形状(その視点から見えるエネルギー量)が再計算され、リアルタイムに再描画されます/【右】自由曲線型を表す関数を利用した螺旋形状のエネルギー波。初期段階に比べ、エネルギー波の形状表現の幅が広がりました。複雑なエネルギー分布関数を用いているため、近似値計算を行うといった工夫を必要とします


    ▲【左】エネルギー分布に対して、1本の視線直線上のエネルギー量を解析的に求める様子。エネルギー場の外側は値が低く、エネルギー場の中心に近づくほど値が高くなっています/【右】画素ごとに視線直線を作成し、各視線のエネルギー量を求めることで、エネルギー波の形状を表示することが可能です


    積分計算を全ての表示画素に対して行うのは大変な計算量となるのですが、近年のGPUは並列計算が大変高速になっているため、GPUの計算パワーをできるだけ効率的に利用することで、リアルタイム3Dでのエネルギー波の表現を可能にしています。これにより、状況に応じた変化や、任意の視点からの表現にも対応できるようになりました。

    別の観点として、エネルギー波を細かなパーティクルの集合だと定義し、パーティクル群を操ることでエネルギー波の複雑な変形を表現する研究[3]も行なっています。本研究では、エネルギー波がほかのオブジェクトに衝突した際の形状構成要素を大域的形状(円状・不規則状)、連続性(連続型・分離型)、飛沫形状(粒状・棒状)、飛沫先端形状(丸型・鋭利型)の8パターンに分類し、パターンごとのパーティクルの運動方程式とレンダリング手法を定義することで、多彩なエネルギー波の衝突形状を簡易なパラメータ設定のみで生成できるようにしました。

    ▲パーティクル群を利用したエネルギー波。エネルギー分布関数を用いて表現する場合にはほかのオブジェクトとの衝突の表現は困難ですが、本手法を用いると多彩な衝突形状を表現できます。上の作例の場合は、円状分布確率、連続確率、飛沫サンプリング数、飛沫の丸みからなる4つのパラメータを設定することで、エネルギー波とほかのオブジェクトとの衝突を表現しています


    ・今後の展望

    現時点での研究成果はまだまだ限定的な表現力に留まっており、実用化のためには多くの技術的問題を解決する必要があります。例えば、エネルギー分布関数を用いて形状を制御する場合には数学的素養が必要なため、デザイナーが自由に形状をデザインできません。数学的素養がなくてもデザインが可能なインターフェイスが必要だと考えています。また、エネルギー波同士や、エネルギー波とほかのオブジェクトとの衝突・干渉が生じた場合の相互作用も、あまり表現できていません。大抵の場合、エネルギー波は大きな衝撃を意味する表現なので、物理挙動シミュレーションや破壊シミュレーションなどと組み合わせていく必要性が高いと言えます。


    ・参考文献

    [1]阿部雅樹, 渡辺大地: エネルギー波表現のリアルタイムレンダリング, 芸術科学会論文誌, Vol.9, No.3, pp.93-101, 2010
    [2]Taichi Watanabe, Masaki Abe, Kouichi Konno: Real-Time Rendering Technique for Visual Expression of Arbitrary-Shaped Energy Wave, 芸術科学会論文誌, Vol.15, No.2, pp.99-111, 2016
    [3]仁藤将輝, 渡辺大地, 柿本正憲, 三上浩司: リアルタイム3DCGにおける衝突を考慮したエネルギー波表現, 芸術科学会論文誌, Vol.13, No.3, pp.144-153, 2014

     

    次ページ:
    コンテンツ制作環境の構築

    [[SplitPage]]

    RESEARCH 2:コンテンツ制作環境の構築

    ・概要

    私は自分が学生だったときから、Fine Kernel Tool Kit(以下、FK)という3D用オープンソースライブラリの開発を続けています。前述の企業内でのインターンシップを経験した際、ライブラリを用いて異なるアプリケーション間で機能を共有するという考え方に感銘し、当時はほとんど存在しなかったリアルタイム3D技術の研究開発やコンテンツ制作を支援する目的で開発を始めました。

    FKの開発においては、3Dライブラリとしての機能に加え、様々な支援システムも主に本研究室に所属する学生が中心となって構築しています。例えば、モーション作成システムのFK Performer[1]や、スカルプトモデリングツール[2]などがあります。以前はFK Performerを用いた演習科目も実施していましたし、前述の「オタ芸」の動きを自動生成するツール[3]もFKを用いて開発しています。

    ▲モーション作成システムのFK Performerの実行画面


    ▲FKのライブラリを用いて開発されたスカルプトモデリングツール。柔軟な操作履歴の編集が可能です


    ・他システムとの比較

    現在では、大規模なものを除くと、ゲーム制作にはゲームエンジンを用いることが多くなっています。本研究室での研究においても、ここ数年はUnityを用いる学生が多くなってきました。次の2点の条件を満たしている場合は、研究にゲームエンジンを用いても問題ないと思います。

    【1】ゲームエンジンの利用方法を、研究遂行に支障がない程度に習得している
    【2】ゲームエンジンがサポートしていない外部システムを使用しない

    逆に言えば、これらを満たさない学生は別の方法を検討する必要があります。リアルタイム3D用のAPIとしては、OpenGLとDirect3Dが多用されてきました。近年はこれらに加え、VulkanやMetalといったライブラリも台頭してきています。これらのAPIを使うメリットは、ハードウェアの機能を最大限に活かしやすいことでしょう。ただし、技術的難度が高く習得にかなり苦労をともなう、APIを用いてスクラッチから記述したコードの他プロジェクトへの転用は困難をともないがちといった問題もあります。

    FKと似たような目的をもつライブラリも、多く発表されています。本研究室の場合は、本学サークルでの利用実績が高いDXライブラリを用いる学生が一定数います。経験上、前述の条件を満たしていれば、これらの使用も問題ないと思います。近年では、Siv3DというC++用ライブラリを用いる事例もでてきました。現在も活発に開発が進んでいるライブラリであり、個人的にも発展を楽しみにしています。

    これらのシステムに対し、学生がFKを用いる最大のメリットは「自前で開発している」ことでしょう。何か疑問点や不具合が起きたとき、当事者同士で解決できることは研究の場では非常に有効に働きます。また、最初から他システムとの連携を考慮して設計してあるため、別のライブラリと連携させる、FKの一部の機能のみを用いるといった利用も可能です。何らかの研究成果を機能(クラスライブラリ)として実装し、ほかの利用者が容易に使用できる点も大きな特徴です。

    ▲学部の演習科目で実施したFK Performerを用いたアニメーション作成において、学生がつくった作品


    ▲FKのライブラリを用いて学生が制作したゲームの実行画面。ゲームエンジンが普及するまでは、本学のゲーム制作演習での制作環境としてFKが多用されていました


    ・実装の詳細

    FKは最初のバージョンからマルチプラットフォームを念頭に設計しており、様々なOSで利用できることからC++言語のクラスライブラリとして開発を進めてきました。私自身はUNIX環境が好きなのでMac OS上で開発を行うことが多いのですが、学生の大多数はWindows上で開発を行なっています。FK上で記述したコードは、Mac OSであっても Windowsであっても同様に動作します。この背景には、OpenGL、OpenAL、FLTK、freetypeといったマルチプラットフォームのシステムを用いてFKの開発を行なっているという理由があります。

    さらに、近年ではマイクロソフトが提唱した.NET環境をサポートするC++/CLI言語による移植も進め、.NETがサポートする言語(C#、F#、Visual Basic)であれば全て利用可能となっています。

    CG、ゲーム、および開発環境は、どれも日進月歩の勢いで発展しており、FKも少し間を置くとすぐに時代遅れな部分がでてきてしまいます。現在、特にリアルタイム3D技術を最新のものに対応させるべく開発を進めています。


    ・今後の展望

    ゲームエンジンが台頭してきたここ数年間は、自前でライブラリを開発することの意義について不安になることもありました。しかしながら、教育と研究を続けていく中で、何が適しているかは、結局は研究内容や当人の素養によること、FKを用いた研究が最も適している場合も多々あることがわかってきました。個人的な信条として、研究者は学生も含めて「自由」であるべきであり、自由であるためには、われわれ自身で開発環境を構築していくことも重要であると、改めて再認識している次第です。


    ・参考文献

    [1]渡辺大地: 独自ツールキットを用いたゲーム制作教育への取り組み, 情報処理学会学会誌, Vol.56, No.12, pp.1206-1209, 2015
    [2]R.Takeuchi, T.Watanabe, M.Kakimoto, K.Mikami, and K.Kondo: Stroke History Management for Digital Sculpting, 芸術科学会論文誌, Vol.11, No.4, pp.108-117, 2012
    [3]オタ芸モーションの誇張表現に関する研究, 学部卒業論文, 東京工科大学メディア学部渡辺研究室, 2017



    info.

    • 月刊CGWORLD + digital video vol.248(2019年4月号)
      第1特集:リミテッドモデリング
      第2特集:衣服制作特化型ツールのすすめ

      定価:1,540円(税込)
      判型:A4ワイド
      総ページ数:128
      発売日:2019年3月9日
      cgworld.jp/magazine/cgw248.html