典型的な使用方法(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参照