ニコニコ動画にあった「極楽浄土」のダンスモーショントレースがすごくリアルで感動しました。曲も和な感じがして良いです。
MMDモーションファイル(VMDファイル)が提供されていて、セカンドライフのアバターでこのダンスをしたかったのでアニメーションファイルを作ってみました。
ツールの準備、エラーの解消は試行錯誤が本当に多かったのでメモとして残しておきます。
Second Lifeのアニメーションファイル作れた!VMDからSL用のBVHに変換できた。ツールうまく動かなかったり、日本語の文字でエラー起きて対処大変だった#SecondLife #sljp pic.twitter.com/Z7GNOXhABQ
— Yuu (@yuuwrite) February 23, 2023
この記事で分かること
- 参考記事
- 必要なステップ
- ツールの準備
- ツールのセットアップ
- VMDファイルからBVHファイルに変換
- Second Lifeにアップロード
- Second Lifeの中で再生
参考記事
MMD と SL ~ モーション編
Windows7 64bit 版で mio-0.1 動かしてみる(2012年3月公開)
セカンドライフ 60秒 アニメーション解禁
VPVP wiki モーションツール/ファイル変換
MikuMikuDanceで作成したダンスをSecond Lifeで!(きっと長文)
iClone7 で 極楽浄土 (Paradise Land)
必要なステップ
大きくわけて3つですが、ツールの準備が大変なので頑張ってください。
- VMDファイルをmio-0.1でBVHファイルに変換
- BVHファイルをMMDBVHToSLBVHでSecond Life用のBVHファイルに変換
- Second Lifeに2のBVHファイルをアップロード
ツールの準備
1.ツールや必要なファイルをダウンロードします。
mio-0.1関連 VMDからBVHに変換するツール
・mio-0.1
・vcpvcr71 (msvcp71.dllとmsvcr71.dll同梱)
・Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージ
・Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ
解説記事を参考にして、近いバージョンを揃えたものです。
・python-2.6.6
・PyOpenGL-3.0.0.win32
・PyQt-Py2.6-gpl-4.5.4-1
・glut-3.7.6-bin.zip The OpenGL Utility Toolkit (GLUT)
MMDBVHToSLBVH関連 BVHからSecond Life用のBVHに変換するツール
・MMDBVHToSLBVH
・.NET Framework 3.5
アプリ実行時の自動導入またはWindowsの機能追加で入れます
MikuMikuDance関連 モデルデータの利用
LiveAnimation関連 VMDやBVHデータの再生
・LiveAnimation
・Microsoft XNA Framework Redistributable 4.0
DLLの依存関係が分かるツール ※トラブル時に使う
Dependency Walker
ツールのセットアップ
1. 参考記事を参考にして頑張ってセットアップしてください。
2. 「vcpvcr71」(Vector)、「Microsoft Visual C++ 2008 Service Pack 1 再頒布可能パッケージ」「Microsoft Visual C++ 2005 Service Pack 1 再頒布可能パッケージ」を入れます。(必要な場合)
3. mio-0.1\scripts\mio.dll をC:\Windows\SysWOW64またはC:\Windows\system32にコピーします。(64bit環境はSysWOW64に入れる)
4. python.exeを実行できるように環境変数のPATHを設定しておきます。
5. mio-0.1\scripts\vmdviewer.pyw をダブルクリックして画面が出るか試します。
ここでvmdviewerの画面が出ない、反応が無い場合は必要なDLLが足りていません。
mio-0.1\scripts\_cmio.pyd (DLL)が他のDLLを参照しています。依存関係が分かる「Dependency Walker」ツール等で確認し、足りないDLLをインストールします。MSJAVA.DLLは入れなくても大丈夫です。
6. mio-0.1でVMDファイル内に変換できない文字があるときのエラーを解消するため、ソースを変更します。
変更するファイル:
mio-0.1\scripts\pymio\mmd\vmd\vmd_parser.py
変更内容:
28行目のget_english_nameのところのコードを下のように変更します(赤字)。変換できない文字はreplaceで対処するようにします。
def get_english_name(raw):
return Dictionary.to_english(read_null_terminated_string(raw).decode('shift-jis').encode('utf-8'))
↓
def get_english_name(raw):
return Dictionary.to_english(read_null_terminated_string(raw).decode('shift-jis', 'replace').encode('utf-8'))
VMDファイルからBVHファイルに変換
※フォルダ名、ファイル名は日本語にしない
ダンスモーションデータ、モデルデータの用意
1. ダンスモーションデータ(VMDファイル)を頂いてきます
【MMD戦国BASARA】極楽浄土 モーショントレース
2.MikuMikuDance(DirectX9 Ver)のzipを解凍します。 MikuMikuDance_v932\UserFile\Model の中から "初音ミク.pmd" ファイルをもらってきます。ファイル名は "hatsunemiku.pmd" に変更します
mioの操作
1. mio-0.1\scripts\vmdviewer.pywをダブルクリックして、vmdviewer画面を出します
2. PMDの「Load」ボタンをクリックし、MikuMikuDanceから抽出したPMDファイルを選択
3. VMDの「Load」ボタンをクリックし、用意したVMDファイルを選択
4. 読み込まれるので待ちます
5. 「Export BVH」ボタンをクリック
6. Export BVHダイアログが開くので、FileNameは適当なフォルダとファイル名にする ※英語
その他の設定はそのままにする
7. Export BVHダイアログの「Save」をクリック
8. BVHファイルが保存される
MMDBVHToSLBVHの操作
1. MMDBVHToSLBVH.exeを実行します
2. MMDBVHToSLBVHの「File」→「Open」でBVHファイルを開きます
ここでアプリが落ちたらBVHファイルが正しく用意できていません。LiveAnimationでもVMD→BVHに変換できますが対応していないようです
3. 「File」→「Save As」でSL用のBVHファイル名を指定して保存する(指定秒数ごとに分割されます)
※作成したBVHファイルの確認(やらなくてもOK)
1. LiveAnimationを実行します
2. メニューにあるモデルのボタンのいずれかをクリック
3. メニューで「ファイル」→「インポート」→「BVH」をクリックし、作成したBVHファイルを選択
4. 画面下部にある再生ボタンをクリックして再生出来たらOK
Second Lifeにアップロード
1. Second Lifeのビューアを起動します
2. アップロードでBVHファイルを選択します
3. プライオリティを2から4に上げておきます
4. プレビューをして問題なければ、アップロードを実行します
Second Lifeの中で再生
アップロードしたアニメーションがインベントリに保存されています。再生してみて問題ないか確認します。