SATCHのMMDコンバーターはpmd,vmdファイルを使って動きのある3D表現ができます。

ただSATCH Studioでは3Dを表示するsceneデータは1つしか持つことができないようです。

いろいろな動きをさせるために、単一のvmdを一から作るのは面倒です。

ここでは複数のvmdを結合して1つのvmdを作り、その中から必要な動きのみ選んで表示する...というやり方をしてみます。

vmdの編集用にVMDConverterを使います。

VMDConverterはMikuMikuDanceモーションファイル(.vmd)をテキスト(.csv)に変換したり、その逆を行うこともできます。

では2つのvmdを結合してみましょう。

例としてmotion1.vmdとmotion2.vmdというファイルを使うとします。

motion1にmotion2を結合するとします。

まずmotion1のフレーム数を調べておきます。VMDConverterの場合、結合後のフレーム番号を再記述する必要があるからです。

分からない場合はVMDViewなんかを使えば調べられます。

csvファイルに変換するには、vmdファイルをVMDConverter.exeのアイコンにドラッグ・ドロップします。

すると、VMDConverterフォルダーにcsvファイルが生成されます。

このファイルをExcelで開きます。

例えば、こんな感じです。

motion1.csv



motion2.csv



では結合してみます。

1:フレーム番号の変更

csvのB列の数字はフレーム番号です。

例えばmotion1のフレーム数が22だった場合、motion2はmotion1の後ろに来るので、motion2のB列の数字に23を加えます。

対象になるのは、motion2.csvの4行目から256行目までのB列データと、258行目から397行目まででB列に0でない数字のあるデータです。

2:データを挿入する

motion2.csvの4行目から256行目までのデータをmotion1.csvの249行目以降に挿入します。

motion1.csvの245という数字に253を加えます。

元データと挿入したデータを合わせて並び替えをしておきます。



次に、258行目から397行目まででB列のフレーム番号を変更したデータを最後の2行(0のある行)の前に挿入します。

motion1.csvの140という数字に新しく挿入したデータ数を加えます。

結合後、新しい名前でCSVファイルとして保存しておきます。

3:vmdに変換

新しいCSVファイルをVMDConverter.exeのアイコンにドラッグ・ドロップします。

以上です




MMDコンバーターを使ってsceneを作る方法は、SATCH ARでアニメーション表示をやってみる(その2)を参照。

SATCH Studioを起動してsceneを読み込みます。

このオブジェクト名をAAとします。

Luaコード

local AA = Scenette(scene:getObjectByName("AA"))
local anim = AA:getAnimation(0)

必要な部分の抜き出しには秒数を使います。

どの部分が必要か動かして確認します。

モデルはanim:play()というコードを使って動かします。

秒数チェックにはタイマーを使います。

timer = Timer()

repeatループの中で、以下を記述しておきます。

temp_time = timer:getTime()
LOG(temp_time .. "")

例えば、3.6秒から7.3秒までの場面を表示する場合は、

anim:play(3.6,7.3)というコードを記述します。






サンプル

このページは現在IEのみに対応しています。

鏡音リンちゃんにおたずねします

このページ使っているデータは6つのvmdを結合したものです。

MMDコンバーターのフレームMAXは10000ですが、ここでは7300ほどのフレームになっています。



:返事を返すのみの部分を抽出

と連動して、BGMあり/なしでダンスシーンを抽出。

MUSICの「サディスティック・ラブ」はピアプロからダウンロードしたものを使用。

3Dのモーションがオリジナルに比べて遅いのでサウンドも84%ほどにテンポダウンしています。

を実行したかどうかで異なった返事を返します。

:ポーズ・再生を実行。

:モデルを回転。



隠れ機能

マウスでリンちゃんの「ある場所」をクリック(まあ、タッチですね...^^)すると、反応を返してくれます。

探してみてください。
-----------------------------------------
次期バージョンでは音声認識に対応...したいです。








VMDMixerを使ってVMDファイルの任意の場所を切り出す

ellerykhさんの VMDMixer を使って切り出してみます。

まず、VMDViewなどを使って、どのフレームからどのフレームまで切り出すか確認しておきます。



起動時にPMDを読み込んでおいて、メニュの「モーション」->「追加して分割」を選択。

分割されたモーションから必要な部分を選んで「追加」すると、下のタイムライン上に表示されます。



ここでは、100~320フレームを切り出すとします。コメントの中の括弧の中の数字がフレーム数です。

最初と最後のフレームを含んだ部分を追加します。IDが0と1のものを追加します。

タイムライン上で100から320までを選択します(ピンクの部分)。



ピンクの部分を右クリックしてメニュを出し、「選択範囲をコピー」します。



リストの最後に、追加されます。



タイムラインを一度削除しておいて、新しく生成されたものを追加します。



これをVMD形式で保存すればOK。


-----------------------------------------


VmdSynthesizer