典型的な使用方法(DirectXゲーム用)

MikuMikuTransborderを使用して、DirectXゲーム中にMMDのオブジェクトを表示する場合の、典型的な流れを説明します。
ただし、必ずしもこの流れでうまくいくとは限りません。細かい部分は色々試してみてください。

※ 先に、取扱説明動画に目を通しておいてください。
※ タスク切り替えをすると描画が止まるゲームも多いので、MMTで操作→ゲーム側にタスクを切り替えて結果確認、を繰り返すことになると思います。

(1)DirectXゲーム起動
「サーバプログラム」の欄にDirectXゲームの実行ファイルパスを指定して、「起動」ボタンを押下します。
ランチャープログラムから起動する必要がある場合は、そのランチャープログラムのパスを指定します。

このとき、ゲームプログラムは自動的にウインドウ化されます。
サーバがうまくウインドウ化されない場合

(2)ゲーム上での準備
ゲームプログラム側でイントロ・メニュー画面・ローディング等を全て終えて、ゲームが開始してから
MMDを起動すると不具合が起きにくいようです。

(3)MikuMikuDance起動
次にMikuMikuDance(クライアント)を起動します。
MikuMikuDanceの起動ボタンが灰色のままの場合

(4)MMD上での準備
後の微調整のため、MMD上で一体モデルを読み込んだ上、座標軸表示をONにしておきます。
また、負荷軽減のため、fpsは30fpsに制限しておきます。

(5)描画ON
後の操作がやりやすくするため、この時点でメインウインドウで「描画」ボタンをONにしておきます。
また、メニューから「View変換行列」のウインドウを表示しておくとよいでしょう。
描画ボタンが灰色のままの場合

(6)描画タイミング設定
「描画タイミング設定」ダイアログを開き、オブジェクトの一覧を取得します。
そして、ゲーム上で、出現位置を連動させたいオブジェクトを適当に見繕い、そのIDを一覧から特定します(最初は地面などの移動しないオブジェクトがよいかと思います)。
※ この辺りの操作は取扱説明(3:26~)を参照
※ 何度一覧を取得しなおしても、明らかに一覧にそのオブジェクトが載っていない場合は、
 「Present()を~」のオプションをONにして「更新」ボタンを押下してからやり直してみてください。

オブジェクトIDを特定したら、「描画タイミング」を「特定Object描画時」に切り替え、そのオブジェクトのIDを登録します。

「WVP変換連動」は「プログラマブルシェーダより取得」を選択し、「自動推定」ボタンを押下します。
「プログラマブルシェーダは使用されていません」と表示された場合は、選択を「連動なし」または「固定シェーダより取得」に切り替えます。
※「推定に失敗しました」と出た場合は、取扱説明(5:46~)を参考に、手動でレジスタ番号を特定してください

「更新」ボタンを押下した上で、ゲーム上で視点を動かし、それに連動して「View変換行列」ウインドウの表示が変化することを確認してください。
連動しない場合は、オブジェクトを選び直してください。

以上の設定が完了したら、OKボタンを押下してダイアログを閉じます。

(7)座標変換設定
「座標変換設定」ダイアログで、座標補正を行います。
この時点でサーバ上にMMDのオブジェクトが表示されていない場合は、
右上の「視点正面に~」の欄から、奥行きに適当な値(10とか100とか)を指定し、「設定」ボタン&「更新」ボタンを押下してください。
※ ダイアログ左側のX,Y,Zの欄は、全て0.0にしておかないと、正しく正面に表示されない恐れがあります。

表示されたら、MMDのアクセサリ操作と同じ要領で、MMDのオブジェクトの位置や角度、大きさなどを調整してください。
MMDのモデルが真っ黒に描画されている場合は、「座標系」から右手系を選択してみてください。

(8)動作確認
手順は以上です。
うまくいかない場合は、別のオブジェクトを選択して、(6)~(7)の操作を繰り返してみてください。
また、オブジェクトIDを座標情報の取得タイミングに設定し、「描画タイミング」には「EndScene実行時」や別のオブジェクトを指定すると、改善するかもしれません。
※ 詳しくはFAQ参照


コメント

名前:
コメント: