このブログにお越しいただきまして、本当にありがとうございます。ひさよろ です。

私はそんな夢を持ち、会社員をしながら個人で『ゲーム制作』と『コーチング』を掛け合わせた活動を行っています。現状はゲーム制作のお勉強に終始しており、コーチングは全くできていませんが。
5作目(2025年の4作目)として『ひとり少女 ~One Girl~』というゲームを公開しました。ここでは、それをどのように作ったのか、苦労や工夫したことを紹介いたします。
どんなゲームかというと、寂しそうな少女を笑顔にするために、小鳥を少女のそばまで導く。悪いネコやカラスを石を投げて撃退する。というものです。操作はマウスクリックのみ、数分で終わる単純なゲームなので↓の記事からぜひ!プレイしてみてください。(慣れるまで操作しづらいと思いますがイライラしないでください)
スマホでもなんとか遊べます。
なぜこの題材を選んだのか?
本作は『ひとり少女』というタイトル名を先に決め、その名前に合わせてどんなゲームにするかを考えました。
『ひとり少女』というワードに思い入れがあったのです。まずは何でそんなワードが出てきたのかをお話しさせていただきます。
ドイツでのできごと
私は仕事でドイツのミュンヘン市に3年間駐在していたことがあります。
住んでいたアパートは超有名なサッカーチームであるFCバイエルン・ミュンヘンの本拠地、アリエンツアレーナに歩いていけるくらいの場所に位置しています。
そのアパートには中庭がちょっとした公園になっていました。

冬の写真なので印象が違いますが、春になると木々には葉が生い茂り、小鳥やカラス(に似た少し違うやつ?)、リスなんかも現れます。このちょっとした公園に、小学1、2年生くらいの少女がひとりで遊んでいる姿をよく見かけました。
日中仕事をしているわたしよりも、妻の方がその少女を見かけることが多く、「今日もひとりで遊んでいたよ」と夕食の時に教えてくれました。名前も知らないその少女、おそらくこのアパートに住んでいるのだと思いますが、いつしか私たちはその子のことを『ひとり少女』と呼ぶようになっていました…。
その後、弟がいることがわかったり、一緒に通学するお友達がいることがわかったり、ちょっとしたドラマがあったので、帰国しても『ひとり少女』というワードは忘れられず、ひとりで遊んでいる女の子を見ると思わずそう呼んでしまうのです。
というわけで、『ひとり少女』という言葉に思い入れがあり、ゲームの題材にしたいなぁと思っていたのがここで叶ったという形です。
企画段階のアイデア
このアイデアは4月に浮かび、↓のような落書きを残しておきました。そのときはネコをおびき寄せようとしていたんですね。

9月になって本作を作り始めるとき、まずはどんなゲームにするかをじっくり考えました。私は絵がへたくそなので、生成AIに助けてもらいながら世界観とゲームシステムを考えます。

というわけで、次からゲームの中身を紹介していきます。
ゲームプロジェクトの構成
まずはUnityのプロジェクト構成を簡単に紹介します。
Sceneについて

TitleScene
タイトル画面はものすごく簡素です。納期優先でこだわりを捨てササッと作りました。難易度設定や遊び方の説明なんかも入れると親切ですね。

GameScene
ゲームのメインとなるシーンです。ここに色々な機能が詰まっています。毎度ですが、オブジェクト名のつけ方にいつもモヤっと感を覚えていますが、あまり気にせず。

スプライトについて
今回の絵は ほぼすべて生成AIに描いてもらいました。Copilotを使いました。↓のような指示文で絵を描かせたところ、chatGPTよりCopilotの方が良い感じだったので。


こんな感じでいこう!となったら、あとは「ゲーム用に数パターンの表情をつくって」みないた会話を時間をかけて行い、他のキャラクターも作ってもらいました。

で、実際にゲームを作るのに使った絵は以下。

