AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox) | GameBusiness.jp

AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)

前回、漢字と絵文字だけでできた放置型ローグライク『探犬∞』を公開して、「しばらくこの迷宮を眺めて暮らそう」と書きましたが、その生活はその日のうちに、いや数十分で終わりました。

その他 その他
AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)
  • AIで自作した放置型絵文字ローグライク『探犬∞』に一人称視点をつけたらDOOMライクになった(CloseBox)

前回、漢字と絵文字だけでできた放置型ローグライク『探犬∞』を公開して、「しばらくこの迷宮を眺めて暮らそう」と書きましたが、その生活はその日のうちに、いや数十分で終わりました。



眺めているうちに、直したいところが次々に出てきたからです。

まずは地味なところから。読み上げが「蝠」を「フク」と読む。「静寂」が「せいじゃく」にならない。同じ語りが何度も繰り返される。始めてしまうと初期画面に戻れない。そういう細かいものをClaudeに投げては直してもらっていました。

そうやって手を入れているうちに、ふと聞いてみたくなりました。

「これのバリエーションで、3DのベクターグラフィックスでDOOM型のFirst Person Viewのやつを作れないだろうか」

壁という字が、壁になる

返ってきた設計はこうでした。盤面の状態も、偏差機関も、音楽もそのまま使う。描画だけを差し替える視点切替として作る。同じ世界を別の目で見る形なので、自動探査も音楽駆動もそのまま効きます。

レイキャスティングです。DOOMと同じ、光線を飛ばして壁までの距離を測り、縦一列ずつ描いていくあの方式。

面白いのは壁の描き方でした。「壁」という一文字を96×96のタイルに焼いて、それをテクスチャとして貼るのです。石の目地の枠線つきで。近づけば大きく、遠ざかれば小さく、面の向きで翳ります。漢字が、文字通り壁になりました。

床には奥へ収束する格子線を引きました。区画の刻みが見える、ベクター的な地面です。敵もアイテムも門も階段も、距離で拡大する板として立てて、Zバッファで壁の裏に隠します。

最初の実装で、Claudeは自分で問題を2つ見つけて直していました。壁が低すぎて這うような画になっていたこと。板が床に立たず宙に浮いていたこと。どちらも私が指摘する前に直っていました。

鏡文字を2回間違える

その代わり、間違えたところもありました。壁の字が左右逆になっていたのです。

レイキャスティングには「面によってテクスチャの向きが反転するので、片側だけ反転して揃える」という定石があります。左右対称な絵柄なら正しい処理ですが、字を貼ると全面が鏡文字になります。

指摘すると反転を全部外してきました。ところが今度は、逆側の半分が裏返ります。画面を左から右へ走るとき、壁上の位置が増える面と減る面があって、減る面だけを反転しなければならなかったのです。定石とはちょうど逆向きに。

2回目の修正では、Claudeは広間の中央に壁の柱を一本だけ立てて、東西南北の四方から一面ずつ見るテストを組んでいました。最初の確認が廊下を2方向から見ただけで、たまたま同じ面しか映っていなかったのが原因だったそうです。

こういうとき、AIが自分の間違いの原因まで遡って、次から間違えない確認方法を作ってくるのは頼もしいものです。

身体を持つということ

一人称になると、それまで無かった問題が出てきます。自分の身体です。

「うろつく犬は全身を見せずに、手前に上半身だけというのがあると、周囲にいる感じがしていいのでは。また、人が先頭の場合には、両手が前に出ているとそれらしいし。猫や犬の場合には、顔の一部だけが時々映るようにすると効果的かも」

そう頼んだら、画面の下端から身体の一部だけを覗かせる層ができました。人なら両手。犬や猫なら顔。相棒の犬は上半身だけが手前を横切ります。

手は最初、左右同時に上下していました。「片方ずつにしたら歩いている感じが出る」と言うと、正弦の位相を半周ずらして交互に振り出すようになりました。

右手には剣を持たせました。切先が左下を向いていたので直してもらうと、12方向の回転を全部描いて比べたうえで180度が正解だと決めていました。戦闘に入ると、剣を持たない側の手は拳を握ります。

面白かったのは犬と猫のときです。最初、顔がまるごと画面に出てきました。それを見て気づきました。

「目が見えてしまうと、敵ではなくこちらを向いていることになる」

一人称で自分の頭が見えるなら、それは後頭部でなければおかしい。そう伝えると、下端から覗かせてよい割合に上限を設けて、目の手前で止めるようになりました。迫ってくる感じは、上への移動ではなく拡大で表します。頭頂部が大きくせり上がってくる絵になりました。

まあ、これも絵文字で全てを表現し、それ以外のあらかじめ用意した画像は使わない、という謎シバリがあるからなのですが……。

