• Showing Page History #102494

MIDI to MMDMotion (MID2Motion)

MikuMikuDance のモーションを MIDI 信号によって、テンプレートを元に生成する Java アプリケーションです。

何これ

Standard MIDI から、 MMD モーションを作るものです。 Standard MIDI は、 General MIDI でもある程度対応しますが、基本的には MAGIX Music Maker および Samplitude 用の MIDI を想定します。

デモ演奏兼紹介動画 ニコニコ動画「鼓リズムのドラム講座DR (ニコニコ動画アカウントが無い人用)

特徴

このアプリケーションは、

  1. Standard MIDI File (Format 0,1 共に可)を直接読んで、
  2. 前もって定義されたテンプレートを MIDI メッセージに基づき加工し
  3. MIDI の発音タイミングにモーションを同期させます。
  4. 基本的には演奏モーションなので、 Drum, Keyboard, Bass, Guitar など 楽器ごとに特徴のある MotionBuilder が用意されています。
  5. 楽器と関係ない動きも記述できる sampler も用意されてます。
  6. (開発者向けで) MotionBuilder クラスを extend させることによって、新たな モーションビルダを作ることもできます。

必要なもの

  1. Java Runtime Library SE 1.6 以降 (Sun でも, Oracle でも, OpenJDK でも可)
  2. MikuMikuDance (以後 MMD とよばれる.)
  3. MMD用のモデル(PDX, PDM, PMX Editor が作る CSV 形式)
  4. PMX Editor (モデルを CSV にするだけに使います。)

ダウンロード

MID2Motion リリースリスト: 最新 Version 1.0.

インストール

  1. Java Runtime Environment (JRE) があるなら、*.jar がコーヒーカップの アイコンで表示されてます。なければ、 JRE か JDK をインストールしてください。Version 1.6 以降ならなんでも動くと思います。 (IBM製では、swing を別にインストールする必要があります。)
  2. 基本はそれだけです。*.jar はどこにおいてあってもかまいませんが、 全部同じ場所において置いてください.

利用法

mid2motion-main.png
MIDI to Motion (Main Frame)

  1. 普通は MID2Motion-1.0.jar をダブルクリックするなどして実行してください。 なんらかの理由で動かない場合は、mid2motion.bat をダブルクリックして実行してください。 コマンドラインでは、
        java -jar MID2Motion-1.0.jar
    
  2. まずは MIDI ファイルを読み込みますが、まだ細かくて一連になってない場合は、 Tools/Midi concatenate で読み込み、つなげます。
  3. File/open midi でつなげたMIDIファイルを読み込みます。
  4. MMD の標準は30 FPS で、テンプレートのほとんどがこれを想定してますが、ここで変えることができます。 表示されているFrame/beat が簡単な分数になるほうが、見栄えがよくなるかもしれません。
  5. 作りたいモーションの種類をタブから選んでください。
    • drum: ドラムモーションです。2種テンプレートと1種換算表を選んだら変換できます。 10 チャンネルがあるとそれをドラムパターンとしますが、無いと一番番号の低い チャンネルをドラムパートとします。
    • Bass: ベースモーションです。1種テンプレートと1種換算表からなります。
    • keyboard: キーボードモーションです。これは、テンプレートじゃなくて 位置合わせのためのモーションとモデルを入れます。モデルとモーションが 入ってないと Midi2Vmv の自動演奏鍵盤モーションと同じモーションしか 作りません。IK Solver が採用されています。
    • sampler: サンプラーモーションです。ドラムモーションの簡易版みたい なものです。足踏みや往復運動など入れます。

モーションテンプレート

モーションテンプレートはVMD(CSV形式でも可)モーションファイルと換算表(CSV)から成ってます。 モーションテンプレートの多くはMMDモデルとその組み合わせに依存しますので、対応モデルを用意してください。

モーションテンプレート対応表はMID2Motion/templatesへ。

著作権・ライセンス(使用許諾)

