
【プロジェクト:Neith】ランダムイベント実装〜みんなで作るゲーム制作【4/25(土)9日目】
■今回やった事
今回は以下の処理を作り込みました!
おさんぽ(ランダム発生イベントの実装)
開発者用アルカステラのユニット作成メニューの作成
スキル制作準備
■おさんぽランダムシーン動画
■募集中のアイディア
①「古代エジプト編」で発生しそうなイベント
(例:ピラミッドでの過酷な修行、ナイル川での予期せぬハプニング など)
※期限はありません!皆さんの自由でユニークな発想をお待ちしています。
② 主人公・ネイトの「スキル」(4/28(火)まで!)
(例:ファイアボール / 射程:2マス先の一体 / 効果:対象に小ダメージ)
※王道からちょっと笑えるネタスキルまで、
どんなアイディアでも大歓迎です!
こんにちは、まる。です!
すみません、昨日は作業開始時刻が遅くなってしまい、投稿が翌日にズレ込んでしまいました…🙇♂️
そのため、今回は作業時間を1時間に短縮し、いつもより短めの実装となっています。
ですがご安心を!
その分、今日か明日の作業時間を1時間延長して、ガッツリ開発を進めるつもりです。😤
さて、前回はモーレツな勢いで特訓システムやUI実装を行ったネイト。
今日はいよいよ、みなさんから頂いたアイディアを元にした
「ランダムイベント」の作成に取り掛かります!
果たしてネイトは、皆さんのユニークな発想を活かして素敵なイベントを作り上げることができるのか?
波乱の予感が漂う『プロジェクト:Neith』開発9日目……いよいよスタートです!
二人の茶番
🎧今日の作業用BGM
Tipsy_Dance/作(編)曲 :ヒオ
【民族音楽風/酒場/踊り】Tipsy Dance【フリーBGM】

「よお、おまえら!オレだよ、ポマイラ様だ!
みんな、気になる映画とかはあるか?
オレ様は、ダチにお勧めされた『メンター』って映画と『ひゃくえむ。』だな!
『メンター』は10月16日公開だからまだまだ先だけどな!
今からでもすげぇ楽しみだぜ!」

「最近、映画館で映画観れてないのよねぇ……。
あ、でも『国宝』は面白かったわ!」

「おいおい、ネイトさんよ。
曲がりなりにもクリエイターを目指してるんだから、
色んな作品から刺激を受けねぇとダメだぜ?」

「そうなのよねぇ…
最近は自分のゲームのことで頭いっぱいだし…」

「良かったら、みんなのおすすめの作品とか教えてくれないかしら!
ぜひ、開発の気分転換に観させてもらうわ!」
既存システムを全体的にブラッシュアップする(23:30-23:45)

「今日は、開発時間1時間にするんだよな?
何から始めるんだ?」

「これから、新しいアルカステラのユニットとかをたくさん作っていくじゃない?
だから、私が作業しやすいように、Unityのエディタ上で簡単にデータを作れるよう改良するのよ」

「なるほどな。
確かに、コードに直接どんどん追加していったらファイルがパンパンになるし、入力ミスも発生しやすくなるもんな!」

「その他にも色々手を入れているわよ?
一応、ベースのコードはClaudeさんに既に作ってもらっているから、
今回は実際にシステムをどういう風にブラッシュアップしたか紹介していくわね。」
改良点その1:アルカステラをビュー上に追加・削除できるようになった!

「まずは、アルカステラのユニットの編集画面よ!
これは、前にみんなに紹介した『ScriptableObject』という機能を使ってアセット化しているの。」




「おお!
確かにこれなら一覧で見やすいし、数値の編集が簡単でいいな!」

「そうね!
ただ、お試しで実際にメニュー画面でベンヌのステータスを見てみたら、まだ反映されていない項目がちらほらあったから、
そこは更に改良が必要だけど……。
でも、ベースができたから今後のアルカステラ制作がグッと楽になるわね!」
改良点その2:各パートの設定を明確にシステム化!

「このゲームって、ストーリーのパートが『古代エジプト』『樹海』『現代』の3つに分かれているじゃない?
そのパートごとの設定を、システム上でしっかり分けて管理できるようにしたの。」


「おっ、なんか『ユニット×パート別 特訓ボーナス』って項目があるな。
これって、特定の仲間へのボーナスとかが追加されてるってことか?」

「そうよ!
その地にゆかりがあるアルカステラと特訓すると、上昇する能力値に補正がかかるシステムを入れてみたの!
これで、どのパートでどの子を特訓させるか、育成の幅がグッと広がるはずよ。」