91ミリ秒の呼吸

戦闘の見せ方は何度もやり直しました。

打撃の瞬間、剣の切先が真上を向いて、そのまま振り下ろされて視界から消える。最初は打撃音の190ミリ秒後に真上へ来ていました。少し遅い。溜めの緩急を逆にして、音と同時にぱっと立ち上がるようにしてもらいました。今は91ミリ秒後です。

犬と猫のときは、同じ91ミリ秒で跳ね上がって噛みつきます。剣と獣で動きは違いますが、音との合わせ位置は同じにしてあります。

打撃音そのものも作り直しました。もともと鳴ってはいたのですが、細い矩形波の32分音符ひとつで、音楽に完全に埋もれていたのです。「スネアよりもクラッシュシンバルの音の方がわかりやすい」と伝えたら、金属的な倍音を持つシンセに高域の雑音を添える構成になりました。余韻が196ミリ秒から1123ミリ秒に伸びています。

この数字が出てくるのには理由があります。Claudeはブラウザで音を鳴らして確認できない環境にいました。自動再生の制限で、ゲームを起動できないのです。そこでオフラインで波形をレンダリングして、ピーク値と実効値と余韻の長さを測っていました。「シンバル単体でも1123ミリ秒の尾が出ているので、伸びは確かにシンバル由来」という報告が来ます。耳の代わりに数字で確かめているわけです。

筆者が確認すれば一発OKなんですけど、自分で確かめようとしているのがえらいですね。

時間だけを引き伸ばす

もうひとつ、戦闘で困っていたことがあります。決着が速すぎて、ナレーションが間に合わないのです。

原因を調べてもらったら、ゲームの進行が音楽の16分音符に直結していましたことが判明。そして戦闘に入るとBPMが上がる設計ですから、戦闘中はかえってゲームが速く進んでいたのです。

「戦闘時には時間の進みが遅くなるようにしたほうがいいかも。音楽はそのままで」

音楽の刻みとは別に間引き用の計数を持たせて、探索は16分2つごと、戦闘は6つごとに1ティックとしました。曲のテンポには手を触れていないので、音楽はこれまでどおり戦闘で速くなります。なのにゲームの時間だけが2.2倍から2.7倍に伸びる。

音楽は加速し、世界は減速する。偶然ですが、この作品の主題である「音楽と生の乖離」がそのまま操作感になった気がします。

手負いになると視界が狭まってぼやける効果も入れました。残りHPが35%を切ると効きはじめ、視界の内径が絞られていきます。鼓動に合わせてわずかに脈打ちます。これはCSSではなくキャンバス側で処理してもらいました。CSSだと表示だけに掛かって、録画に乗らないからです。

「見てるだけ」が揺らぐ

そして最後に、決定的な変更をしました。

「ASDWかカーソルキーで方向制御ができるようにしたい。ただし、回数限定。初期値は5回(ストローク)まで」

前回の記事の最後に、私は冗談として「課金で自分で操作できるようにするとか(笑)」と書きました。それが2日で実装されてしまいました。課金ではありませんが、回数制限つきで。

十字キーは画面にも置きました。スマートフォンで指で押せるようにです。中央に残り回数が出て、押している間はその方向を優先し、離すと自動探査に戻ります。使い切ると暗くなって押せなくなります。

一人称のときは視線基準(Wが前)、俯瞰のときは盤面基準(Wが北)で解釈します。ただし押した瞬間に盤面の向きへ固定します。視線基準のまま持ち続けると、曲がるたびに基準がずれて円を描いてしまうからです。

5回だけ手綱を引ける。それ以外は、やはり見ているだけ。この配分がちょうどいいかどうかは、まだわかりません。

ローグライクからDOOMライクへ?

さて、ここまで来ると気になってきます。ローグライクという言葉があるように、DOOMライクというジャンルはあるのでしょうか。

調べてみると、あります。「DOOM-like(ドゥームライク)」という言い方は実際に使われます。ただしroguelikeほど定義が固まったジャンル名ではありません。

1990年代前半から中盤には、DOOMの成功後に出た一人称視点のアクションゲームをまとめて「Doom clones」と呼ぶことが多く、その後より中立的に「Doom-like」や単にFPSと呼ばれるようになりました。

DOOMライクと言ったときに想定されやすい特徴は、たとえばこんなものです。高速な一人称シューティング。大量の敵を相手にする。迷路的なレベル構造。鍵やスイッチを探して進む。武器・弾薬・体力をマップ内で拾う。カバーに隠れるより、動き続けることが重要。ストーリー演出は比較的薄く、戦闘と探索中心。

