2016年1月30日土曜日

BlenderのモデルデータをMMDに変換する方法

How to convert FBX models into MikuMikuDance Models

前回のブログでUnityアセットのクエリちゃんのFBXファイルをBlenderに取り込んで編集する方法を内容を書きました。
[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法

今回はBlenderに取り込んだモデルをMikuMikuDance(以下MMD)のモデルに変換する方法をまとめました。
blog.fujiu.jp BlenderのモデルデータをMMDに変換する方法

環境

  • Windows 8.1
  • Blender 2.76


Blenderですること

BlenderのモデルをMMDに変換する場合はPMXにエクスポートするアドオンが必要です。
この様なアドオンは有志により複数公開されてますが、モデルデータによって変換に成功するアドオンと失敗するアドオンがあります。
複数のアドオンを使えるようにしておくことをおすすめします。

Blender2PMXアドオンは頻繁に使わせてもらってます。
ようやく改変Blender2Pmxが完成しました | KAGAYAS
http://kagayas.com/blender_blender2pmxe_addon/


エクスポート時に Repeortエラーに ValueError と表示される場合の対処方法

Blenderは実行プログラム本体とテクスチャ画像のファイルが異なるドライブに保存されていると、エクスポート時にとエラーが起きることがありました。
例えばblender.exeがDドライブにインストールされ、編集中のテクスチャ画像のファイルがCドライブにある場合など。
変換するモデルのファイルはblender.exeと同じドライブに保存してください。

ValueError: path is on mount 'C', start on mount 'D'


PMX Editorですること

pmxに変換できたらおしまいではなく、PMX Editorで編集します。
PMX Editorはこちらのサイトからダウンロードさせていただきました。
ダウンロード: とある工房
http://kkhk22.seesaa.net/category/14045227-1.html

ダウンロードして展開したら30個くらいある全てのdllファイルをセキュリティの「ブロックの解除」をしないと実行中にクラッシュします。
「ブロックの解除」はdllファイルを右クリックしてコンテキストメニューのプロパティを開くと捜査できます。

PMX Editorが使えるようになったらBlenderからエクスポートしたPMXモデルデータを次のように編集します。
  • モデル名とコメントの登録
  • 大きさの調整
  • 材質の調整
    材質はBlenderでいうマテリアルのようなもの
  • ボーンの設定
    日本語化、場所と向きの調整、指のボーンをローカル軸化、「性能」の設定、IKボーンの追加、全ての親ボーンや撚りボーンの追加など
  • 肩の角度の初期設定
  • モーフの設定
    クエリちゃんの場合はヘッドセット消しや表情操作を追加しました
  • 表示枠の瀬邸
  • 剛体の設定
    BlenderのCollisionやRigid Bodyのようなもの
  • Jointの設定
    髪などの揺れものがどこにぶら下がっているかの設定

保存するときは上書きせずに別名で保存します。
少し変換作業をしたらMMDで動かして不具合がないか確認します。不具合があったら古いファイルを開いて編集をやり直します。
満足する出来になるまで数週間も数ヶ月もかかると思います。


関連ブログ

[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法
3次元CGソフト・Blenderの脱初心者を目指す
クエリちゃんMMDモデル更新
[Unity3D] 画面表示を左右反転させる方法
[Unity3D] 二つのscene(シーン)を一つにまとめる方法
[Unity3D] サイドバイサイドで立体視できるゲームを作るには
[Blender] obj2opengl.plをJava用に改造する
[Unity3D] Blender could not be found.を解決するには
[Unity3D] Unity4からUnity5へのバージョンアップでの変化

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

2016年1月23日土曜日

[Blender] ボーンを曲げてもメッシュが曲がらない原因と修正方法

The duplicate vertex groups should be normalized

3次元CG編集ソフト・Blenderのトラブルシューティングです。
Unityアセットの「クエリちゃん」をMikuMikuDance(以下MMD)に移植するためにBlenderを使いました。
クエリちゃんの指は3種類のポーズが用意されてますが、関節を自由に曲げることが出来ません。
MMDでの使いやすさを考慮して指のボーンを追加したのですが、当初はボーンの通りに指が曲がりませんでした。
「頂点グループ」など専門用語(?)や細かい操作の説明は省略します。


環境

  • Windows 8.1
  • Blender 2.76


クエリちゃんをBlenderに取り込む

クエリちゃんのFBXは次の内容が設定済でした。
・ボーン
・頂点グループ
・ウェイト(重さではなくボーンの影響の強さ)

これらを保ったまま指のボーンを追加する前に必要な手順は次の通りです。
  1. FBXファイルをインポートする
    !EXPERIMENTAL! Apply Transtormをオンにしたほうがいい場合と、オフにした方がいい場合があります。両方試してボーンの位置や向きが最適な方を編集します。
  2. ポーズをデフォルトにする
    取り込み直後は中を浮いているようなポーズですが、Action Editorで Chr_Reference|000_Def|000_Def:BaseAnimation を選択したらデフォルトのポーズになりました。
  3. マテリアルを修正する
    Blenderで正しく表示できるようにマテリアルを一つずつ修正します。
    特に顔は眉・左目・右目・口のテクスチャをそれぞれ独立して差し替えできるように分割しました。
  4. テクスチャを指定する
  5. ボーンの名前を変更する
    X-Asis Mirrorを有効にして左右反対側のボーンも自動で編集するための措置です。
    例:
    Chr_LeftShoulder → Chr_Shoulder.L
    Chr_RightShoulder → Chr_Shoulder.R
  6. ボーンの向きを修正する
    ※MMD付属モデルのようにボーンの向きが頂点グループに重なるように修正します。
  7. 足やつま先にIKボーンをつける
作業途中のクエリちゃん


指のボーンを追加する

3種類の手のポーズのうち、指がまっすぐに伸びているパーの手にボーンを入れることにします。
手を親として指のボーンを追加します。関節は各指に3つとしました。

ボーンごとに頂点グループを設定する

各ボーンと同じ名前の頂点グループを作ってそれぞれの頂点を設定します。

人差し指の先端

人差し指の真ん中
複雑な形の手から全部で30個の頂点グループを作るので慣れないうちは気が遠くなります。


曲げると明らかにおかしい

指を曲げてみるとボーンの通りに曲がりません。階段のようになってます。


原因は頂点グループの重複でした

初期設定のままだと手の頂点グループは指の先まで含まれてます。
手の頂点グループと今回新しく追加した指の頂点グループと重複したため正しく曲がらなかったようです。
手の頂点グループから指の頂点グループを削除しました。
これで指が曲がるようになりました。

ボーンを移動するとボーンに追随しなかったり変形してしまう場合は頂点グループの重複が原因かもしれません。
Blenderに頂点グループの重複を検索する機能があればいいんですね。




関連ブログ

クエリちゃんMMDモデル更新
3次元CGソフト・Blenderの脱初心者を目指す
[Unity3D] 画面表示を左右反転させる方法
[Unity3D] 二つのscene(シーン)を一つにまとめる方法
[Unity3D] サイドバイサイドで立体視できるゲームを作るには
[Blender] obj2opengl.plをJava用に改造する
[Unity3D] Blender could not be found.を解決するには
[Unity3D] Unity4からUnity5へのバージョンアップでの変化
[Unity3D] ゲーム画面をキャプチャしてMovie Studioで動画に編集する

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

2016年1月22日金曜日

[宣伝] 技術評論社・自律神経を整えるスマホアプリ100選

The advertisement

2016年1月22日、技術評論社から書籍「自律神経を整えるスマホアプリ100選」が発売されます。
自律神経を整え心身のバランスを取るアプリ100種を一挙紹介

全ページカラーで全てのアプリにスクリーンショットと編集者による解説が掲載されています。
スマートフォンを持っている人にもそうでない人にもおすすめしたい一冊です。

※拙著のアプリ「Eye元気!2」と「ザ・数唱」が掲載されました。


2016年1月16日土曜日

CUBASE Pro 8.5 を使ってみました

About CUBASE Pro 8.5

2015年12月、オーディオ・MIDI編集ソフトの CUBASE の最新版 CUBASE Pro 8.5 が公開されたので使ってみいました。
8.5で強化されたのは大まかに次の3点のようです。
  • 操作性の向上
  • 付属シンセ Retrologue のバージョンアップ
  • VST Transit (新規に開始したクラウドストレージサービス) への対応

ちなみに2016年1月6日に体験版がこのページから申し込めたのですがその翌日はなぜか申し込めなくなってました。
http://www.steinberg.net/en/newsandevents/news/newsdetail/article/cubase-pro-85-trial-available-3528.html


環境

  • Windows8.1 64bit
  • USB-eLicenser (いわゆるドングル)


CUBASE Pro 8.5 のインストール

CUBASE Pro 8.5を使うにはUSB-eLicenserをPCに接続する必要があります。
USB-eLicenserはSteinbergのDAWやVSTプラグインの製品をライセンス登録するのに必要なドングルです。
新規に製品版CUBASEを購入する場合はUSB-eLicenserが付属しますが、体験版を使うには別途必要です。

CUBASE Pro 8.5をインストールし、CUBASEと一緒にインストールされるeLicenser Control Centerにアクティベーションコードを入力すると使えるようになります。



CUBASE Pro 8.5 は 8.0 と共存できる

CUBASE Pro 8.5とCUBASE Pro 8.0は別のプログラムとしてインストールされます。


Retrologue 2 は旧バージョンを上書きする

CUBASE付属のシンセサイザー・Retrologueがバージョンアップしました。
旧バージョンのRetrologueは新しいバージョンに上書きされます。
上書きされたくない場合はインストールの画面でRetrologueを選んでアップデートしないようにします。

上書きインストールされた後はCUBASE Pro 8.5をアクティベーションをしないと警告が出ます。体験版の場合、期限が切れると起動できなくなると思います。

Retrologue 2 はオシレーターやアルペジエーターの追加に伴いプリセットが408増えました。


8.5でどこが便利になったのか?

細かい操作方法が改善されてます。
たとえばキーエディターの鉛筆ツールでマウスをクリックするとノートを書けるわけですが、マウスの左ボタンを離さずにマウスを手前や奥に移動させるとベロシティーの上げ下げができます。
その間、ノートの左にベロシティの数値が表示されます。
左ボタンを放さずに場合は修飾キーを押しながらマウスをドラッグすると位置や長さを変更できます。
詳しくは日本語マニュアルの815ページ前後。

他にもたくさん変更されているようですが、地味すぎてわかりにくいです。


ボカキュー4は使えるか?

(VOCALOID4 Editor for CUBASE (略してボカキュー4) はCUBASEにVOCALOID4 Editorを統合する拡張機能です。
CUBASE Pro 8.5でボカキュー4は使えました。


そもそも今までのバージョンアップにメリットがあったのか?

今回のバージョンアップは地味な変化ばかりでした。
パソコンの性能向上が頭打ちになったためか、CUBASE 7以降は大きな変化はないように思います。
その一方、Steinbergは「Absolute 2 VST Instrument Collection」や「Groove Agent 4」などVSTiプラグインのラインナップを強化したり、サブスクリプション制と思われるクラウドサービスを開始したりしています。

そこで今まで CUBASE をバージョンアップしてどんなメリットがあったのか冷静に考えてみました。
最近CUBASEを使ったのはマスコットアプリ文化祭投稿作品のデモ動画のBGMを作ったときです。

これらのBGMは CUBASE Pro 8.0 で作りました。
音楽としての質はともかく、どちらも15分くらいで完成しました。
特に次の機能を駆使しました。
  • テンポの検出
  • メディアベイ
  • MixConsole
  • チャンネルストリップ
  • 各種エフェクト
いずれもCUBASEのバージョンアップとともに進化してきた機能です。
古いCUBASEだったら完成させるのにもっと時間がかかっと思います。
音楽の知識がなくても作曲できるのがCUBASEをバージョンアップして最新版を使うメリットだと思います。


関連ブログ

CUBASE Pro 8.0 トラブル対策
[CUBASE][StudioOne] 音の遅れ(レイテンシー)の原因を探る
[CUBASE] 「突然音が出なくなった」を解決する
wavファイルの書き出しは要注意 [CUBASE][StudioOne]
[CUBASE] グループチャンネルとFXチャンネルの違いと使い分け
[CUBASE] スペクトルモニターの精度
ProTools First のwavファイルはPlaySound関数で再生できるか?
VOCALOD4 Editor for CUBASE (V4版ボカキュー)を使ってみました
VOCALOID Editor for CUBASE(ボカキュー)で何が変わるか?

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

2016年1月8日金曜日

VOCALOID SDK for Unity でユニティちゃんをリアルタイムに歌わせる方法

How to make unity-chan sing songs #2 (Realtime mode)


2015年12月に公開された VOCALOID SDK for Unity とそれに付属するランタイム版ユニティちゃん歌声ライブラリを使うと ゲームエンジンUnity3D(以下Unity)でユニティちゃんを歌わせることができます。
前回は VOCALOID SDK for Unity でvsqxファイルを歌わせるPlayback モードについてブログを書きました。
VOCALOID SDK for Unityでユニティちゃんにvsqxを歌わせる方法

今回はRealtime モードで歌わせる方法を試してみました。

© UTJ/UCL


環境

・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をダブルクリックしてインポートします。


エラーが発生したら

動作確認のためVOCALOID SDKのインポート直後にゲームを開始してみたら次のエラーが起きました。
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
の追加オプションをインストールしたらエラーがなくなりました。


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#のスクリプトを MyScript2.cs というファイル名で 追加し、GameObjectにアタッチします。
今回はレイテンシー(遅延)がわかりやすいようにマウスのクリックで発音するようにしました。

MyScript2.cs


これでゲームを実行すると、Gameウィンドウをクリックするたびにユニティちゃんが「ゆにゆににしてやんよ」と歌います。(「ミクミクにしてあげる」の替え歌)
Realtimeモードでは、歌声が流れる間スクリプトのInspectorにオーディオのレベルメーターが表示されます。


APIを扱う際の注意点

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


Realtimeモードの留意点

Playbackモードと違い、vsqxファイルは不要です。
高度な歌声を合成するにはMIDIデータフォーマットの知識が必要です。

バッファーサイズによってレイテンシーが大きく変わります。
YVF.YVFRealtimeSetStaticSetting(YVF.YVFRealtimeMode.Mode1);
でバッファー最小・低レイテンシ、高負荷
YVF.YVFRealtimeSetStaticSetting(YVF.YVFRealtimeMode.Mode5);
でバッファー最大・高レイテンシ、低負荷

ボーカロイドは歌詞の「は」は常に「は」と発音します。助詞の「は」は「わ」に文字を置き換える必要があります。
「こんにちは」と歌わせるなら歌詞を「こんにち」に設定する必要があります。


関連ブログ

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

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

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で動画に編集する

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