「性能が足りなかったわけじゃない」ニンテンドーDSの3D回路は1つだけ…それでも上下の画面に3Dが映るソフトがあるのはなぜ?

「性能が足りなかったわけじゃない」ニンテンドーDSの3D回路は1つだけ…それでも上下の画面に3Dが映るソフトがあるのはなぜ? 技術・発明

上下2つの画面でおなじみのニンテンドーDS。このゲーム機、3Dの映像を出せるのは1コマにつき片方の画面だけだった。3Dを描画する回路が1つしかなく、出力先も一度に片方に限られていたためだ。それでも、上下の両方に3Dが映るソフトはある。からくりは、3Dを描画する画面を1秒間に約60回、上と下で入れ替えること。回路が片方に回っているあいだ、もう片方には直前に取り込んでおいた絵を映していた。

※注:元スレッドのタイトルは「DSは2画面同時に3Dを描画できるほど高性能ではなかった」としているが、リンク先の記事(技術系サイト「Hackaday」、2021年)は性能不足とは書いていない。正確には、処理能力の問題ではなく、3Dを描画する回路の出力先が1コマにつき片方の画面に限られるという、設計上の制約である。この記事はそちらに沿って書く。

今日の知ってた?

🎮 任天堂が2004年に発売したニンテンドーDSは、3Dを描画する回路が1つだけ。3Dを出せるのは1コマにつき片方の画面だけだった(1コマは、画面を1回書き換える単位)

🔁 上下の両方に3Dを出すソフトは、3Dを描画する画面を1コマごとに入れ替えていた。描画した絵は本体の機能でメモリに取り込んでおき、回路がもう片方の画面に回っているあいだは、その絵を映しておく

⏱️ 画面の書き換えは毎秒約60回。それを上下で交互に使うので、両画面3Dのときは各画面の動きが毎秒30コマまでになる

🧊 原因は処理能力の不足ではなく回路のつくり。映す物が立方体1個でも、両画面に3Dを出すなら交互に描画するしかない

🗺️ そのため多くのソフトは、片方の画面を3D、もう片方を地図などの2Dにしていた

背景:ニンテンドーDSの映像を作る「3つの回路」とは

ニンテンドーDSは、任天堂が2004年に発売した携帯型ゲーム機である。北米で11月21日、日本で12月2日に発売され、日本での当初の価格は1万5000円だった。折りたたみ式の本体に、3インチ・256×192ドットの液晶画面が上下に2枚並び、下の画面はタッチパネルになっている。任天堂の公表値では、DSシリーズ全体の累計販売台数は全世界で1億5,402万台にのぼる。

このDSの中には、映像を作る回路が3つ入っている。2Dの絵を扱う回路が「メイン」と「サブ」の2つ、3Dを描画する回路が1つだ。メインとサブは、上下の画面を1枚ずつ受け持つ。3Dの回路が作った絵は、メイン側が背景の1枚として受け取って画面に出す。サブ側には3Dを受け取る機能が無い。つまり、3Dが映るのは、そのときメイン側につながっている画面だけ、ということになる。

そこで多くのソフトは、片方の画面で3Dのゲーム画面を動かし、もう片方には地図やメニューなどの2Dの絵を出す、という使い分けをしていた。元スレッドがリンクしている Hackaday の記事も、ハードウェアによる3Dは一度に片方の画面でしか使えず、もう一方には見下ろし型の地図のような2Dの絵を出すのが普通だった、と説明している。

もう少し詳しく

絵を取り込んでおく「キャプチャ」の機能。DSのメイン側の回路には、いま作った映像をビデオ用のメモリに取り込む「キャプチャ」の機能がある。また、メイン側を上下どちらの画面につなぐかは、ソフトから切り替えられる。両画面3Dはこの2つを組み合わせる。有志が開発しているDS向けの開発キット「BlocksDS」などの技術解説によると、基本のやり方はこうだ。あるコマでは、メイン側を上画面につないで上画面用の3Dを映し、同時にその絵をメモリに取り込む。次のコマでは、メイン側のつなぎ先を下画面に切り替えて、下画面用の3Dを映す。このとき上画面を受け持つのはサブ側に替わるが、サブ側は取り込んでおいた絵を1枚の画像として映すので、上画面にはさっきの3Dがそのまま残って見える。これを1コマごとに繰り返す。どれも本体に最初から備わっている機能で、抜け道を突いたわけではない。

引き換えになるのは、コマ数とメモリ。同じ解説によると、DSの3D回路が出せる絵は毎秒60枚まで。これを上下で分け合うので、両画面3Dにするとゲームの動きは毎秒30コマに落ちる。取り込んだ絵の置き場所としてビデオ用メモリの一部を空けなければならず、そのぶん、立体の表面に貼る絵(テクスチャ)に使える容量も減る。処理が間に合わずにコマが落ちると、上下の絵が入れ替わって見えてしまうやり方もあるという。そもそもDSの3D回路は、1コマに描画できるポリゴンの数にも、三角形で約2,048枚までという上限がある。

