· 

【Unity】開発進捗まとめ #1【忍者蛙と小さな騒音】

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で音声認識

 

実際に書いて使っているスクリプト▼

VoiceManager.cs

WordManager.cs

そして…

これら声量音声認識を使って動かすプレイヤー、敵については次のを見てみましょう。

3.プレイヤー、敵蛙

プレイヤーと敵なくしてゲームにあらず…

ただし、本作では"声量"での操作ですね。

 

実際に声量で操作する様子はこんな感じです▼

右下のUIの動きを見ると分かると思いますが、

プレイヤーの声量がATTACKに達すると攻撃➤EVENT(動画では没にしたTONGUE)に達すると条件によってイベント発生➤MOVEに達すると移動(マウスカーソルの方向に向かって)

 

優先順位は""の順番通りで…敵蛙は、声量が設定されている各許容値に達するとプレイヤー(忍者蛙)の存在に気づき、一定時間完全に離れるまで追いかけてきます。

敵蛙の状態はキャラの上に表示されているマークで確認できて、

・完全に判定範囲外なら"ー"

・判定範囲に入りそうなら"?"

・判定範囲内なら"👁"

・追いかけてる状態なら"!"

・死んでいるなら"💀"

 

とにかく敵蛙にバレない程度の声で進み、任務を遂行する…そういうゲームですね。

実際に書いて使っているスクリプト▼

player.cs

enemy.cs

(詳しい解説は別の記事で書く予定)

4.ギミック

プレイヤー、敵要素があるだけでは単調になってしまいますよね。

そう思って2種類のステージギミックを追加しておきました。

(ギミック案は7種類まで思いついてる)


実際に書いて使っているスクリプト▼

ochiba.cs

flycure.cs

❏落ち葉溜まり

ツイートの通り、入り続けて限り敵蛙に判定されません。

(UIの声量ゲージも動かない)

退出してすぐに判定されてバレる…と思いきや、出てすぐは判定されないようにしてます。

(動画のは判定されるようになってから、ただ単に大きい声を出しちゃってバレただけ)

❏蝿

ステージの各地に存在し、一定範囲を飛び回っている回復源。

声量がEVENTに達して出てくるベロを、蝿に向けると食べれます。

 

ギミックは今後も追加していくので、これからの進捗もお楽しみください(´艸`*)

5.現在進行形で取り組んでる作業

現在特に力をいれて進めているのは、

・各画面のUI

・チュートリアル

です。

UIはセンスが無いから試行錯誤必須だし、

チュートリアルは1つのゲームを作る並みに大変なのよねぇ…_(:3 」∠)_

- 終わりに -

以上をもちまして、今回の忍者蛙と小さな騒音開発進捗 #1を終えます。

まだまだ作らないといけない部分、要素は多いですが、2023年を通して地道に進めていきます。

ここまで見てくれて、ありがとうございました💦

これからも各作品の進捗を定期的に更新していきますので…

今後ともよろしくお願いします。

(もし不明な点、質問等がありましたらコメントください)

Ads Image