2016年1月2日土曜日

VOCALOID SDK for Unityでユニティちゃんにvsqxを歌わせる方法

How to make unity-chan sing songs

2015年12月、VOCALOID SDK for Unity が公開されました。
VOCALOID SDK for Unityに付属するランタイム版ユニティちゃん歌声ライブラリを使ってゲームエンジンUnity3D(以下Unity)でユニティちゃんを歌わせることができます。

© UTJ/UCL

VOCALOID SDK for Unity にはvsqxファイルを歌わせるPlayback モードと、イベントごとに歌声を出力するRealtime モードがあります。
Playback モードを使ってユニティちゃんを歌わせる方法をまとめてみました。


環境

・Windows8.1
・Unity 5.3.1f1 Personal版


VOCALOID SDK for Unityをダウンロードする

「Unity with VOCALOID」特設サイト
http://business.vocaloid.com/unitysdk/
からVOCALOID SDK for Unityをダウンロードします。
ファイルはunitypackage形式です。


UnityのプロジェクトにVOCALOID SDKをインポートする

Unityを起動して適当なプロジェクトを作ります。
ダウンロードしたunitypackage形式のVOCALOID SDK for Unityをダブルクリックしてインポートします。


エラーが発生したら

動作確認のためインポート直後にゲームを開始してみたら次のエラーが起きました。
Assets/Editor/PostProcessBuild.cs(14,19): error CS0234:
The type or namespace name `iOS' does not exist in the namespace `UnityEditor'. Are you missing an assembly reference?

UnityDownloadAssistant の最新版を公式サイトからダウンロードして起動し
iOS.Build.Support
の追加オプションをインストールしたらエラーがなくなりました。


プロジェクトにvsqxファイルを追加する

VSQファイルやvsqxファイルはボーカロイドに歌わせるための歌詞と楽譜のようなものです。
vsqxファイルの作り方については後述します。
今回は1トラック分のvsqxファイルを用意しました。

このファイルをProjectのAssetsフォルダーのルートに vsq_sample.vsqx という名前で配置しました。これを歌わせることを目標にします。


SceneにAudioSourceとスクリプトを追加する

VOCALOID SDK for Unity でユニティちゃんに歌わせるには最低でも次の2つのコンポーネントが必要です。
  • Audio Source
  • VOCALOID SDK for Unity のAPIを呼び出すスクリプト
  • Audio Listner
Audio ListnerはデフォルトでSceneのMain Cameraにアタッチされているので説明は省きます。

今回はSceneにEmptyオブジェクトに配置してこれらのコンポーネントをアタッチします。
メニューの
GameObject - Create Empty
を実行してEmptyオブジェクトを追加します。
HierarchyにGameObjectが追加されるのでInspectorからAudio Sourceをアタッチします。

次にスクリプトを追加してGameObjectにアタッチします。
ProjectにC#のスクリプトを MyScript.cs というファイル名で 追加し、GameObjectにアタッチします。

MyScript.cs


これでゲームを実行すると歌わせることができました。
歌声が流れるだけなのでスクリーンショットはありません。


APIについて

VOCALOID API for Unity は全て YVFクラス を通して扱います。
YVF.YVFStartup() を実行したらそのアプリが終了するまでに YVF.YVFShutdown() を実行してシャットダウンする必要があります。
YVFOpenSong() を実行したらそのアプリが終了するまでに YVF.YVFCloseSong() を実行してソングをクローズする必要があります。
シャットダウンやクローズし忘れるとリソースが解放されないようで、Unityを再起動するまで挙動がおかしくなります。
YVFクラスのメソッドが正常に実行できなくなったらUnityを再起動してください。


vsqxファイルの作り方

VOCALOID SDK for Unity は歌声の元となるvsqファイルかvsqxファイルが必要です。
vsqはVOCALOID2までのバイナリー形式、vsqxはVOCALOID3以降のXML形式のファイルです。
このブログを書いている時点ではVOCALOID SDK for Unity ではvsqxファイルを作ることができません

vsqxファイルを作るには、次に挙げるような方法があります。
  • ヤマハが発売している VOCALOID4 EDITOR for CUBASE(ボカキュー4)を買う
    (WindowsとMacに対応)
  • クリプトンが発売しているVOCALOID3以降の歌声ライブラリー(初音ミクV3など)を買って付属のVSTプラグイン・ピアプロスタジオを使う
    (WindowsとMacに対応)
  • ヤマハが発売している VOCALOID4 EDITORを買う
    (Windowsのみに対応)
  • vsqxファイルの仕様を解析してXMLを記述する、またはエディターを自作する
ボーカロイド未経験のUnity開発者が手っ取り早くvsqxファイルを作るならパッケージ版ボカキュー4がお勧めです。CUBASE AIが付属します。
ダウンロード版ボカキュー4にはCUBASE AIは付属しません。
CUBASE AIはマルチトラックのオーディオ・MIDI編集ソフトで、ボカキューはCUBASE AIに統合された機能として利用できます。
WindowsでCUBASE AIを使うにはASIO対応オーディオインターフェイス(ハードウェア)が必要ですが、フリーウエアのASIO4ALLで代用できるようです。
なお、ボカキューと歌声ライブラリーは別売りです。ボカキューで歌声の確認をするにVOCALOID2以降の歌声ライブラリーを買う必要があります。


留意点

ランタイム版ユニティちゃん歌声ライブラリーの容量は145MBほどです。参考までにVOCALOID3版初音ミク(MIKU_V3_Original)が1.8GB、VOCALOID2可愛ユキが351MBほどです。

VOCALOID SDK for Unityは「モバイル向けに軽量化したエンジン」とのことでレイテンシーは少ないのですが、PC用ボーカロイドとは歌い方が異なる気がします。
個人の感想ですが、vsqxファイルで細かく調整するほどVOCALOID SDK for Unityで再生した歌声に違和感を感じます。


関連ブログ

[Unity3D] オーディオの音量が小さく再生されるトラブルと直し方
[Unity3D] 透視投影と平行投影を合成するには[ユニティちゃん]
[Unity3D] サイドバイサイドで立体視できるゲームを作るには [クエリちゃん][ユニティちゃん]
[Unity3D] ユニティちゃんたちのアニメーションを分離するスクリプト
Blenderで作ったアニメーションがUnity3Dで違う動きをする原因と直し方
[Unity3D] 画面表示を左右反転させる方法
[Unity3D] 二つのscene(シーン)を一つにまとめる方法
[Unity3D] Unity5のアプリをAndroid Studioにインポートする方法
[Unity3D] ゲーム画面をキャプチャしてMovie Studioで動画に編集する

以上、参考になれば幸いです。

0 件のコメント:

コメントを投稿