現代のゲームだと、DUSK、AMID EVIL、Prodeus、Ion FuryあたりはかなりDOOMライクと呼びやすいと思います。近年はこの系統を「boomer shooter」と呼ぶことも非常に多いですね。DOOM、Quake、Duke Nukem 3Dあたりの90年代FPSを意識したレトロFPS全般を指す、やや冗談めいた呼称です。

面白いのは、分岐の仕方が違うことです。

Rogue → roguelike → roguelite

のように明確なジャンル分岐ができたのに対して、

DOOM → Doom clone / Doom-like → FPS → boomer shooter

という具合に、DOOMの場合はむしろゲーム業界全体の基本ジャンルである「FPS」に吸収されてしまいました。

でも、このゲームの場合は、使うのは剣と噛みつきだけだから、シューティングではないよなあ。

1994年ごろなら「DOOMみたいなゲーム」自体がジャンルだったのに、数年後にはそれが「FPS」という巨大ジャンルの標準形になってしまった。かなり珍しいケースです。ローグライクが今も「ローグライク」であり続けているのとは対照的ですね。

もともと、3D迷路はWizardryからそうだった

もっとも、「一人称視点で3D迷路を探索する」こと自体は、DOOMよりずっと前からあります。Wizardryはまさにその代表格です。

1981年の初代『Wizardry: Proving Grounds of the Mad Overlord』は、画面上ではワイヤーフレームの一人称視点でダンジョンを歩き、90度単位で向きを変えながら迷路を探索します。構造だけ抜き出すと、一人称視点、格子状の3D迷路、扉・通路・階段を探索、マップを頭の中あるいは紙に描く。後のDOOMにも通じる「空間を攻略するゲーム」なんですよね。

筆者と妻もWizardryをIBM PCバージョンで遊んでいました。妻は丁寧にマッピングやキャラクター表を残してくれています。さすが地図イラストレーターです。

今回の無限ダンジョン探索ゲームも「作ってね」と無意識に指示されていたのかもしれません。

ただし両者とも系譜としては少し枝分かれしていて、WizardryはダンジョンクロールRPGへ、DOOMはリアルタイム・アクションFPSへ進みました。間には『Dungeon Master』や『Eye of the Beholder』のような、リアルタイム性を強めた一人称ダンジョンRPGもあります。

さらに遡ると、Wizardry以前にも一人称迷路ゲームはあります。1970年代の『Maze War』や『Spasim』まで行くと、「一人称3D空間+対戦」というFPSの祖先まで見えてきます。

ですからDOOMの革新は「3D迷路を発明した」ということではなく、それまでRPGや実験的ゲームにあった一人称3D迷路を、高速なリアルタイム戦闘の舞台にして、滑らかな移動・射撃・敵AI・音響まで一体化したところにある。そう考えるとかなり整理しやすくなります。

そして面白いのは、WizardryとDOOMって、プレイヤーがやっていることを抽象化すると意外と似ていることです。「未知の迷路に入り、扉を開け、敵を倒し、資源を管理し、出口を探す」。戦闘システムだけがターン制からリアルタイムになった、と見ることすらできます。

探犬∞は、その間にいる

そう考えると、『探犬∞』が今いる場所がはっきりしてきます。

俯瞰モードは、格子の上を犬・猫・人が歩く、まぎれもないローグライクです。一人称モードは、壁のテクスチャを見ながら通路を進み、敵が拡大しながら迫ってくるDOOMライクです。Vキーひとつでその間を行き来します。

けれど中身は同じ盤面、同じ偏差機関、同じ自動生成音楽です。切り替えているのは目だけで、世界は一つしかありません。ターン制かリアルタイムかという分岐点より手前、「未知の迷路に入り、扉を開け、敵を倒し、資源を管理し、出口を探す」という抽象のレベルで、二つの視点が同居しています。

WizardryとDOOMが分かれる前の場所に、うっかり立ってしまったのかもしれません。

もっとも、この犬は資源を管理しませんし、出口を探しているのかどうかも怪しいところです。飽きたら下へ降りるだけ。手綱は5回しか引けません。

公開URLは変わらず、matsuo-koya.github.io/tanken-infinity。GitHubのリポジトリもそのままです。Vキーか、画面の「◈ 一人称」ボタンで視点が変わります。

しばらくこの迷宮を、今度は中から眺めて暮らそうと思います……といいながら、RTX 5090搭載PCでMiniMax H3とMiniMax Music 3を動かし始めているのでした。

《松尾公也》

この記事の感想は?

  • いいね
  • 大好き
  • 驚いた
  • つまらない
  • かなしい
【注目の記事】[PR]

関連ニュース

特集

人気ニュースランキングや特集をお届け…メルマガ会員はこちら