SSブログ

雑記:OMF4向け全モデル紹介動画のプロセス見直し その1 [エンターテインメント(MMD,ゲームなど)]

OMF4全モデル紹介動画 準備状況
進捗状況:
・ベースpmmから個別モデル向けpmm作成プロセス見直し(自動化含む)
・AviUtlテンプレート作成プロセス見直し(自動化含む)
・全体プロセス見直し・再設計
一旦直接の準備をここで一区切りにして、プロセス周りを整備。


どう進めたものかわからなくているので、一旦考えをまとめるために、要件や条件を書きだしてみる。


・ベースpmmから個別モデル向けpmm作成プロセス見直し(自動化含む)
やりたいことは、ベースpmmと呼んでいる、使用モーションを適用したモデルとモデル紹介動画用にカメラモーションを割り当てたpmmから、個別モデル向けpmmを作りたい。自動で。(ここ重要)
何故自動かと言うと、個別pmm1つから必ず複数の個別モデル向けpmmを作成し、最終的に数十件のベースpmmから数百件の個別モデル向けpmmを作成するから。
昨年のOMF3では手作業でバイナリエディタで書き変えた。諸々の要因により、OMF3開催前までに作業が完了せず、紹介動画作成期間を圧迫した。
機械的な作業なので、間違いなく自動化できる。人間がやるには時間以上に気力を削る。ここを無視できるレベルに持っていきたい。
とりあえず、今回はベースpmmに対する数十件の作業は妥協範囲とする。余力あれば、1度にまとめてやれるようにする。数百件の個別モデル向けpmm作成は自動化する。

ベースpmmと個別モデル向けの差分は、再生の開始位置と終了位置がベースpmmでは任意だが、個別モデル向けpmmは個別モデルが割り当たる予定の再生開始位置と再生終了位置に設定されていること。
できれば、Ver.9.00から対応した、[Go]ボタンの移動位置にも再生開始位置を設定したい。

再生開始位置・再生終了位置、および[Go]ボタンの移動位置の設定方法は、バイナリで読み込んで、指定したアドレスを書きかえる。
バイナリアドレスはベースpmmごとに異なるので、個別のベースpmmごとに調べて、別途指定しなければならない。

個別モデルごとに異なる再生開始位置・再生終了位置の値だが、カメラモーションのキーフレーム位置で決まる。
キーフレームの間隔はベースpmmおよびキーフレーム間隔ごとに違う。BPMが曲により異なり、また、BPMも奇麗にMMDのフレーム間隔である30fpsで割り切れないから。
再生開始位置から4キーフレーム後が再生終了位置になる。その再生終了位置の次のカメラキーフレームが次の個別モデル向けpmmの再生開始位置になる。
ベースpmmでの最初の再生開始位置、つまりベースpmmから最初に生成される個別モデル向けpmmの再生開始位置はベースpmmごとに違う。なので、これも個別のベースpmmごとに調べて、別途指定しなければならない。

ベースpmmから個別モデル向けpmmをいくつ作るかは、ベースpmm内のカメラキーフレームが個別モデル向けpmmを作れる数だけ設定してあるとすれば、そのキーフレームから導き出すことができる。
問題は、そのカメラキーフレームをどうやって取得するか。
pmmからカメラキーフレームを取得するとした場合、確実にバイナリファイルの解析が必要になる。pmmの解析自体をすることはMikuMikuDanceの規約上問題はないが、特定方法・抜き出し方に時間がかかることが予想される。pmmの、今回必要なカメラモーション部分を解析した人はネットで検索する限りいないから。
カメラモーションのキーフレームの位置だけ変えたpmmを比較することでの解析は不可能ではない。多分。
pmm以外の方法で考えられるのは、カメラモーションを出力したvmdから取得。もしくはvmdを変換したcsvから取得。csvはテキストやExcelとして扱えるので解析可能性は高い。ただ、変換出力がpmm → vmd → csv二手間必要になる。vmdの場合は一手間。
vmdの場合はバイナリファイルを解析して取得する手順は必要だが、pmmと違い、こちらは解析した先人がいる。元がテキストかバイナリかなだけで、csvでもvmdでもやることは変わらない。ならバイナリを目指した方がいい。
ついでに、vmdの構造からpmm内のカメラモーションを推定することも多分不可能じゃないだろう。pmm解析が現実的か。

これまでを踏まえて。まとめ。
ベースpmmから個別モデル向けpmmで人間が指定しなければいけないものは、以下。
・生成元ベースpmm
・ベースpmmの最初の再生開始位置カメラキーフレーム番号
・(場合によっては)ベースpmmの最後の再生終了位置カメラキーフレームアドレス
・再生開始位置の値が格納されるアドレス
・再生終了位置の値が格納されるアドレス
・[Go]ボタンの値が格納されるアドレス

ベースpmmから個別モデル向けpmmで、変換ツールがpmmから導出するものは以下。
・個別モデル向けpmmが設定する再生開始位置・[Go]ボタンの値となるカメラキーフレーム
・個別モデル向けpmmが設定する再生終了位置となるカメラキーフレーム
・個別モデル向けpmmの作成数
これらの導出情報は個別モデル向けpmmのファイル名として使用する。が。これモデル名まで入れると、相当ファイル名長くなるのでもうちょっと検討必要か。
(作成数連番)_(再生開始位置)_(再生終了位置)_(ベースpmm名)

変換ツールに必要な機能は以下。とりあえず、専用デスクトップアプリケーション作成が現実的か。
・人間が各種設定値を指定するためのインタフェース
・pmm解析により、カメラキーフレームを導出する機能
・pmm解析により指定位置のアドレスを指定の値で書きかえる機能
・複数回アドレス書き変えを行い、特定の名称で保存する機能

上記実現のために調査する必要があるものは以下。再生開始位置と再生終了位置はOMF3の経験から抜き出せるのはわかっている。
・pmmからカメラキーフレームを抽出する方法
・バイナリ編集方法
・[Go]ボタンの値のアドレス位置

もうちょっと踏み込んだ方がよさそうだが、まずは一旦ここまで。
nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:blog

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 1