
【プロジェクト:Neith】育成メニュー画面ほぼ完成?〜みんなで作るゲーム制作【4/21(火)5日目】
■育成メニュー画面への遷移と行動イベントの実行まで作成!
■募集中のアイディア
・「古代エジプト編」で発生しそうなイベントを考えてください!
(例:ピラミッドでの修行、ナイル川でのハプニングなど)
(期限:なし。皆さんの自由な発想をお待ちしています!)
こんばんは、「まる。」です!
早いもので、プロジェクトネイトも今日でいよいよ5日目を迎えました。
昨日から本格的に取り組み始めた「育成メニュー画面」の作成。
これまでは宴3という強力なアセットのおかげでスムーズに開発を進めてこられたのですが……
今回はいよいよ、自作のメニュー画面を組み立てながら、
宴3のシナリオパートのシステムとも連携させるという、
なかなか骨の折れる挑戦が始まっています😏
Unityの経験がまだ浅い彼女は、
今夜も無事に乗り越えることができるのか……?
それでは、開発5日目、スタートです!
二人の茶番
🎧いつもの
アンゴラたちの踊り/作(編)曲 : まんぼう二等兵
• DOVA-SYNDROME公式 作曲者 まんぼう二等兵

「よお、おまえら!
オレだよ、ポマイラ様だ!
みんな、ちゃんとしっかり睡眠は取ってるか?
睡眠を取らないと、オレ様みたいなダンディな男にはなれないぜ!」

「…」

「ん?どうした、ネイト。
今日はいつもより静かじゃねぇか。」

「…あぁ、ポマイラ。
ちょっと、この後の開発について考えただけ。」

「…今日はいつにも増して真剣じゃねぇか。
そんなに難しそうなのか?」

「…うん。これからは、かなり難しい挑戦になると思うの。」

「それは、どうしてそう思うんだ?」

「今日までの開発は、アセットっていう……
最初から仕組みが出来上がっているものの力を借りながら進めてこられたわ。」

「あぁ、シナリオの表示とかは全部『宴3』っていうアセットがやってくれてるんだったよな?」

「…うん。でも今日からは、その宴3を一度卒業しながらも、必要な場面では再び宴3を呼び出す……
そういう仕組みを自分で作らないといけないの。」

「それに、宴3はもうサービスが終了しているから、正確な情報が生成AIでも見つけにくい環境になってるのよ。
だから、ほとんど自分の力だけで踏ん張らないといけない。」

「なるほどなぁ。
限られた時間の中で、未知のシステムを自力で組むのは確かに大変だな。
……で、勝算はあるのか?」

「一応ね、昨日の開発で少し時間が余ったから……
先にClaudeさんにコードを書いてもらってあるの。
それが一発でうまく動いてくれれば、何も心配はいらないはずよ。」

「おいおい! それを早く言えよ!
しっかり準備できてるじゃねぇか!
Claudeって本編の制作でも重宝してる優秀なAIだろ?
なら、何も心配はいらねぇよ!」

「…うん、そうだと良いのだけれど。」
昨日のやり残し(20:00-20:05)

「まずは、昨日のやり残しを処理するわ。
今回は、事前にこんな感じで素材を用意してあるわ。」
■事前準備


「おっ、ベンヌ(最初の仲間)の立ち絵も作ったんだな。」

「ええ!
元々、本編の方にも100体以上いるアルカステラ全員の、表情差分を含めた全身立ち絵があったんだけど……
あちらの仕様に最適化していたから、今回の企画にそのまま持ってくるのは難しかったの。
だから、新しくリメイクしてみたわ!
Gemini先生にお願いして、結構可愛く描いてもらったのよ!」

「なるほどな。
確かに、この企画も外伝とはいえ本編に負けないくらいの作品に仕上げたいからな!
イラストのクオリティは妥協できないぜ!
……おっ、下の方にあるセーブボタンとかのシステム周りの画像も作ったのか?」

「うん。昨日の段階では準備が間に合わなかったから、
今日の作業の前に作っておいたの。
まずはこれを、今のUI画面に追加していくわね。」


「とりあえず、UIのメインメニュー周りのレイアウトは一旦これで完成よ!」
戦闘システム決定:アンケート回収(20:05-20:10)