ここから色々と改造してゲーム用に仕上げるのが大変でしたが、そこは苦労・工夫したことで書きます。
スクリプトについて
ゲーム制作を始めてまだ一年足らず。コーディングスキルは初心者です。なので、ChatGPTに手伝ってもらいながらスクリプトを書いています。
ゲームのコンセプトは考えたものの、本当に作れるのかは分からない状態でUnityを触り始めました。機能を一つ一つ分解してChatGPTにコードを教えてもらい、それをスクリプトに書きこむ、それを繰り返していく。継ぎはぎコードで生じたエラーの修正に奮闘しながら、なんとかゲームが完成。unityroomで公開。そしてこのブログを書き始めて気が付きます。
このゲームの中身ってどうなってんの?(なんか、前作でも同じことになっていたような)
そこで、構成図を作りました↓。スクリプトを読み解き、無駄なスクリプトを他と統合したり、シーンをまたいで使えるStatic関数を学んで取り入れたり。
本業と家族との時間の合間に少しずつ取り組み、出来上がりまで2週間以上かかりました。次のゲームを作りたい衝動を必死に抑え、苦行のような時間でしたが、おかげでスクリプト構成の全体像を考えるスキルは上がったと思います。

苦労・工夫したこと
今回も小さく簡単なゲームですが、行き詰まって悩むことがたくさんありました。その苦労と工夫したことの一部を紹介します。
- 生成AIが描いてくれた絵の改造(少女とベンチの分離)
- 背景の時間変化
- 石を投げる、放物線を描いて飛ぶ、敵に当たる
生成AIが描いてくれた絵の改造(少女とベンチの分離)
ほとんどすべての絵を生成AIに描いてもらったわけですが、かゆいところに手が届かないというか、ゲームの中で他の絵とマッチさせようとしたら微妙に困ることがあります。そんなときは自分の力で修正しなければなりません。その時の例を紹介します。

このベンチに座る少女。寂しげな表情をしていますが、ゲームの進捗状況で表情を変化させたいので、ベンチに座った一枚絵では都合が悪いです。少女とベンチを分離して、少女の顔と胴体も分離してあげる必要がありました。
その時に便利なのが(私が知っているのは)、パワーポイントの「背景の削除」機能です。皆さんはこれ使っていますか?

操作方法は↓な感じです。
紫色になっている部分が削除する部分です。ある程度自動で認識(今回は役になっていませんが)してくれるのであとは自力で微調整してベンチの絵を消して、少女だけの絵をつくります。
同様に表情違いでベンチに座る少女の絵を生成AIに描かいてもらい、ベンチと少女を分離させます。そんでもって少女の顔と胴体も分離。

やっかいだったのはベンチの方です。少女と分離すると大半の部分がなくなってしまうので。。。

ぱっと見は一つの画像ですが、たくさんの画像の寄せ集めで作っています。その様子が↓。
おわかりいただけただろうか、、、この涙ぐましい努力を。
背景の時間変化
次は、時間経過に合わせて、背景を昼から夜に変化させる方法。ゲームオーバー条件に「制限時間を過ぎる」を設けていたので、時間経過が視覚的に分かるようにしたかったというわけです。

実際にどんな風に変化するかご覧ください↓。
公園と空が少しずつ夕焼けに染まりながら、空の雲が段々と消えていって、暗い星空になります。
これを作り出すのに、背景の画像は3枚使っています。

石を投げる、放物線を描いて飛ぶ、敵に当たる
小鳥を悪いネコや悪いカラスから守るために、石を投げなければなりません。その石の投げ方に少し悩みました。というのも、最初はポケモンGOみたいに指でなぞると方向と飛距離を調整できるようなイメージを持ってしまったので、そんな高度なことどうやってやるんだ!?と色々調べはじめてしまったからです。
結局のところ、石はマウスの左クリック(スマホの場合はタップ)のみの操作に落ち着きました。いっそ真っすぐにしか投げられないでいーや、と大いなる妥協です。
その代わりに、石を投げた感じを表現するために、
- 放物線を描いているかのように上下に動かし
- 遠くに向かっているかのようにスケールを徐々に小さくしました
↓のような動きです。
チープなりにまぁまぁいい感じだと思います。ネコやカラスとの接触判定には、石のスケールサイズ=届いていることを条件にしました。
いつかアップデートしたいこと
ゲームは公開しましたが、基本システムだけを実装したテスト版のような状態です。今はただ毛を抜くだけの物足りないゲームです。なので以下の3点は必ず盛り込みたい。近いうちに。できるだけ早く。
- Xでコメントをいただいた点
- BGM、SEの追加
- クリア後の演出
- 悪いネコ出現ポイントの追加
Xでコメントをいただいた点
ゲームを公開して一番嬉しいことは「プレイしていただいた人からフィードバックをもらえること」です。私のように地球の片隅でひっそりと制作をしている人間に気が付いてくれて、貴重な時間まで使っていただける方がいるなんて奇跡です。ましてやプレイした感想までくださったら嬉汁がほとばしってしまいます。
そんな方が今回いらっしゃいました。正直に言います。めちゃくちゃ ウぅレピぃぃぃー!!!