両画面に3Dが映るソフトの例。英語版ウィキペディアによると、2007年に発売された『ゼルダの伝説 夢幻の砂時計』は、通常は上の画面に地図、下の画面に3Dのゲーム画面を出している。ところがボス戦の多くなど一部の場面では、上下の両方に3Dの映像が映り、まわりを広く見渡せるようになる。

海外の反応

1. 海外の名無しさん
元スレのタイトルは、リンク先の記事の内容をねじ曲げてるよ。DSの「性能」の問題じゃなくて、3Dを描画する回路が一度に片方の画面しか相手にできない作りだった、という話。だから立方体1個でも、両画面に映すなら交互に描画するしかない。DSの画面の書き換えは最大で毎秒60回だから、理屈のうえでは、両画面3Dは毎秒30コマが上限になる。

2. 海外の名無しさん(>>1への返信)
まとめてくれて助かる。性能の問題だと言われてもピンとこなかったんだ。3Dの場面を簡単にすれば負荷は減るんだから、それなら両画面とも普通の速さで動かせるはずだし。「1コマにつき片方の画面にしか出力できない」というなら、まったく別の話だね。

3. 海外の名無しさん
そういえば『ファイアーエムブレム 覚醒』も、グラフィックをまともに描画するだけの性能が足りなくて、開発陣がキャラクター全員の足を無くしたんだよね。

※ 『ファイアーエムブレム 覚醒』は2012年発売のニンテンドー3DS用ソフトで、今回のDSとは別のゲーム機の話。足首から先が無い理由は、アートディレクターの草木原氏が、米国任天堂の公式サイトに載った開発者インタビュー(2013年)で説明している。開発を始めた時点では、キャラクターのモデルに骨組みや関節をどれだけ使えるかがはっきりせず、全員が武器で戦うので足首から先は要らない、と判断したという。その後、3DSには足先まで描画する余力が十分にあったと分かった、とも語っている(ゲーム情報サイト「インサイド」の2013年4月の記事による)。「性能が足りなかった」わけではない。

4. 海外の名無しさん(>>3への返信)
それはニンテンドー3DSのゲームだね。ここで話しているのは初代のDSで、3DSじゃないよ。ちなみに3DSのほうは、立体に見えるのは上の画面だけだった。

5. 海外の名無しさん(>>4への返信)
そんなはずない、だってあれはずっと昔のゲームで……(発売日を調べる)……うわ、もうそんなに前なのか。自分が年を取っただけだった。

6. 海外の名無しさん(>>3への返信)
たしか、3DSの性能が足りなかったわけじゃないんだよ。開発元のインテリジェントシステムズが、新しいゲーム機でどこまで描画できるのか読み切れなくて、ポリゴンの数を抑えるために最初から足のないモデルにしたんだったと思う。同じ3DSであとから出たシリーズ作品では、ちゃんと足が付いている。

7. 海外の名無しさん(>>3への返信)
あのゲームは何百時間も遊んだし、追加コンテンツを全部買ったのも人生であれが初めてだった。……それなのに、足が無いなんて今の今まで気づいていなかった。

8. 海外の名無しさん(>>7への返信)
たいてい足元が草むらか何かで隠れていたから、意識して見ないと気づかないんだよ。でもよく見ると、脚の先が小さな丸いこぶみたいになっていて、全員、ヤギの脚をした神話の半獣人みたいだった(笑)

9. 海外の名無しさん
それって、画面が高速で点滅しているのと同じじゃないの? 遊んでいて頭が痛くなったり、発作を起こしたりする人が出なかったのが不思議なんだけど。

10. 海外の名無しさん(>>9への返信)
3Dを描画していないあいだ、画面が消えるわけじゃないよ。前のコマの絵がそのまま映り続けて、次の絵に替わるまでが少し長くなるだけ。1画面なら毎秒60コマで出せる3Dを、2画面で30コマずつにしているということ。毎秒30コマの動画を見て頭が痛くなる? それと同じだよ。

11. 海外の名無しさん
ちょっと混乱してる。これって要するに、コマ数を2つの画面で半分ずつ分け合っている、というだけの話じゃないの?

12. 海外の名無しさん(>>11への返信)
そのとおり。映像を作る流れが1本しかなくて、それで別々の画面を2つまかなうなら、1回の描画で2画面ぶんをまとめて作るか、交互に作るかのどちらかになる。世界でいちばん高性能な映像チップを持ってきても、この制約は変わらないよ。

13. 海外の名無しさん
タイトルには「システムをだました」とあるけど、だまされていたのはゲーム機じゃなくて、遊んでいる人間のほうでは。

14. 海外の名無しさん(>>13への返信)
まあ、非力なマシンが技術の奇跡を起こしているように見せるのは、もう何十年も前から任天堂の得意技だからね。