「なるほどな!
それなら、最初の古代エジプトはネイトにとってホームグラウンドなわけだから、この最初のセクションでどれだけ仲間を増やして、
ネイト自身や仲間もしっかり育成できるかが攻略のカギになりそうだな!」





改良点その3:お金の概念を追加!

「すっかり忘れてたんだけど、ルクス(お金)の概念も実装してみたの」

「お金か…確かにアイテムを買ったりするのに必要だよな!
今回はどうやって実装したんだ?」

「コーディングのリハビリがてらにAIに聞かずに自分で既存のコードを参考に追加したわ」

「え?ネイト一人でか? オレ様はちょっと心配だぜ……」

「失礼ね!既に仕組み自体は出来上がってるんだから、これくらいなんともないわよ!
……それに、ちゃんとコードを把握する意味でも自分でやってみたいの。
ほら、さっさと解説していくわよ」


「まずは、メニュー画面に表示するテキストのオブジェクトを変数として宣言するわ。
[SerializeField]属性を付与してインスペクター上からオブジェクトを指定できるようにしつつ、
privateにして他の関数からは直接操作できないようにするわ。
これで、万が一別のスクリプトで同じ名前の変数を弄ることがあってもシステムが衝突しなくなるの」


「どうやら、宴から読み込んだデータは『data』という構造体に保存されてるみたいだから、
それを指定してその中のLuxという変数を取り出し、currentLuxに代入するわ」


「そうそう!そのcurrentLuxもちゃんと変数で定義しないとね。
型はint(整数)にするわ」


「データを受け渡す構造体の方にもLuxという変数を追加するわ!
これは、構造体用の別ファイルから取り出す運用だからprivateではなくpublic(公開)にして、
他のファイルからも読み込めるようにするの」


「最後に、テキストの中身を書き換えるコマンドを設定して…完成よ!」


「意外にすんなり実装できたじゃねぇか!」

「伊達に何年もゲーム開発で挫折してないわよ! これ位なら朝飯前よ!」
おさんぽ(ランダムイベント)を実装する(23:45-00:30)

「さぁ、ここからが今日のハイライトよ!
みんなから頂いたアンケートを元にランダムイベントを作っていくわ」

「おっ、待ってました!もう準備はできてるのか?」

「コードとイベントの中身はバッチリよ!
ただ、時間の都合もあって、今日はいただいたアイデアの中から古い順に4つのイベントを実装してみたの。」


「ピラミッド制作を手伝わされるイベント……スフィンクスになぞなぞを出されるイベント……巨石に追いかけられるイベント……前王の遺産を探すイベント……。
おいおい、どれも面白そうじゃねぇか!」

「ふふ、そうでしょう?
具体的な中身を話しちゃうと楽しみが減っちゃうから、詳細は秘密よ。
ポイントとしては、メリットが大きいイベントは『レアイベント』として出現確率を低く設定しているわ。
他にも、仲間獲得やアイテムゲットができるイベントも、少しだけ出にくくしてバランスを取っているの。
このランダム分岐は、『宴3』のランダムジャンプ機能と、C#側の判定ロジックを組み合わせたハイブリッド仕様で実現しているわ!」
■ランダム分岐

「この機能の実装過程も詳しく説明したいんだけど、想像以上に複雑で私もかなり苦戦したから……
今回はまず、動いている結果をみんなにお見せするわね!」
■おさんぽランダムシーン動画

「すげぇ!みんなのアイデア通りのイベントが動いてるぜ!
……でもよ、なんでオレ様が大岩に追いかけられてるんだ?
そこだけは納得いかねぇぞ!」

「いいじゃない、ポマイラ。
旅にハプニングはつきものよ! それが冒険の醍醐味でしょ?」
最後に
かくして、波乱の予感で幕を開けた開発9日目は終了の時間を迎えた。
わずか1時間という制限の中、システム基盤を整理し、
ルクス(お金)の概念を実装。
そして……読者から託された数々のアイデアが、
「おさんぽイベント」としてついにゲーム内で産声を上げた!
皆の想像力が形となり、確かに脈打ち始めた『プロジェクト:Neith』の世界。
だが、息をつく暇もなく次の試練がネイトを待ち受ける!
次回、宣言通りの「作業時間延長」でさらに加速する開発ロジック!
次々と立ちはだかるシステムの壁。
果たしてネイトは、無事にこの開発の荒波を乗り越えることができるのか!?
次回も、どうぞ乞うご期待!
#プロジェクトNeith #HorizonNotes #ゲーム制作 #個人開発 #Unity #開発日記 #読者参加型 #毎日note