0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unityで音声スペクトルを使ったゲームを作ってみたい①

Posted at

はじめに

初めまして。初投稿するUnity初心者です。試行錯誤しながらゲームを作っていきたいと思ってます。
今回は自分の興味ある分野である音声信号処理とゲームを掛け合わせられないかなと考えて、音声周波数スペクトルでなんか作るかーとなりました。気長にやっていきます。

環境(一応)

  • Unity 2020.3.32f1
  • Visual Studio Code
  • マイク(USB2.0でつなげるやつ)

最初にやったこと

まずProjectを2Dで作成しました。(スペクトルの図は2Dの印象が強いので...)
その後、以下のコードを作成して空のGameObjectにアタッチ。

MicTest.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MicrophoneController : MonoBehaviour
{

    void Start ()
    {
        var audio = GetComponent<AudioSource>();
        foreach (string device in Microphone.devices)
        {
            Debug.Log("Name: " + device);
        }
        audio.clip = Microphone.Start(Microphone.devices[0], true, 10, 44100);
        while (Microphone.GetPosition(null) <= 0) { }
        audio.Play();
    }

}

「とりあえずマイクがちゃんとUnityと連携してるかな~」ということを確かめたかったので、
①Unityに認識されているマイクのデバイス名を表示
②起動してから10秒間の間、音声を録音
③音声はそのまま再生
という順序で動くコードを以下の記事からパクり参考しました。勉強になります。
DIYer Unityにマイク音声を取り込む
この記事にある

audio.mute=true;

という部分で音声をミュートにしちゃって確認できなかったりするので、コードはちゃんとすべてに目を通したほうがいいですね...(筆者もそこでちょっともたつきました。反省。)

で、実行してみると...自分の声が跳ね返ってきました!わーい!

image.png

また、こんな感じで認識しているマイクがConsoleウィンドウに表示されてます!
自分のだとUSBマイク、Oculusのマイク、ゲームのキャプチャボードのマイクが認識されていますね。これの先頭から

foreach (string device in Microphone.devices)

のMiicrophone.devicesの0,1,2,...番目に入っていく行くようです。使用するマイクのインデックスは要確認ですね。

次やりたいこと

次は実際にスペクトルを取得してみようと思っています。とりあえず今回はここまで。気長にやっていきます。それでは!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?