ヘロブラインとジャイアントアレックスを自作アドオンで召喚した話【AIと4時間格闘した記録】

育児・日常

以前、長男と次男がヘロブラインを召喚しようとして失敗した話を書いた。

長男と次男がマイクラでヘロブライン召喚に挑んでいた話

あのとき2人は結局召喚できずに終わった。儀式は失敗し、都市伝説は幻のまま。

それから少し経って、思った。

「だったら、確実に出るアドオンを自分で作ればいいのでは。」

親としてやるべきことは他にたくさんある。でも、やる。


アドオンとは何か

Minecraftには「アドオン」という拡張機能がある。ゲームの中に新しいキャラクターや仕組みを追加できる。

ヘロブラインもジャイアントアレックスも、標準のMinecraftには存在しない。あくまでも都市伝説だ。アドオンとして自分で実装することで、確実に出現させられる。

ちなみに、アドオンは2種類のパックで構成されている。

ビヘイビアーパックは「動き」を定義するファイル群だ。キャラクターがどう動くか、どんな能力を持つかを設定する。

リソースパックは「見た目」を定義するファイル群だ。スキン(外見)やサウンドなどを設定する。

この2つを合わせてアドオンとして動作する。

私は普段、仕事でプログラミングをしている。

だから仕事以外ではやりたくない。(当然です笑)

実際のところ、コードはほぼ全部AIに書かせた。私はAIに指示を出し、エラーを貼り付け、また指示を出す。その繰り返し。自分で書いたコードはゼロだ。

子供への最高のサプライズになるかもしれない。


AIと格闘した4時間

私はAI(Claude)と会話しながら作業を進めた。「こういう動きにしたい」と伝えると、コードを書いてくれる。エラーが出たらコピペして解決させる。その繰り返しだ。

格闘、と書いたのには理由がある。

エラーその1:井戸の中からスタートして脱出できなかった

ヘロブライン召喚の手順は、まず村の「長老」と会話して召喚書を入手するところから始まる。長老は村にしか出現しない。つまり、ゲーム開始時に村がなければ、召喚のスタートラインにすら立てない。

マインクラフトでは村は自然発生するもので、都合よく近くにあるとは限らない。AIに「プレイヤーのスポーン地点に村を自動生成させる」コードを書いてもらった。

せっかくなのでリアリティを出したい。AIに「村の中に井戸も作って」と追加で指示した。

テストしてみると、ゲームが始まった瞬間、画面が暗い。

井戸の中だった。

スポーン地点が井戸の真ん中に設定されていて、外に出られない。

AIに「スポーン地点を井戸からずらして」と修正させて解決した。

エラーその2:ヘロブラインが全く動かなかった

ヘロブラインには3つのフェーズを設計した。「遠くから見ている」→「近くで待ち伏せする」→「突然襲いかかる」という流れだ。

召喚してみると、ヘロブラインはただ突っ立っているだけだ。全く動かない。

フェーズが切り替わっていないのが原因だった。AIに調べさせると、タイマーの単位を間違えていたことがわかった。ゲーム内の時間単位「tick(1/20秒)」と「秒」を混同していたせいで、10秒のつもりで設定した値が実際には200秒(3分以上)になっていたわけだ。

フェーズ通りに動くように修正させた。

エラーその3:AIが記憶を失った

4時間の作業の途中、AIの記憶容量が上限に達した。これまでの会話の内容が保持できなくなった。

「これまでの作業内容を要約してから続きを始める」という処理が自動で入ったが、細かい仕様の一部はリセットされた。重要な部分は改めて伝え直したものの、最初から説明し直した箇所もいくつかある。

やり取りは記録させていたが、細かい部分は拾いきれていなかったようだ。


完成したもの

4時間かけて、2体のキャラクターを実装した。

ヘロブラインは、一定の儀式を行うことで召喚できる。プレイヤーをじっと見つめる時間があり、近づくと攻撃してくる。空中に浮かんで移動し、攻撃を繰り出す。

ヘロブラインが去ったあとのワールドは、葉っぱブロックが消えて原木だけの木になったりするという話があるので、ヘロブライン出現後にプレイヤーの周りの木の葉っぱが破壊される動作を入れてみた。

この細かい部分が大事な要素となる気がしている。

ヘロブライン&木の葉っぱ破壊