「そう言えば、今日が戦闘システムに関するアンケートの締め日だったよな!
このオレ様がまた、直々にアンケート結果を回収してきてやったぜ!」
・X


「Xの方では、FE(ファイアーエムブレム)のような
『マス目上の戦闘システム』が人気みたいね。
やっぱり、ゲーム開発ってなると、ああいうシミュレーションRPGっぽいシステムには憧れるわよね。」
・note


「noteの方でも、僅差とは言えFE形式が勝ってるな!」

「ええ。
実はnoteではずっといい勝負をしているのは見ていたから、
一応どちらに転んでも大丈夫なように、
作り方の検討は事前に進めていたの。
私としても、どちらも挑戦してみたい内容だったからね。」

「ってことは……
今回は『FE形式』を目指して作っていくということでいいのか?」

「そうね、その方針でいきましょう!
FE形式のシステムって、調べてみたら開発に興味を持っている人がたくさんいるジャンルみたい。
だから、これから開発を進めながら、
気づいた細かいノウハウなんかも皆さんに共有していくようにするわね!
もし開発の途中で、他の人の役にも立ちそうなスクリプトや素材が生まれたらnoteで配布していくつもりだから、
楽しみにしていてね!」
⚔FE(マス目上のシミュレーションRPG風)形式で決定!!!⚔
バトルのチュートリアルまで微修正(前半)(20:15)

「そう言えば、昨日の記事で執筆していた『ベンヌとの出会い』のシナリオパート。
実はあれも、すでにシステム上には組み込んであったの。
ただ、実際に動かしてみると少しだけ微修正が必要な箇所があったから、この時間を使ってパパッと直しちゃうわね。」


「どんな画面で動くのかは、ゲームが出来てからの楽しみにしておくわね!」
バトルチュートリアルストーリー執筆(20:15-21:10)

