先月に引き続きVRドラムシュミレーターを作成。
前回の記事はこちら。
フリー公開されている音源を入手。
・MASUHIRO KIT(LINK)
1つの音源(ハイハット音、シンバル音など)を取っても3種類以上のパターンが用意されており、
自分の好きなドラム音を採用できるため、大変気に入っている。
スティックとドラムセットに当たり判定を設定していく。
それぞれインスペクターにBox Colliderを設定する。
また、ドラムセット側にはAudio Sourceを設定し、ドラムに合った音源をセットする。
・スティック側
・スネア側
Box Collider同士が衝突した際にOnTriggerEnter()が呼ばれる。
メソッド内ではそのオブジェクト自身に設定されたAudio Sourceを再生するように設定。
なお、初めて衝突した時に呼ばれるメソッドであるため、その後衝突し続けていてもOnTriggerEnter()が呼ばれることはない。
実物のドラムに近い実装ができる。(現時点で打撃の強さは無視だが)
作成したらドラムセットに設定する。
HitScript.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HitScript : MonoBehaviour {
private AudioSource audioSource;
// Start is called before the first frame update
void Start() {
audioSource = gameObject.GetComponent<AudioSource>();
}
// Update is called once per frame
void Update() {
}
private void OnTriggerEnter(Collider other) {
audioSource.Play();
}
}
実際にヘッドセットを装着し、Unityの再生ボタンを押す。
しばらくすると前回にドラムセットに座った状態からスタート。
スネアに向けてコントローラーを振るとしっかりと音が鳴った。
音声動画をUPできないため状況をお見せすることができないが、
自分の動きに対してアクションや音が鳴るとより没頭感が深まっていく事が分かった。
更なる没頭感を増すためにバスドラムの機能を追加する。
仕組みとしては、ArduinoとUnityを連携させフットスイッチセンサを読み取れるようにしていく。