15. 海外の名無しさん
性能が足りなかったわけじゃないんだ。DSの映像チップには、役割の決まった「エンジン」と呼ばれる回路が3つ入っていた。2つが2D用で、3Dを描画できるのは1つだけ。その3D用エンジンは、一度に片方の画面でしか使えない。両画面を3Dにしたければ、3Dエンジンの絵を片方の画面に出しつつメモリに取っておいて、次のコマでは3Dエンジンをもう片方の画面に切り替える。これを繰り返すから、コマ数は実質半分になる。ついでに言うと、DSの3Dは作りがかなり変わっていて、1コマに描画できるポリゴンの数にきっちり上限があるし、三角形だけじゃなく四角形のポリゴンもそのまま扱える。

16. 海外の名無しさん(>>15への返信)
しかもこれ、裏技でも何でもなくて、ハードに最初から組み込まれていた機能なんだよね。「だました」というより、用意されていた道具を使っただけ。

17. 海外の名無しさん
リンク先の記事にある動画でも、この機能は軽く触れられただけで、実際に使っているゲームは出てこなかった。映っていたのは、虹色の図形が動くデモだけ。どのゲームがこれを使っていたんだろう? 面白い話なのは間違いないけどね。

18. 海外の名無しさん(>>17への返信)
ほとんどのゲームは、そもそも両画面を3Dにしなかったんだよ。下の画面は、ほぼ決まって2Dだった。

19. 海外の名無しさん(>>17への返信)
自分が覚えているのは『ゼルダの伝説 夢幻の砂時計』のボス戦。いつもは上の画面が地図なのに、ボス戦になると上下の両方が3Dになって、急に世界が広がったみたいでわくわくした。当時は、裏でそんなやりくりをしているなんて考えもしなかったよ。

20. 海外の名無しさん
……ということは、結局のところ、性能は足りていたってこと?

21. 海外の名無しさん(>>20への返信)
そう言っていいと思う。3Dの映像をどう軽くするかという工夫は、3Dそのものと同じくらい昔からある。画面を交互に描画して、2つの画面を違和感なく見せられるなら、そのゲーム機は「性能が足りている」んだよ。

22. 海外の名無しさん
80年代や90年代のハードから、性能を最後の一滴まで絞り出していた開発者たちの工夫は、本当に面白い。ちょうど、昔のフロッピーディスクの起動用の領域(ブートセクタ)にゲームを丸ごと収めてしまう人たちの動画を見ていたところなんだ。技術的にはもう必要のないことを、今でも腕試しとして続けている人がいるのがいいよね。活動量計みたいな最小限の機械で『DOOM』を動かす、とか。

23. 海外の名無しさん(>>22への返信)
DSが出たのは80年代でも90年代でもなくて、2004年だけどね。ただ、言いたいことには賛成。それに、こういう工夫は今こそ必要だと思う。容量はいくらでもあるという前提で、ゲームのデータは膨らむ一方。アップデートのたびに何GBもダウンロードさせるなんて、どうかしてるよ。

24. 海外の名無しさん
DSの3Dゲームといえば、『C.O.P. The Recruit』はとんでもないゲームだった。DSで動く、街を自由に走り回れる『グランド・セフト・オート』風の3Dゲームなんだ。プログラムを1行残らず切り詰めると、ゲーム機からここまでの性能を引き出せるのかと驚いたよ。同じスタジオは、ゲームボーイアドバンスで『アステリックス』の3Dゲームも作っている。制約だらけのゲーム機であんなものを動かしてしまう開発者には、いつも感心する。

※ 『C.O.P. The Recruit』は、ユービーアイソフトが2009年に北米と欧州で発売したニンテンドーDS用ソフト。開発はフランスのスタジオ VD-dev。『アステリックス』はフランスの人気漫画で、ゲームボーイアドバンス版の『Asterix & Obelix XXL』を同じ開発者が手がけた。

25. 海外の名無しさん(>>24への返信)
そういうのこそ、本物の情熱が生んだ仕事だよね。メモリの割り当てに夢中になる開発者たち。自分にはとても真似できないけど、ゲームをどうやって軽くしたのかという裏話を聞くのは大好きなんだ。『クラッシュ・バンディクー』の話とか。

まとめ

ニンテンドーDSは、3Dを描画する回路が1つしかなく、映像は1コマにつき片方の画面にしか出せなかった。両画面に3Dを出すソフトは、3Dを描画する画面を1コマごとに入れ替えていて、各画面の動きは毎秒30コマまで。コメント欄では、「性能不足」とした元スレッドのタイトルへの訂正が相次ぎ、限られたハードを使い切る工夫への感心が並んだ。2つの画面の裏側は、発売から20年以上たった今も語りがいがあるようだ。

元ソース: ニンテンドーDSは2画面同時に3Dを描画できるほど高性能ではなかったため、開発者はシステムをだます形で、上下の画面に1秒間に何十回も交互に3Dを描画させ、両画面で同時に3Dが動いているように見せていた

コメント