いただいたコメントをまとめると
- 簡単に敵を撃退できるように工夫してほしい
- 何がクリアなのか分かりづらい
あまり簡単にクリアできないように、あえて投石可能範囲を地上付近に限定して、石の軌道も固定しました。理由は高くまで投げられるような剛腕は世界観に合わない(ウソつけ、プログラム書くのが面倒だった)からです。なので上から飛んでくるカラスはだいぶ地上近くまで待ち構えなければならず、石を外すと即アウツとなってしまいます。取説記事に2連投することがコツだと書かざるを得ないくらいの出来です。
木の上の方まで石が投げられるように、改善しようと思います。難易度調整代として、上の方に投げるときは狙いづらい軌道にするなどの工夫ができるのではとアイデアが湧きました。キーボード操作で視線移動を防ぐという観点も新たな気づきになりました。
次の何がクリアなのか分かりづらい点については、小鳥を少女の元に導いている感がないからだと思います。「こっちに導け!」みたいなガイドを表示(点滅させたりしながら)するのはどうかと思いました。あとは単純に小鳥の動きが遅いので、なかなか少女の方に進まないのもよくないかなぁ。そのせいで、3分間小鳥を敵から守り抜くゲームと勘違いさせる出来となってしまいました。守り抜いたと思ったらGAME OVERってどういうことだよ!とプレイヤーはなるでしょう。。。
コメントいただきました、
- かおる@ゲーム制作 さん(@kaoru_gamedev)
- 吉(よし)@学習サイト制作中 さん(@abbeymairo)
本当にありがとうございました!
BGM、SEの追加
目標としていた公開日に間に合わせること優先で作ったので、無くても成立する部分は省きました。その主なものがBGMとSEです。ゲームを面白くする要素として耳からの情報はとても大きいので、こだわりたいところでしたが時間がなく諦めました。そもそも自分で作曲できないので、どなたかの曲を使わせていただくことになりますが。アップデートする機会があれば(その気がわけば)必ず追加します。
クリア後の演出
これまた公開日優先としたため、クリアした後に特定のシーンを作りませんでした。できれば、小鳥によって元気を取り戻した少女が笑顔で帰宅する様子を演出したかったなぁと思います。プレイ中はモノトーンですが、クリアすると世界に色がついて少女が立ち上がり歩き出す感じ。

悪いネコ出現ポイントの追加
カラスが2体いるので、ネコも複数出現するようにしたかったです。もともとは3体で考えていました↓。

①のネコだけにした理由は、アニメーションが作れなかったからです。。。生成AIに描いてもらった絵を斬った貼ったしてアニメーション用のコマ絵を作る必要があるので、生成AIに素材となる別の絵を描いてもらわなければならなかったのですが上手くいきませんでした。自分で絵が描けたらどんなに良いか。
というわけで
5作目『ひとり少女 ~One Girl~』の中身を紹介いたしました。時間がかかりましたが記事を書き切りました。スクリプト見直しも含めると1か月半ほどの期間をかけ、合計28時間費やしていたようです。仕事が忙しくなってくると、何のなめにこんなの書いてんだろう、、、と、書くのをやめそうになることが何度もありました。最後までかけたのは、辛かったドイツ駐在時代に出会った「ひとり少女」という単語に思い入れがあったからなんだろうなと思います。この時間が無駄ではなかったと 思える日まで、ゲーム制作を続けます!
ドイツでの生活(辛かった部分)を↓の記事に少し書いています。お時間のある人はそちらも読んでいただけますと幸いです。
というわけで最後にいつもの、
みんなだんばれ!!

頑なに張るの「がんばる」ではなく、
弾むように張るの「だんばる」で、
一緒に人生を楽しみませんか?
最後までご覧になってくださったあなた、ぜひぜひX(旧Twitter)で交流しましょう!ゲーム制作をしていない方もウェルカムです。人生や働くことを楽しむために、日々くだらないことをつぶやいています。

以上です。




コメント