「さて、前半の最後は、バトルのチュートリアルに繋がるストーリーを書いていくわ。
実際のゲーム内ではこんな風に展開していく予定よ!」
📖 【シナリオ:前編】
ナイル川のほとり。
そこには、荒々しい野盗の集団がたむろしていた。
ネイトたちは物陰からその様子を息を潜めて見つめる。
ベンヌが、震える手でふるふると彼らを指差した。
「こいつ等ッス!
こいつらがあーしの食料や大事なレックス君を奪っていったッス!!」
集団は奪った酒を勢いよくあおり、
下品な笑い声を砂漠に響かせている。
「……モヒカン?」
「……トゲトゲ肩パッド?」
野盗(モヒカン)「ヒャッハー! 水だ水だァ! 全部俺たちのモンだァ!!」
ネイトとポマイラは、静かに顔を見合わせた。
「なぁ、ネイトさんよ……ここ、本当に『古代エジプト』で合ってるよな?」
「え、えぇ。私のルーツだから間違いないはずよ。……たぶん」
「やい!悪党!!
あーしの食料と水…それから『レックス君』を今すぐ返すッス!!!」
ベンヌが、果敢にも野盗の前へとザッと飛び出す。
「お、おい! バカ、待て……!」
ポマイラが手を伸ばして静止しようとするも、
むなしくその手は空を切り、モヒカンたちが一斉にこちらへと視線を向けた。
「あぁん? なんだ? おチビちゃん。
ここはガキが遊びに来ていい場所じゃねぇぞ?」
「アニキー! コイツ、あれっすよ!
あの赤い羽根……間違いなく、
砂漠で一人でメソメソしてたガキんちょでさぁ!」
「あぁ、あの時のガキんちょか。
ギャハハハ! ニワトリが何か言ってるぜ!」
野盗の集団が、一斉に腹を抱えて下品な笑い声を上げる。
「あーしはニワトリじゃねえッス!!
このモヒカンども!!
……あーしのこの美しい翼に比べたら、
お前らのそのモヒカン……ニワトリのトサカ以下ッス!
ダサすぎッス! 時代錯誤も甚だしいッス!!」
赤い翼をパタパタと羽ばたかせながら、
ベンヌは砂の上でドンドンと地団駄を踏む。
「なんだとォォォ!? 俺様の芸術的なモヒカンをコケにしやがって……!
テメェラ、やっちまえーーッ!!!」
ポマイラ「問答無用かよ!
つか数、向こうの方が全然多いぞ!?」
ネイト「相手がやる気なら上等よ!
大事なご飯も、お水も、レックス君の平和も……私が守るんだから!」
ネイトの瞳がきらりと輝く。
「さぁ、最初のステラバトルよ!
ポマイラ、特訓の成果を見せるわよーっ!」
「しゃあねぇな! いっちょぶちかましてこい! ネイト!!」
📖 【シナリオ:戦闘後】
激しい戦いの余韻が、
乾いた砂漠の風とともに静かに消えていく。
膝をついたモヒカンが、震える声を絞り出した。
モヒカン「つ、つえぇ……! なんなんだ、こいつら……!」
「ア、アニキィ……!
こいつら、不気味な術を使ってくるでさぁ……!
普通じゃないっすよ……!」
「……あぁ。
こいつらはきっと、噂に聞く『魔法使い』の連中だ。
おい、テメェら……!
ここは退くぞ!!」
モヒカンたちは蜘蛛の子を散らすように、
砂煙を上げて一目散に逃げ出した。
「う、うわーん! 待ってよアニキーーッ!!」
遠ざかっていく情けない叫び声を最後に、
野営地はしんと静まり返った。
「……ふぅ。どうにか撃退できたわね。」
ネイトは小さく息をつく。
「しっかし、ネイト!
すげぇじゃねぇか! いつも以上の気迫を感じたぜ!」
「ふふん、そうでしょう。
なんせ、ここエジプトは私の神話が色濃く反映されている場所なのよ。」
「ホームグラウンドなら、
いつも以上の力を発揮できるわ!」
「なるほどなぁ……。
つまり、その世界線にゆかりのあるアルカステラは、
本来の力以上のものを発揮できるってことか!」
ネイト「そういうこと!
覚えておくと、これからのサバイバルで役に立つかもしれないわよ。
……さて、ベンヌはどこかしら。」
「あったッス!!」
元気な声とともに、野盗のテントの入口がめくれ上がる。
ベンヌが両腕いっぱいに何かを抱えて、嬉しそうに飛び出してきた。
「レックス君、見つかった?」
「ハイっス! これがあーしの友達……レックス君っス!!」
ドヤ顔で差し出されたのは、
ずんぐりとしたフォルムのロボット人形だった。
あちこちに砂がついているが、
ベンヌが丁寧に服の裾でふきふきしている。
「……あん? ただのロボットの人形じゃねぇか。」
「ただの人形じゃないっス!!
レックス君は、あーしの初めての友達なんスよ!!」
ベンヌはむっとしてレックス君を胸元にギュッと抱きしめた。
「…………初めての友達が人形ってのは、その……なんだ。」
「(こら、ポマイラ)」
「(いや、だって……)」
小声でやり取りするネイトとポマイラを余所に、
ベンヌはレックス君の頭をくるくると撫でながら目を細める。
「……レックス君さえいれば、あーしは一人でも大丈夫だったんスけどね。
まぁ、ちょっとだけ心細かったのも本当っスよ。」
ぽつりと呟いた言葉は、砂漠の風に溶けるように小さかった。
「……ところで!
ネイト……いや、姉御!
姉御もWCSの出場を目指しているんスよね?」
ベンヌがレックス君を小脇に抱え、
ネイトをまっすぐに見上げる。
「ぜひ、あーしも仲間に入れてほしいっス!!」
「……いいの?」
「ハイっス!
何だか姉御とは、こう……魂でビビッと繋がってるような感じがするんス!」
「なんというか……お母さんみたいな安心感があるっスよ!」
「お、お母さん……!?」
ネイトがぽかんと口を開ける横で、
ポマイラが肩を揺らして笑いをこらえていた。
「まぁ、良いじゃねぇの。
こんなガキんちょでも、仲間は多いに越したことはないだろ。」
「がきんちょじゃないっスよ!!」
ベンヌがぷりぷりと羽をふくらませる。
それでも、その丸い瞳はきらきらとネイトを見つめたままだ。
ネイトは一瞬だけ目を伏せ……
それから、笑みを浮かべた。
「……よろしくね、ベンヌ。」
「ハイっス!!」
ベンヌが仲間になった!

「うーん、もう少しテンポよくまとめられそうな気はするのだけれど、
細かな添削はまた次回にするわね。」

「これで、チュートリアルパートのシナリオ執筆はおしまい!
これ以降のストーリー展開は……実際にゲームが出来てからのお披露目にするわね!」
ClaudeAIに宴3と連携するコードを書いてもらう(21:10-21:20)