ジャイアントアレックスは、名前の通り、巨大なアレックス(Minecraftの標準キャラクター)だ。

強力な攻撃力と高い体力を持つ、手ごわいボスとして実装するつもりだった。 結果的に、プレイするまで気づけなかったが、近づくだけで一撃で倒されるうえ体力が無限という、手の付けられない状態になっている。

ジャイアントアレックス

(これが後で問題になります)


子供たちと実際にプレイした

Realmという、家族で同じワールドに入れる機能を使ってプレイした。長男、次男、私の3人だ。

長老が倒されてしまった

私が子供たちに「次はあれをして、これをして」と誘導しているうちに、夜になった。敵キャラクター(モブ)が湧いてくる時間帯だ。長老は、敵モブたちに囲まれて倒されてしまった。

長老に会話しないと召喚の書はもらえない。その長老が、もういなかった。

儀式に必要なアイテム(金ブロックなど)も召喚の書に記された座標のチェストに入っている。

詰んだ・・・

しかたなく、儀式のやり方を知っている私だけクリエイティブモード(何でもできるモード)に切り替えて、強制的に実行した。

私がルールを曲げている。

クリエイティブモードでズルして儀式を行う

儀式

ヘロブラインが襲い掛かる前に倒した

召喚は成功した。

ヘロブラインは突然飛び掛かってくるわけではない。最初の2分間は「遠くからじっと見ている」フェーズで、近づいてきたり攻撃したりしない設計にしていた。ジワジワ怖い雰囲気を出す時間帯だ。

木の葉っぱが破壊されるところを見て、「うわっ!」「葉っぱがなくなってる!」と大はしゃぎだ。細かい設定を入れたのは大正解だった。

ところが長男は、そのヘロブラインを見つけた瞬間に飛び掛かっていった。なんと、ヘロブラインが本格的に動き出す前に倒してしまっている。

怖い雰囲気を出す間もなく、ヘロブラインはやられた。(作った側が一番がっかりした)

ジャイアントアレックスには近づけない

ジャイアントアレックスは、座標y=20以下に3分いると出現する条件(AIが設計)になっていた。

軽く動作を確認したときは、3分待つのが面倒なので「summon(召喚)」コマンドで無理やり出現させたが、実際に子供とプレイするときに条件を満たしても出現しない・・・

仕方ないので、またルールを曲げて、召喚コマンドで無理やり出現させた。 子供は細かいルールは気にしない。

「でかい!!!」 大はしゃぎだ。

子供たちは何度も倒そうとするが、近づくだけで一撃でやられるうえ、体力が無限で倒せない。ここでむりゲーということに気づいてしまった。


子供たちの反応

長男も次男も「うわ、出た!」「でかい!」と声を上げてはしゃいでいた。パパが何かを作ってきた、という驚きはあったようだ。

子供が「出た!」と声を上げる瞬間は作れた。AIと4時間格闘した甲斐はある。多分。


ホントはこうしたかった・・・

長老と話す

長老
長老セリフ

召喚の書をもらう

召喚の書

からの、儀式をして召喚する体験をすれば、Youtuberが配信している都市伝説系の動画のような体験をさせてあげられるはずだった・・・


ゲームはディティールが大事だと思った

今回、技術的な部分はほぼAIに任せて動くものを作れた。でも、実際に遊んでみて一番足りていなかったのはシナリオや詳細な設計だった。

長老がやられることは想定していなかったし、ヘロブラインを待機中に倒されることも、ジャイアントアレックスのパラメータがおかしくなることも、テスト不足で気づいていなかった。

キャラクターは動いても、「どう体験させるか」という設計がなければゲームにはならない。

ヘロブラインが怖い存在として成立するには、「見つけたら逃げてしまうくらい怖い」という状況が必要だ。長男が見つけた瞬間に飛び掛かっていけるようでは、都市伝説感がまるでない。先に出会い頭で倒されるような仕掛けが必要だった。

ジャイアントアレックスも、「倒せないけど逃げ回ることはできる」という遊び方ができれば、それはそれで面白くなったかもしれない。

動くものを作ることと、面白いゲームを作ることは、別の話だと実感した。

次に作るときは、シナリオから考える。次があるかどうかは、まだわからない。

タイトルとURLをコピーしました