意外と若年層もこのblogを読んでるらしいので、ラブプラス記事の感想。

ラインバッファ

だし、DSのGPUでは、レンダーターゲットに相当するカラーバッファは1フレーム分なく、全画面の1/4に相当する256×48ドット分しかない。いわゆるラインバッファという感じの実装となっており、

通常の人間にはラインバッファという単語自体が耳なれないかもしれない。画面を出力することは地味に難しい。まず、いくつかの制限を理解する必要が有る。
1) ピクセル情報を、順番かつリアルタイムに出力する機構が必要になる。一般的に、モニタ側にはメモリは搭載されていない*1ため、ディスプレイの"走査線"の動きにあわせてピクセルデータをRAMから出力する機構が必要になる。
ここで言う走査線はまさにCRT(ブラウン管)で言う走査線の動きで、左から右、上から下に向かって"シリアルに"画面情報を送信してやる必要がある。
ちなみに、表示デバイスが液晶になっても、この問題は代わらない。液晶自体には表示を記憶する機能が無いし、すべての画素に対してデータ線を配線するのもあまり現実的でない。
2) しかし、普通のRAMは読み出しと書き込みを同時に行うことはできない(入力と出力でアドレス線やデータ線を共有する)*2。このため、専用の機構を持ったRAMを採用する必要があった。
一般的なゲーム機は複数の画面を(セル画アニメのように)合成して表示する機能を備えていた。このとき、最終的な表示画面を1ラインごとに保持するのが"ラインバッファ"方式と言える。
... これ以上の話はここでは重要では無くて、要するに"ビデオのためのRAMは高くつくので、最終的な合成結果を再利用することは考慮されづらい事情が有る"。
DSは、おそらく家庭用ゲーム機の歴史で最後の、このようなビデオ表示アーキテクチャを持つハードウェアだろう。
もっとも、個人的には同様の概念が電子ペーパーや他の表示デバイスのために生き残っていくように思える。

スプライトダブラ

かつて初代ファミコン時代、表示数制限の厳しかったスプライトを、時分割表示をすることで倍化して表示させるテクニックが生み出されて、ファミコンの映像表現力が一気に向上したことがあったが、まさに、あれの21世紀版3D編といった風情である。

詳細は検索のこと。。

スカート部分が尖って残る理由

穴の空いていない、不透明な物体を描画するとき、"カメラに向かって裏面を見せているポリゴンは描画しなくて良い"と仮定できる(隠面消去の一種)。
脚も一周分は描かれておらず、前の半周分しか描かれていないことに気付くだろう。
ここで描画されているスカート部分の物理的な意味は裏面だが、この描画パスでスカートを描く目的は、2パス目( http://game.watch.impress.co.jp/img/gmw/docs/365/048/html/lov13.jpg.html )で描かれないスカートの裏面部分を補完するためなので、表裏を単に入れかえていると考えられる。
一般的には、後ろから描いていって重ね書きする(Zソート)や描画したピクセルの画面上での奥行きも記録していって、1ピクセル描くごとに比較する(Zバッファ)といった手法もある。。
感覚的に理解できるように、1ピクセルごとに比較するのは重い処理なので、Dreamcastくらいまでの世代のゲーム機やDSでは、今回のラブプラスの例のように"キャラクタを固定順で描いて比較を行わない"方針を採っていることが多い。

人間という形状の特殊性

この辺の事情で最も重要なのは、人間という形状の特殊性だろう。
"描画システムの都合で"、ラブプラスの世界には4つ脚や不定形の形状を持つヒロインは存在できないということになる。
ただ昔と事情が異なるのは、デザイン先行でシステムをデザインできるという点だろう。例えば、マリオはシステム先行でデザインされている( http://www.nintendo.co.jp/wii/interview/smnj/vol1/index2.html )。16x16ドットでの表現力を考慮してキャラクタはデザインされた。
PSやSSの時代までは、頂点アニメーションの表現力にも一定の限界が有ったので、デザインの際に考慮するケースもそれなりに有ったように思う。Dreamcastでも半透明は依然遅かった(ので、半透明の衣装やステージは諦めざるを得ないケースが多かったらしい)。
今は家庭用ゲームハードの処理性能よりもPCの処理性能の方が高いため、PCや他の方法によってデザインを先に動作させることが可能になった。このため、デザイナの道理が通りやすい環境になったように思える。
で、人間は形状としてかなり特殊な条件を持っている。例えば、ラブプラスのようにスカートをはいたキャラクタであれば、股関節部分を描画する必要は無くなる。関節部分はポリゴンアニメーションの泣きどころで、それを"衣装"によって誤魔化せるのは非常に重要なファクタと言える。(しかも体表にあまり毛が生えていない! - 毛も3DCG表現において難しい問題だ)
もちろん、いわゆる"不気味の谷"のように、人間だからこそ難しくなる問題もある。しかし、人間の表現は写実的とは限らないのも重要な点だろう。

これだけ制限の多いビデオハードウェアを使うくらいなら、全てソフトで描けば良いんじゃないかと思われがちだが、DSの場合は座標演算処理で相当なCPUパワーを持っていかれるので難しい。
notepadでシナリオ作業をしていたというのが個人的には結構衝撃で、いくらなんでも環境構築にコストを掛けなさすぎに思える。。プログラマ以外が使うツールの充実は重要課題だと考えている。

*1:もちろん、最近の"高画質化"とかそういう処理のために、一旦画面情報を蓄積できるディスプレイが一般的になったが。。

*2:他に物理的問題もある。