クワマイでもできる

クワマイでもわかる

歌い踊る自分をARで見たい[歌と踊り編]

あらすじ

ARでエイサイハラマスコイしたかった。

f:id:kuwamai:20180515183932j:plain

前回はUnityのARKit pluginを使ってモデルを表示するまでできた。
あとは動きに合わせて歌わせるだけ。

前回記事を見てない人に。最終的にこんなのができる。

製作の記録

踊り

アニメーションの作成

自分の動きをアニメーションとして保存したい。
すでに便利なツールがあるかと思っていたが、調べても全然見つからなかった。

1週間くらい保留してたらぴったりなツールが出たのでびっくり。

使い方は公式のREADMEで問題なくできた。
あと、ビビンバさんの記事がスクショ多くてとてもわかりやすかったです。

とりあえずエイサイハラマスコイ踊りのAnimation Clipを作成した。

モデルを踊らせる

Assets内で右クリックし、Create / Animator ControllerをクリックするとAnimator Controllerができる。

f:id:kuwamai:20180520021112p:plain

ダブルクリックするとAnimator windowが表示されるので、先ほど作成したAnimation ClipをD&Dする。
今回はひたすら踊らせるだけなので、Entryを右クリック、Make Transitionで出て来る矢印を、D&DしたAnimation Clipに繋げる。

f:id:kuwamai:20180520021158p:plain

これでひたすら踊らせるAnimator Controllerの完成。

次に、Animator Controllerを踊らせたいモデルに設定する。 モデルにAnimatorを追加し、Controllerに先ほど作ったAnimator Controllerを設定する。

f:id:kuwamai:20180520021221p:plain

これでひたすら踊るモデルができた。

モデルに歌わせる

歌は頑張って歌って録音した。録音した音声をAssetsに追加。
今回は踊るモデルから音が聞こえるようにしたいので、Audio Sourceをモデルに追加。

f:id:kuwamai:20180520033252p:plain

3D Sound Settingsで、Audio Listenerとの距離に応じて音量が変わるように設定できる。
念のためAudio ListenerがMain Cameraに追加されていることを確認しておく。

歌う関数

こんなScriptを書いた。
Singという名前の関数が実行されると歌う。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Sound : MonoBehaviour {
    public AudioSource audioSource;  //ここから聞こえる
    public AudioClip song;  //歌の音声

    void Start () {
        audioSource = GetComponent<AudioSource> ();
    }

    void Update () {
        
    }

    public void Sing(){  //歌う関数
        audioSource.PlayOneShot (song);  //歌う
    }
}

これをモデルに追加して、さっき作成したAudio SourceとAudio Clipを設定する。

f:id:kuwamai:20180521171600p:plain

アニメーションに合わせて歌う

エイサイハラマスコイの踊りに合わせて歌を再生したい。

Windowの右端にある小さな▼三みたいなアイコンをクリック、Add Tab / Animationを選択するとAnimation Windowが表示される。

f:id:kuwamai:20180520022009p:plain

Assets内のAnimation Clipを選択するとAnimation Windowに編集画面のようなものが表示されるので、再生時間が書いてある下の余白部分(イベントライン)上で右クリック、Add Animation Eventをクリックする。

f:id:kuwamai:20180520022313p:plain

Animation Eventのドキュメント。

白い小さな縦線がAnimation Event。クリックすると青くなる。
Functionに関数を設定すると、Animation Eventのタイミングで実行される。

f:id:kuwamai:20180520022703p:plain

これで歌って踊るモデルの完成。
雑にまとめたので、よくわからないところがあったらどうぞ聞いてください。