組み込みシステムにおけるアバター描画への要求

目下研究中。クリアすべき課題が多すぎるので現段階の事業化は諦め気味。

必要性

  • 感情表現を付与できる
  • データを少なく抑え、かつ、多様な差し替えを可能にする
  • 処理する画素数に対してグラフィックスエンジンは強力でない

課題

チップと主CPUとの帯域は可能な限り小さくしたい。そのため、主CPUは頂点分割などの作業を行わないモデルにせざるを得ない。
専用のASICを起こすのでなければ、既存のチップを使うことになるが、その場合のAPIはOpenVGやそれに相当する物になる。

  • Flash等他の環境に対する優位性

現段階では無いとしか言いようがない。最大の問題。
例えば3D描画を行うよりは演算すべき頂点が減らせるため簡単になるというメリットがあるが、Flashのような2Dアニメーションシステムに対する明確な利点は無い。

  • 既存のキャラクタを(画風を含めて)高い再現性で再現する

完全に欠落していた視点。キャラクタを新規開発することしか想定していなかった。

方向性

  • デザインツールを作る

必須。
現在はスクリプティングによりキャラクタを描画することを前提にしていたが、完全に座標ベースにする必要がある。(デザイナが一人で仕事できるようにしなければならない)
また、デザインツールが十分に優秀ならば、Flashに対する優位性は必ずしも必要ではない。。

固体(輪郭)とマテリアル(布や髪)、オブジェクト(目、口)の3つに分割する。
システムにとって重要なのは顔の描画なので、それを実現するためのプリミティブを揃えることになる。
固体とマテリアルは3次元形状データであり、固体とマテリアルの差は変形用の関節処理を入れるか否か。
オブジェクトは2次元形状データ+変形。要するに、先に3次元形状を描画し、細かいパーツは後で貼り付けるという「福笑い方式」。これは3Dのキャラクタ描画でも行われることで、目や他の表情パーツはテクスチャとして用意し、ディスプレイリストの後に回す。

  • ジオメトリ正確にする

システム複雑化の要因が、スクリプティングによるキャラクタ描画。要するに各パーツや視点方向に対して別々のプログラムを使って体の各パーツを(2次元的に)描画していた。つまりプログラムが画風を規定していた。
今度は、使用するプリミティブを制限して「計算を手抜きしても崩れづらい2Dモデルが常に得られる」という方向性に切ってみる(例えばFlashのAS内で処理が完結する程度)。
よくデッサンの教科書などで、四角や直線を用いてオブジェクトの概形を捉える訓練が紹介されるが、同じ事をプリミティブとして実現できないだろうか。つまり、ローポリゴンモデルを用いて座標を計算し「簡単だけど効果的な方法で」テッセレーションできれば良い。
プリミティブの選択は大いに関係する。例えば円柱がプリミティブに含まれていれば、どう回転させても楕円と直線で描画できることには変わりが無い等。もっとも、この様な単純なケースは実用上は殆ど無いと思われる。
ベジェやNURBSと異なるのは、個々の3次元頂点を正確に導出する必要は無く、「よく使われる視点に対して」「それなりに正確な結果が」「高速に導出される」という条件。例えばNURBSのコントロールポイント設定を限定することでこれが達成できる可能性は有るが。。

方針

ローポリゴンモデルの補完法を開発する というのが素性が良さそうなのでこの方向で先行研究を探す。
現状の仮想ライバルはMascotcapsuleで、これが秒間500ポリゴンを描画するのと同程度の負荷で、完全なベクタイメージを生成して描画エンジンに投げる必要がある。つまり、人体一つに使えるポリゴンはMascot-のそれよりずっと少なくなる。