「……さて、ここからが今夜の本番よ。
ストーリーパートから、
私が作った自作の育成メニュー画面へスムーズに移行・連携するためのシステムを構築していくわ。」

「ネイトがさっき言ってた難しい挑戦ってやつだな。
それで、助っ人のClaude AIさんが作ってくれたコードはどれなんだ?」

「今回用意してもらったのは、この4つのスクリプトよ。
コード自体は結構なボリュームがあるから、
後で自分でも見返せるようにファイルとして整理しておいたわ。」
###
① SubPanels.cs
内容:セーブ画面、ステータス画面、ショップ画面などへの移行制御。
② TrainingMenuBridge.cs
内容:育成メニューUIと『宴3』のシステムを橋渡しする最重要コード。
③ TrainingMenuData.cs
内容:各メニューで使用する構造体データの定義。
④ TrainingMenuUI.cs
内容:パラメーターをUIに表示し、ボタン入力に応じて処理を実行するコード。
###

「おお! 並べてみると、なんだか凄そうな雰囲気が出てきたじゃねぇか!」

「ええ。流石に時間は限られているから、全コードを完璧に読み込めたわけではないけれど……。
コメントを見る限り、ロジックに問題はなさそうね。
まずはClaudeさんの指示に従って、プロジェクトに導入してみましょう。」
###
📝 実装メモ(作業記録として)
TrainingMenuBridge.cs をアタッチしたGameObjectを作成。
『宴3』の AdvScenarioPlayer 内にある Receive Message Object に上記オブジェクトを登録。
『宴3』の Param シートに Genki・Yaruki・TurnRemain・Section・TurnInSection・TrainingAction の各変数を追加。
シナリオExcelに SendMessage, OpenTrainingMenu と If 分岐 を記述。
###
…5分後。

「おいおいネイト! Claudeさんの言う通りにやろうとしたが、
最初のオブジェクトにアタッチする段階でエラーが出て、そもそも導入すらできねぇぞ!」

「……うん、どうやら『宴3』には存在しない AdvSaveLoadType という型名を指定してしまっているのが原因みたい。
やっぱり、サポートが終了しているアセットだとAIも最新情報のキャッチアップが難しいのかしらね。
とりあえず、エラーログをそのまま伝えて、もう一度作り直してもらいましょう。」
■修正版を導入してみるが……

「おい! 今度はさっきより増えて、20個くらいエラーが出たぞ!!」

「焦らないで、ポマイラ。
元々、サポートの切れた古いアセットを無理やり動かそうとしている私たちが無茶をしているんだから。
もう一度エラー内容を詳しく解析してもらって、再度アタックよ!」
■最終版

「………………。よし、何とかエラーが止まったな!」

「ええ! 正直、次で上手くいかなかったら流力に自力で全ドキュメントを読み込んで修正する覚悟だったけれど、なんとかなったわね。
流石はClaudeさん、粘り強いわ。
これでようやく、育成システムの構築を前に進められそうね!」
実際に実装してみる(20:20-21:00)

「それじゃ、ここからは助っ人をClaude AIさんからGemini先生にバトンタッチして、実装を進めていくわよ。
作業自体は少し長くなるから、テンポよくダイジェストでお届けするわね!」
💡 まる。の裏話
実は、Claude AIは無料枠で使っていたため、このタイミングで1日の利用制限が来てしまいました😭
ここからはGeminiPro(こちらは課金済み)に切り替えて頑張ります!
■変数の定義(宴3)

■ファイルのアタッチ





「おいネイト! 今度はエラーが30個近くも出てきたぞ!?
これ、本当に大丈夫なのか!?」

「確かに、一度にこんなに赤い文字が出てくるとビックリしちゃうわよね。
でも、よく見ると殆どが同じ原因なの。
『宴』側から存在しないコマンドを叩こうとして怒られているだけよ。
つまり、エラーの場所と原因がはっきりしているから、これなら私にも直せそうだわ。」


「まずはこれね。変数の宣言が間違っているわ。
『宴3』の仕様では、変数の型の先頭の文字列は『大文字』じゃないといけないの。
これを正しく修正するわね。」