著作者は複数いますが、すべて MIT License です。これは、

  • 著作権表示を保持するかぎり、自由に転載・改変してもいい。
    • 商用利用も可だが、このライブラリーを使用していることを必ず明記。
  • 著作者はこのプログラムによって発生する損益に完全に無責任。

ということだけ、覚えて置いてください。

ちなみにこの著作権とライセンスは、プログラムの著作権の話であって、 これで作った映像作品の著作権には影響しません。 また、付属するモーションテンプレートには、 足踏みや楽器のかなり一般的な弾き方など、 著作性がないので、著作権はありません。

TogaGem-3.101.4-mod.jar

Copyright(c) 2010 olyutorskii http://mikutoga.osdn.jp/

TogaGem は、3D動画制作ツール、MikuMikuDance(MMD)で用いられる 各種データファイルを読み込むためのJavaライブラリです。 著作者は、olyutorskii です。 MIT License で転載・改変が認められております。 今回は一切改変は行われておりませんが、MMDMotion は、 このライブラリーに強く依存しております。補間関係で少々書き換えてます。

MMDMotion-1.1.jar

Copyright(c) 2015 nazo http://mmdmotion-java.osdn.jp/wiki

MMD のモーションを計算で生成するために作った Java ライブラリです。 著作者は、nazo (ときどき Naz.) です。MMDIKSolver は、 ほとんどこれのおかげでできています。 MIT License で転載・改変が認められております。

MMDIKSolver-1.1.jar

Copyright(c) 2015 nazo http://mmdmotion-java.osdn.jp/wiki

MMD の IK 問題を計算で解くために作った Java ライブラリです。 MMD Motion for Java の初目的のライブラリーです。 著作者は、nazo (ときどき Naz.) です。 MIT License で転載・改変が認められております。

MID2Motion-1.0.jar

Copyright(c) 2015 nazo http://mmdmotion-java.osdn.jp/wiki

MMD のモーションを MIDI から生成するために作った Java アプリケーションです。(これ) 著作者は、nazo (ときどき Naz.) です。MIT License で転載・改変が 認められております。

注意事項

  • MMD開発者の樋口M氏とは、これらは無関係です。樋口M氏に問い合わせても 迷惑なだけなので、やめましょう。
  • AHS のキャラクター jamバンドのメンバーの名前が付いているファイルが ありますが、これもAHS とは無関係なので、 AHS に問い合わせないでください。 このパッケージには、AHS の著作物は一切入ってません。

謝辞

MMD開発者の樋口M 氏: http://www.geocities.jp/higuchuu4/index.htm

言うまでもないですが、これがないとそもそもこんなライブラリー作る 意味がないです。楽しいプログラムです。

jam player の chaba 氏: http://chaba.sakura.ne.jp/vl/jam/index.html

Starndard MIDI から演奏動画をつくる試みです。結構いいところまで できてるんですが、「せめて途中の解析データー(TAB譜とか指譜とか)があれば、 後をつなぐことができるものを」と惜しく思う作品です。オープンソース を望むのは反則かな?

Midi2Vmd の mqdl さん: http://mqdl.jpn.org/sb.cgi?cid=4

単純ですが、Starndard MIDI からキーボードのキーを動かす モーションをつくるプログラムです。 MID2Motion のキーボード モーションビルダーはこれの拡張みたいなものです。

kanabass の kadotanimitsuru さん: http://www.nicovideo.jp/watch/sm25031190

モーションテンプレートのアイディアの元です。コピー&ペーストでモーションを作る概念は、 前からありましたが、右手と左手を分けるとか、拍の偶奇で動作が違うなど、 地味に重要な技術が盛り込まれてます。BassMotionBuilder はこれの拡張 (開放弦モードの追加と note off でのミュート)で、DrumMotionBuilder も似た様なものです。

VmdSynthesizer のellerykh さん: http://www.geocities.jp/ellerykh/index.html

モーションサンプラーのextend (引き伸ばし) は、周期的ダンスモーションに、 これと同じことがしたかったから実装したものです。