MMDのアクセサリ設定ツールβ
MMDのアクセサリ設定横着ツール AdvancedVAC β版
余り話題に上らない所をみると知らない人も多いのかもしれませんが、MMDにはVAC形式というファイルがあります。
どういうものかというと、アクセサリのファイル名と一緒に幾つかのパラメータを書いたテキストファイルで、これをMMDに読み込むとアクセサリの読み込みと同時に座標設定やらをしてくれるというものです。
便利ですよねぇ~……使えればですが。
と、言うのもコレ、現在のMMDのバージョンではサポートが忘れられているのか、中途半端な動作となっています。
で、多少回りくどいながらも、これと似たような事をしようというのがこのツールの主旨です。
1.使うための準備
MMDが起動している状態でこのツールを実行すると、次のような画面が現れます。
TARGETのリストには起動中のMMDプロジェクトが一覧されていますので、その中から目的のプロジェクトを選択します。
「受信」ボタンを押すと、TARGETに指定したMMDプロジェクトのアクセサリ情報を調査し、次のイメージのように結果をリストにセットします。
アクセサリの調査はMMDを直接操作して、アクセサリを一つ一つ見て回りますのでちょっと時間がかかります。
例では20個ほどのアクセサリが登録されていますが、10秒ぐらいかかっています。
技術的には幾つかの情報の取得を諦めれば一瞬で終わる調査なんですが、そんなに頻繁に使うツールでもないのでそこは妥協です。
あとは欲しい情報。ここでは例として WorkingFloorAL.x と o_SSAO.x の情報を得ることにし、この2つをリストで選択した状態で右クリックメニューから「クリップボードへ複製」を選択します。
すると、アクセサリの情報がクリップボードにコピーされますので、メモ帳に貼り付けるナリして保存します。
もちろん「ファイルへ保存」を選択して、直接ファイルに保存しても良いです。
貼り付けてみると、下記イメージのようになんかそれっぽい定義文になっています。それぞれの意味は、なんとなくわかりますでしょうか?
目的としては、こうやって保存したアクセサリ情報を他の既にあるMMDプロジェクトに反映させたり、新規でプロジェクトを作成する際にアクセサリをロードして値を設定して…ってするのに使います。
2.使い方その1 ~ 設定を更新する
では、o_SSAO.x の設定値を更新することにしましょう。
先ほどメモ帳に貼り付けた定義文のうち、o_SSAO.x の Location と Si, Tr の値をメモ帳上で書き換えて、o_SSAO.x の定義部分だけ選択してコピーします。
そうしてアクセサリ設定ツールのリストの右クリックメニューから「クリップボードから追加/更新」を選択します。
すると、リスト内の o_SSAO.x の値が定義文の内容で更新されます。
次に、リストから o_SSAO.x を選択して「送信」ボタンを押します。
すると、TARGETで指定したMMDプロジェクト上の o_SSAO.x のパラメータへ反映され……ると、思います。
たぶん、反映されていると思いますよ。
3.使い方その2 ~ アクセサリを追加する
これが本来の VACファイルに近い使い方ですね。
新規のMMDを開きます。
「リロード」ボタンを押すと、改めて起動中のMMDを検索しますので、新規のMMDであれば (Untitled)として選択可能になっていると思いますので、これを選択します。
リスト部分の右クリックメニューで「クリックボードから追加/更新」または「ファイルから追加/更新」を選択して、これまでに保存しておいたアクセサリ定義文からアクセサリ情報をセットします。
例では先ほどの WorkingFloorAL.x と o_SSAO.x をコピペしています。
次に、新規MMDプロジェクトへ追加したいアクセサリをリストから選択し、「追加」チェックボックスにチェックを入れて「送信」ボタンを押します。
すると、新規MMDプロジェクトにアクセサリがロードされると同時に、定義文に沿った設定がされる…ハズです。
「追加」チェックボックスにチェックが入れたのは、TARGETのMMDプロジェクトに設定するアクセサリが無ければロードするというフラグです。これがオフだと、TARGETのMMDプロジェクトに同名のアクセサリが無ければ何もしません。
で、アクセサリをロードする際はアクセサリ定義文の file= に書かれたアクセサリファイルをMMDに読み込ませるのですが、同期をちゃんと取っていないのでアクセサリロード後のパラメータ設定に失敗する場合があると思います。
その時はもう一回「送信」ボタンを押してあげてください。
Download ->https://bowlroll.net/file/85498
pass:tracebox1108
作成にあたり一部、ミーフォ茜様のMMM用プラグインのコードを拝借しています。
まだあんまり使い込んでないので、バグはあるかと思います。
自分用ツールなのでエラー処理はほとんどしていません。
幾つかのdllを使用するので、OSの設定や.NETのバージョンなどで動かない事もあるかと思いますが、それについては追々ちゃんとしていきます。
タブン
余り話題に上らない所をみると知らない人も多いのかもしれませんが、MMDにはVAC形式というファイルがあります。
どういうものかというと、アクセサリのファイル名と一緒に幾つかのパラメータを書いたテキストファイルで、これをMMDに読み込むとアクセサリの読み込みと同時に座標設定やらをしてくれるというものです。
便利ですよねぇ~……使えればですが。
と、言うのもコレ、現在のMMDのバージョンではサポートが忘れられているのか、中途半端な動作となっています。
で、多少回りくどいながらも、これと似たような事をしようというのがこのツールの主旨です。
1.使うための準備
MMDが起動している状態でこのツールを実行すると、次のような画面が現れます。
TARGETのリストには起動中のMMDプロジェクトが一覧されていますので、その中から目的のプロジェクトを選択します。
「受信」ボタンを押すと、TARGETに指定したMMDプロジェクトのアクセサリ情報を調査し、次のイメージのように結果をリストにセットします。
アクセサリの調査はMMDを直接操作して、アクセサリを一つ一つ見て回りますのでちょっと時間がかかります。
例では20個ほどのアクセサリが登録されていますが、10秒ぐらいかかっています。
技術的には幾つかの情報の取得を諦めれば一瞬で終わる調査なんですが、そんなに頻繁に使うツールでもないのでそこは妥協です。
あとは欲しい情報。ここでは例として WorkingFloorAL.x と o_SSAO.x の情報を得ることにし、この2つをリストで選択した状態で右クリックメニューから「クリップボードへ複製」を選択します。
すると、アクセサリの情報がクリップボードにコピーされますので、メモ帳に貼り付けるナリして保存します。
もちろん「ファイルへ保存」を選択して、直接ファイルに保存しても良いです。
貼り付けてみると、下記イメージのようになんかそれっぽい定義文になっています。それぞれの意味は、なんとなくわかりますでしょうか?
目的としては、こうやって保存したアクセサリ情報を他の既にあるMMDプロジェクトに反映させたり、新規でプロジェクトを作成する際にアクセサリをロードして値を設定して…ってするのに使います。
2.使い方その1 ~ 設定を更新する
では、o_SSAO.x の設定値を更新することにしましょう。
先ほどメモ帳に貼り付けた定義文のうち、o_SSAO.x の Location と Si, Tr の値をメモ帳上で書き換えて、o_SSAO.x の定義部分だけ選択してコピーします。
そうしてアクセサリ設定ツールのリストの右クリックメニューから「クリップボードから追加/更新」を選択します。
すると、リスト内の o_SSAO.x の値が定義文の内容で更新されます。
次に、リストから o_SSAO.x を選択して「送信」ボタンを押します。
すると、TARGETで指定したMMDプロジェクト上の o_SSAO.x のパラメータへ反映され……ると、思います。
たぶん、反映されていると思いますよ。
3.使い方その2 ~ アクセサリを追加する
これが本来の VACファイルに近い使い方ですね。
新規のMMDを開きます。
「リロード」ボタンを押すと、改めて起動中のMMDを検索しますので、新規のMMDであれば (Untitled)として選択可能になっていると思いますので、これを選択します。
リスト部分の右クリックメニューで「クリックボードから追加/更新」または「ファイルから追加/更新」を選択して、これまでに保存しておいたアクセサリ定義文からアクセサリ情報をセットします。
例では先ほどの WorkingFloorAL.x と o_SSAO.x をコピペしています。
次に、新規MMDプロジェクトへ追加したいアクセサリをリストから選択し、「追加」チェックボックスにチェックを入れて「送信」ボタンを押します。
すると、新規MMDプロジェクトにアクセサリがロードされると同時に、定義文に沿った設定がされる…ハズです。
「追加」チェックボックスにチェックが入れたのは、TARGETのMMDプロジェクトに設定するアクセサリが無ければロードするというフラグです。これがオフだと、TARGETのMMDプロジェクトに同名のアクセサリが無ければ何もしません。
で、アクセサリをロードする際はアクセサリ定義文の file= に書かれたアクセサリファイルをMMDに読み込ませるのですが、同期をちゃんと取っていないのでアクセサリロード後のパラメータ設定に失敗する場合があると思います。
その時はもう一回「送信」ボタンを押してあげてください。
Download ->https://bowlroll.net/file/85498
pass:tracebox1108
作成にあたり一部、ミーフォ茜様のMMM用プラグインのコードを拝借しています。
まだあんまり使い込んでないので、バグはあるかと思います。
自分用ツールなのでエラー処理はほとんどしていません。
幾つかのdllを使用するので、OSの設定や.NETのバージョンなどで動かない事もあるかと思いますが、それについては追々ちゃんとしていきます。
タブン