「次のエラーはこれ。
シーンを移動するJumpコマンドの先頭に『*(アスタリスク)』が付いていないから、
シーンとして正しく受け付けてもらえていないのね。
これも修正よ。」



「……ふぅ、とりあえずエラーは直ったな。
にしても、Gemini先生も結構間違った指示を飛ばしてくるんだな……。
なぁ、もしかしてAIの言うことを100%信じるのって、かなり危ないんじゃないか?」

「まぁ、今回は私たちがサポートの切れた古いアセットを使っているという特殊な事情もあるけれどね。
ただ、ポマイラの言う通り、AIにコードを作成してもらうにしても、
その仕様はある程度自分自身でも把握しておくことを強くお勧めするわ。」

「AIってね、とにかく『回答を出力しよう』と頑張るあまり、
正しい情報がわからない時に、
もっともらしい”嘘”の回答を出力してしまう性質があるの。
これを『ハルシネーション』っていうのよ。」

「人間でも、イタズラをしてしまった時や、
テストの点数が悪かった時に、お母さんにバレないように咄嗟にごまかしたくなることがあるでしょう?
AIもそれと同じようなことをしてしまうんだ、くらいに受け取っておけばいいのよ!」

「…まったく、ネイトはのんきというかなんというか。」

「ただ、これだけは私の経験談として忠告しておくわね。 例えAIからの指示であっても、
『プロジェクトの根本を変えるような提案』をされた時は、必ず一度立ち止まること。」

「私も過去に、どうしても作っているゲームが動かなくて生成AIに相談したら、『データを最初から作り直してください』って指示されて、
プロジェクトそのものをイチから作り直した苦い経験があるの。
知識がついた今振り返れば、わざわざデータを消さなくてもなんとかなる問題だったって分かるんだけどね……。
AIは時として過激な解決策を提案してくる場合があるから、
そんな時こそ焦らずに、自分で冷静に分析した方が良いわ。」

「なるほどな。
やっぱり一番大事なのは、全部丸投げするんじゃなくて、
自分でもしっかり頑張りつつ、AIには優秀なサポーターとして手伝ってもらうってのが理想なんだな!」
テスト実行

「……とまあ、今回はこの他にも色々と細かなトラブルや対応があったのだけれど。
全部を書こうとすると専門的になりすぎて長くなっちゃうから、
今回はテスト結果だけをお見せするわね!」

「今回の成功条件はこれよ! チュートリアルが終わった後に、自作した『育成メニュー画面』が無事に表示されること。
そして、どれか行動のボタンを押したら、再び『宴』のシナリオ画面に切り替わって、選んだ行動内容がメッセージとして正しく表示されること!
これが通れば、複数のシステムを完全に連携・制御できたという証明になるわ!」
■テスト結果

「……おおっ! 何とか上手く動いたな!
いやぁ、ネイトの言う通り、今回は今までで一番大変でヒヤヒヤする作業だったぜ……」

「そうね。
システムをイチから組み上げて繋ぎ合わせるゲーム制作は、
本当に大変なことよ。
……でもね、ポマイラ。」

「近い将来、色んな技術がもっと進化して、
誰でも簡単に自分のゲームが作れる時代が必ずやってくるわ!
私はね、そんな未来が来て、
みんなが作った数々の『名作』であふれた世の中になることを、ずっと待っているの!」

「みんなが自分のゲームを作れる未来、か……!
確かに、そんな世界がやってきたら、一体どんなすげぇゲームが生まれるんだろうな!
オレ様も楽しみだぜ!」
最後に
かくして、自作メニューと他者が生み出した『宴3』という外部システムを見事に繋ぎ合わせ、新たなシステムを編み上げたネイト。
その成果は開発5日目に相応しい大きな一歩でしたが、
その裏には、泥臭く足掻き続けた彼女の奮闘がありました。
しかし、プロジェクトネイトの開発はまだ始まったばかり。
次なる壁は、アンケートで決定した「FE形式の戦闘システム」……!
ゲームの華を飾るこの強敵に、ネイトはどう立ち向かうのか!?
次回も、どうぞ乞うご期待!
(※冒頭で募集した「古代エジプト編のイベントアイディア」も、コメント欄にて引き続きお待ちしています!🐫✨)
#プロジェクトNeith #HorizonNotes #ゲーム制作 #個人開発 #Unity #開発日記 #読者参加型 #毎日note