本プロジェクトは、スマホのセンサーを使って情報を計測し、取得した情報を何らかの形で活用するAndroidアプリを作成することを目標とします。アプリの設計には、Unityを使用する予定です。
「声をたくさん出して敵を倒す!」そんな感じのゲームを考えています。
具体的には、
- アプリを起動
- 敵が出現
- 声を出す
- 声をダメージに変換して敵のHPを減らす
- 3・4を繰り返し敵のHPが0になったら勝利
の5ステップが最低限実装しなければいけない機能です。
- スマホのマイクを使って音を拾う
- 音の大きさ・長さに閾値を設定し、閾値を超えたことを判定する(
Debug.Log
など) - 判定できるようになったら、閾値を超えた回数を記録してダメージの概念を実装
11/9の段階で、このステップはほぼ完了。音量は0〜1で表されるように設計できたため、例えば
if (音量 > 0.5) {
damage++;
}
のようにしてダメージ計算もできます。
次の段階として行いたいのが、
- ゲーム画面のプロトタイプ(戦闘画面を第1に!)
- 敵
- プレイヤー
- ゲームのロジック
- HPの設定
の2つです。
ゲーム画面はとりあえず敵っぽいものと自分が操作してるプレイヤーっぽいものができればOK。ロジックについては、ダメージに応じてHPを減らし、0になったら特定のアクションを起こす、程度のものが作れればいいかと思います。
- ダメージ計算のバリエーションを増やす
- 高い声
- ビブラート
- 敵に弱点を設ける
- 低い声に弱い敵、など
Unity上で音声をどれだけ扱えるかが未知数ですが、時間が許せばこのあたりは実装できそうです。
- 敵を倒すごとに簡単なストーリーを進めるなど、RPG的要素の追加
これも時間次第でしょう。ノベルゲーム風に簡単な作りにすることはある程度可能そうです。
- 敵と1対1で戦うのではなく、周囲から敵が近づいてくる方式
- 声を出すと近づいた敵が吹っ飛ぶといった設計で爽快感⤴︎
- スマホの回転(ジャイロセンサー)に合わせてキャラクターを移動させるような設計
こちらはアイデアとしては面白いですが、実装するとなるとマップの概念や敵ごとのダメージ計算、接触判定などが難しいので余裕があれば、といった感じでしょう。
- Audio SourceとAudio Clipについて: Unityにおける音の出し方(まずはここから!)
- マイク音の取得:Unity:マイクの音量を取得する(1)