スキップしてメイン コンテンツに移動

セカンドライフのアニメーションファイルの作り方(VMDからBVHに変換)

ニコニコ動画にあった「極楽浄土」のダンスモーショントレースがすごくリアルで感動しました。曲も和な感じがして良いです。

MMDモーションファイル(VMDファイル)が提供されていて、セカンドライフのアバターでこのダンスをしたかったのでアニメーションファイルを作ってみました。

ツールの準備、エラーの解消は試行錯誤が本当に多かったのでメモとして残しておきます。



この記事で分かること

  • 参考記事
  • 必要なステップ
  • ツールの準備
  • ツールのセットアップ
  • 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つですが、ツールの準備が大変なので頑張ってください。
  1. VMDファイルをmio-0.1でBVHファイルに変換
  2. BVHファイルをMMDBVHToSLBVHでSecond Life用のBVHファイルに変換
  3. 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の依存関係が分かるツール ※トラブル時に使う

ツールのセットアップ

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の中で再生

アップロードしたアニメーションがインベントリに保存されています。再生してみて問題ないか確認します。

このブログの人気の投稿

Yahoo!ニュースと知恵袋を非表示にする方法[Y Site Block]

ヤフーニュースと知恵袋を見えないようにするChrome拡張機能(Edge拡張機能)です。トップページのニュース欄、トピックス欄も隠すことが出来ます。 Yahoo!ニュースやコメント欄、知恵袋を見てしまって意味の無い時間を過ごしてしまったり、ストレス溜めてしまっていないでしょうか。 この拡張機能で見たくないものをブロックしましょう。 ※Microsoft Edgeでもこの拡張機能は動作します。 ※スマートフォンのChromeには対応していません。 この拡張機能を使うとこうなります トップページのニュース欄とトピックス欄が見えなくなります。 ヤフーニュースのページにアクセスしてもヤフーのトップページに移動します。 知恵袋のページにアクセスしてもヤフーのトップページに移動します。 拡張機能のセットアップ(Chromeの場合) 使いたい人は下記の手順でセットアップしてください。これはソース公開の拡張機能です。 1. この拡張機能を入れるフォルダをパソコン内に作ってください。  Cドライブの中でずっと同じ場所で使えるところにフォルダを作ってください。  よくわからない人はCドライブの直下に「YSiteBlock」というフォルダで作ってください。 2. 下記4つの内容をそれぞれファイルにして作ったフォルダに入れます。右上の「全選択」を押してコードをメモ帳にコピー&ペーストして、指定のファイル名で保存してください。 下の内容をファイル名「manifest.json」で保存 { "name": "Y Site Block", "description": "Yのニュースと知恵袋を非表示、ページにアクセスできないようにします。", "version": "1.1.0", "manifest_version": 2, "web_accessible_resources": [], "permissions": [], "content_scripts": [ { "matches": ["https:/

Cloudflare使って独自ドメインのメールをGmailで受けるやり方

今までG Suite無償版を使っていてキャッチオールでメールをGmailに転送していました。今年(2022年)に無償提供が終了になることになったので移行先を探してましたが、Cloudflareの「Email Routing」を使うことにしました。 やり方をまとめておきます。 「Email Routing」はクローズドベータでしたが、2022/2/8にオープンベータになりました。 Email Routing is now in open beta, available to everyone (The Cloudflare Blog) Migrating to Cloudflare Email Routing (The Cloudflare Blog) Cloudflare Email Routingでメールの作成とルーティングが簡単に (The Cloudflare Blog) 何ができる? 独自ドメインのメールアドレス(複数設定可能)を作成し、指定のメールアドレスに転送できる 独自ドメインのメールアドレス(複数設定可能)を作成し、ドロップすることもできる キャッチオール(設定していないメールアドレス)のメールを転送できる キャッチオール(設定していないメールアドレス)のメールをドロップできる 今時点(2022年2月)、メール転送は無料(Freeプラン)で利用できる 何が必要? Cloudflareアカウント ドメインのネームサーバーをCloudflareが用意するネームサーバーに変更 やり方 Cloudflareのアカウントが無い場合: 1. Cloudflareのサインアップ画面でアカウントを作成します。メールアドレスとパスワードを入力します。画面の指示に従って進めます。 2. アカウントが作成したら完了です。セキュリティを高めておくなら、2要素認証を設定しておきます。 ドメインの追加: 1. Cloudflareのダッシュボードにログインします。メニューの「Webサイト」にアクセスし、「サイトを追加」ボタンをクリックします。 2. 追加したいドメインを入力し、「サイトを追加」ボタンをクリックします。 3. プラン選択が出たら、無料にしたい場合は「Free」プランを選択します。 4. ネームサーバーの変更を促されます。ドメインに元々設定されているネームサーバーの