2022年終わり頃~2023年1月までの開発進捗
皆さんごきげんよう、開発は順調ですか?
私は最近、就活が忙しくなってきて心が落ち着きません💦
なので、心境と進捗をブログで吐きます…
各作品1~2ヵ月に1回、まとめていきますね。
このブログでは「忍者蛙と小さな騒音」という、声量・音声認識を使用したステルスアクションゲームの進捗紹介をしていきましょう。
(ソースコードも一部公開)
進捗目次:
1.ステージ作り
2.声量、音声認識&タイトル
3.プレイヤー、敵蛙
4.ギミック
5.現在進行形で取り組んでる作業
1.ステージ作り
企画段階では2Dゲームを想定していたのですが、カラクリメイドのように映えさせたかったので、最終的にはHD2D(3D)ゲームとして作り始めました。
そのため、Blender(バージョン:2.92.0)でステージモデリングすることになります。
2Dっぽいステージにしたいので、タイルセットを使って組み立てれるSprytileというアドオンを採用しました。
ドキュメントも分かりやすく、
手軽にタイルセットで組み立てれるので、
Blender初心者でも比較的扱いやすいかも(?)
ただ…苦戦した部分もありまして、
Unity(バージョン:2019.4.34f1)でSpryTileモデルを使用する際、デフォルトだとBlenderでの表示と相違がでてしまうのです。
なので対策メモとして、以下に記しておきます。
・Blenderでタイルセットとして使用した画像ファイルを、テクスチャとしてUnityにインポート。
-テクスチャ設定からミップマップ生成をOFF、フィルターモードをポイント(フィルターなし)に設定。
・新しいマテリアルを作成。
-マテリアルに照明の影響を与えたい場合➤カットアウトレンダリングモードで標準シェーダーを使用。
-照らしたくない場合➤Unlit>Transparentシェーダーを使用。
・作成した各マテリアルに各テクスチャをドラッグ。
・シーン内のSpryTileモデルにマテリアルを適用すると、見た目がほぼBlender通りになります。
後はSpryTileのモデリングと上記の注意点に気をつけて、
Unityで画面効果等を組み合わせると…
画像のようになります✧
ステージモデリングはこれで問題無さそうですね!
2.声量、音声認識&タイトル
さて次は、本作において最も重要な要素…声量と音声の認識です。
一定の声量に達したらキャラが操作され、特定のワードを発したら隠しイベントやUIが動きます。
声量はAudioSourceとMicrophone等を使用、
音声認識はWindows.SpeechのDictationRecognizerを使用して実装しました。
音声認識は他にも手段はありますが、特に新しく導入するものはなく、設定次第では手軽に実装できる
Windows.Speechは初心者でも実装しやすいかも(?)
※Windows設定➤プライバシー➤音声認識➤ONにしないと使えない(?)
あと現在の公式ドキュメント表記上、Windows10限定らしいけど…11は対応してるのかな?
大声でゲームが始まるタイトル画面。#Unity #ゲーム制作 #indiegame #忍者蛙と小さな騒音 pic.twitter.com/tPQO0094ZE
— ゆっくりハヤデビ@学生ゲーム開発者 (@hayadebi) January 4, 2023
声量を取得できれば、上ツイートのようなタイトル画面を作れます。
声量参考サイト:マイクの音量を取得する
音声認識参考サイト:Unityで音声認識
実際に書いて使っているスクリプト▼
そして…
これら声量音声認識を使って動かすプレイヤー、敵については次のを見てみましょう。
3.プレイヤー、敵蛙
プレイヤーと敵なくしてゲームにあらず…
ただし、本作では"声量"での操作ですね。
実際に声量で操作する様子はこんな感じです▼
大声を出すとダッシュついでに攻撃できる。
— ゆっくりハヤデビ@学生ゲーム開発者 (@hayadebi) January 2, 2023
(この動画では無敵モードでやってるけど、死にやすいゲームだから戦闘は避けた方が良い)#Unity #ゲーム制作 #indiegame #忍者蛙と小さな騒音 pic.twitter.com/MS1zKhoBms
右下のUIの動きを見ると分かると思いますが、
プレイヤーの声量がATTACKに達すると攻撃➤EVENT(動画では没にしたTONGUE)に達すると条件によってイベント発生➤MOVEに達すると移動(マウスカーソルの方向に向かって)
優先順位は"➤"の順番通りで…敵蛙は、声量が設定されている各許容値に達するとプレイヤー(忍者蛙)の存在に気づき、一定時間完全に離れるまで追いかけてきます。
敵蛙の状態はキャラの上に表示されているマークで確認できて、
・完全に判定範囲外なら"ー"
・判定範囲に入りそうなら"?"
・判定範囲内なら"👁"
・追いかけてる状態なら"!"
・死んでいるなら"💀"
とにかく敵蛙にバレない程度の声で進み、任務を遂行する…そういうゲームですね。
実際に書いて使っているスクリプト▼
(詳しい解説は別の記事で書く予定)
4.ギミック
プレイヤー、敵要素があるだけでは単調になってしまいますよね。
そう思って2種類のステージギミックを追加しておきました。
(ギミック案は7種類まで思いついてる)
ギミック”落ち葉溜まり”を追加しました。
— ゆっくりハヤデビ@学生ゲーム開発者 (@hayadebi) January 8, 2023
ギミックに隠れている間は、
退出声量以下であれば敵蛙にバレない安全地帯です。
(※敵味方関係なく、敵蛙も潜むことができる)#Unity #ゲーム制作 #indiegame #忍者蛙と小さな騒音 pic.twitter.com/QUkTugAYa9
#忍者蛙と小さな騒音 での回復手段は"蝿"( '༥' )ŧ‹”ŧ‹” #Unity #ゲーム制作 #indiegame pic.twitter.com/PlcuIHAqjJ
— ゆっくりハヤデビ@学生ゲーム開発者 (@hayadebi) January 10, 2023
実際に書いて使っているスクリプト▼
❏落ち葉溜まり
ツイートの通り、入り続けてる限り敵蛙に判定されません。
(UIの声量ゲージも動かない)
退出してすぐに判定されてバレる…と思いきや、出てすぐは判定されないようにしてます。
(動画のは判定されるようになってから、ただ単に大きい声を出しちゃってバレただけ)
❏蝿
ステージの各地に存在し、一定範囲を飛び回っている回復源。
声量がEVENTに達して出てくるベロを、蝿に向けると食べれます。
ギミックは今後も追加していくので、これからの進捗もお楽しみください(´艸`*)
5.現在進行形で取り組んでる作業
ブログ用ツイート pic.twitter.com/AKsxATwHmS
— ハヤデビ@ダークで可愛いARPGを制作中 (@unity_hayadebi) January 17, 2023
現在特に力をいれて進めているのは、
・各画面のUI
・チュートリアル
です。
UIはセンスが無いから試行錯誤必須だし、
チュートリアルは1つのゲームを作る並みに大変なのよねぇ…_(:3 」∠)_
- 終わりに -
以上をもちまして、今回の忍者蛙と小さな騒音開発進捗 #1を終えます。
まだまだ作らないといけない部分、要素は多いですが、2023年を通して地道に進めていきます。
ここまで見てくれて、ありがとうございました💦
これからも各作品の進捗を定期的に更新していきますので…
今後ともよろしくお願いします。
(もし不明な点、質問等がありましたらコメントください)