らくさん

2008-07-05

アイドルマスター ダンス自動抜きツール「nukIM@S」公開

※使い方を一通り書き終えるまで随時更新


コメントを頂いたループの件、対処しました。バージョン0.1.1です。naocoさんのログ、役に立ちました。ありがとうございます。

ファイルが読めない件もコメント頂いたとおり、ファイル名やパスに日本語を使っているとダメみたいです。


ダウンロード

http://kuramo.ch/nukimas/

Windows版とMacOSX版があります。


必要なもの

  • Java5 以上
  • QuickTime 7.4 以上
  • 高画質キャプチャ環境
  • できるだけ速いPCと大量のHDD

JavaもQuickTimeもこれから入れる場合は、Java -> QuickTime の順にインストールしてください。逆だと後でひと手間増えます。JavaもQuickTimeもすでに入っているけどどっちを先に入れたかなんてわかんねー、と言う場合はとりあえずそのまままでよいです。nukIM@Sを起動した時に次のようなメッセージが表示されたら、指示に従って QTJava.zip をコピーしてください。

QuickTime7.4以上が必要です。

QuickTime7.4以上をインストール済みにも関わらずこのメッセージが表示される場合は、
QuickTimeを再インストールするか以下の操作を行ってみてください。


1. QTJava.zip を探す。通常は次の場所にあります。

   C:\Program Files\QuickTime\QTSystem


2. QTJava.zip を次の場所にコピーする。

   C:\Program Files\Java\jre1.6.0_06\lib\ext

Javaをアップデートすると再びこのメッセージが表示されるようになるので、その時はまたコピーしてください。


キャプチャ環境は、できるだけ高画質で撮れるものを用意してください。複数ステージの動画の共通部分を抽出するため、高画質かつキャプチャ時の設定が揃っている方が綺麗に抜けます。私は Intensity Pro を使ってふぬああ/huffyuvで 1280x720/60p でキャプチャ。キャプチャ後に無圧縮に展開したものを使用しています(無圧縮にしている理由は後述)。


最大で6ステージ分の動画を同時に処理するため大量のディスクアクセスが発生し、また計算量も膨大になります。そのため、できるだけ速いHDDと速いCPUがあったほうが良いです。特にHDDの速さ重要。また、元動画用のHDDと出力用のHDDを分けた方が若干速くなるかもしれません。以下、私の環境です。この環境で1曲全部を、元動画60fps/出力30fpsで処理すると1時間半くらいかかります。

  • 元動画用HDD: HDP725050GLA360x2 (ICH9R RAID0)
  • 出力用HDD: HDP725050GLA360x1
  • CPU: Core 2 Duo E8400

元動画のコーデック

QuickTimeを使用しているので、QuickTimeでも読めるコーデックにしておく必要があります。そうすると実質的には無圧縮くらいしか選択肢が無くなってしまうと思います。Intensity/Intensity Pro に付属のコーデックはQuickTimeでも使えるので、無圧縮よりは若干小さくなります。


元動画の読み込み

「元動画」タブをアクティブにするとウインドウ右下に「ここにファイルをドラッグ&ドロップできます」と書かれているので、その辺りにエクスプローラから元動画のファイルをドロップしてください。無事に読み込めた場合は、元動画タブ内に各元動画のボックスが表示されます。

↓こんなのが読み込んだ元動画の数だけ表示されます。

f:id:butyricacid:20080705234710p:image


「切り抜き元」ドロップダウンメニューから、切り抜き元として使用する動画を選んでください。最終的に出力される画像は、ここで選んだ動画から切り出されます。


「ライブハウスまたは市民ホール」ドロップダウンメニューから、ライブハウスまたは市民ホールの動画を選択してください。これは、切り抜き設定の「漏れ修復」に使用します。必ずしもライブハウスまたは市民ホールを選ばなければならないわけではありませんが、ライブハウスまたは市民ホールを選ぶと漏れ修復の結果が良好な事が多いです。未選択の場合は「切り抜き元」と同じ動画が使用されます。


開始フレーム合わせ

開始フレームをきっちり合わせないと、まともに抜けません。1フレームでもズレてはだめです。開始フレーム合わせを簡単に行う手順は他にもあると思いますが、以下は私が行っている手順です。

仮合わせ

画面中央のスライダーが左端にある状態で(=右端のフィールドの値が1の状態で)、「元動画」タブ内の各ボックスにある「開始」フィールドの値を調節して、「NOW LOADING…」の表示が消えるフレームを探します。

f:id:butyricacid:20080705233648p:image:w150 f:id:butyricacid:20080705233647p:image:w150

左が「NOW LOADING…」の表示があるフレーム、右が消えたフレームです。この付近に全てのステージを仮合わせをしておくと数フレーム以内のズレになるので、本合わせがしやすくなります。

本合わせ

画面中央のスライダーを適当な位置に進めます。曲が始まってダンスの動きがある位置ならどこでも良いです。CTRL+1 〜 CTRL+6(Mac版では Cmd+1 〜 Cmd+6)をタイプすると、元動画1〜6に表示が切り替わるので、この表示を順番に切り替えながら「開始」フィールドの値を調節して、全元動画がぴったり合うようにします。


念のため、中盤や後半でもフレームがズレてないか確認しましょう。もしズレてるステージがあったら、それだけキャプチャしなおしてください。


切り抜き設定

まずは概要ですが

シード → ゲイン1 → 粒子除去 → ゲイン2 → 漏れ修復 → ホール修復 → ホール識別 → エッジ拡張

の順に(=タブでフォーカスが移動する順番に)調節するとだいたいうまく行くように作ったつもりです。なので、よくわからなくなったときはリセットしてシードからやり直した方が早いでしょう。


シード

とりあえず種を蒔きます。あまり大きくしすぎないようにしましょう。細かな調節をしてもほとんど意味がなく、大抵は25くらいでOKです。

ゲイン1

どんな種も蒔けば芽だつんです。シードで蒔いた種を育てます。これも細かな調節はあまり意味がありません。大抵は50〜100くらいでOKです。

粒子除去

どんな芽でも花になるんです…というわけにはいきません。ごめんねやよいっち。余計なところに生えてきた芽を摘みます。まれに、巨大な芽が生えてくる事があるので、その時はうまく調節してください。大きくしすぎなければ大抵は適当でかまいません。

ゲイン2

粒子除去で余計な芽が消えたので、思い切って大きくすることができます。といっても私がテストした範囲では400を超えると、あちこち漏れだしてくることが多かったです。エッジまでうまく広がりきらない箇所がある時は、少し漏れるくらいまで大きくしておいて、次の「漏れ修復」で綺麗にします。

漏れ修復

背景色と同系統の色の領域は「漏れている」と判定して修復します。数値が小さいほど修復する面積が広がります。最適値はケースバイケースで私のテストでは500〜3000くらいまで幅がありました。「感度 強」が役に立つことは滅多にありません。感度 強では、背景色と髪の色が近い場合にすぐに髪が削れてしまいます。

ホール修復

ランダム瞬きや紙吹雪などで出来たキャラ内部の穴を埋めます。数値は、埋める穴の面積の上限です。大きくしすぎると、首や脇の周りにしばしばできる背景から孤立した空間まで埋まってしまいますが、次の「ホール識別」との組み合わせで、そこそこうまい具合にできます。

ホール識別

穴が、埋めるべき穴かそうでない穴かを識別するための閾値です。大きくしすぎるとランダム瞬きなどが埋まらなくなります。小さすぎると、首や脇の周りまで埋まってしまいます。

エッジ拡張

ゲイン2を大きくしても一番外側の輪郭線まではなかなか広がらないようなので、1ピクセルだけ拡張するといい感じ。


仮出力

一通り設定したら、適当にフレームを移動して確認しましょう。でも、フレーム移動が結構重くてストレスフルだと思うので、3fpsか10fpsで仮出力して確認するのが良いです。私の環境では3fpsで10分くらいかかります。10分「も」ですね。。。


本出力

AVI形式で出力ファイルサイズが大きくなる場合、複数のファイルに分割します。これはQuickTimeのAVI出力には大きなファイル(たぶん4GBを超えるファイル)を出力するとファイルが壊れてしまうバグがあるようで、それを回避するために分割しています。また、QuickTime形式で一時ファイルに出力した後にAVIに変換しているので、少し余分に時間がかかります(余分にHDDの空きも必要です)。ですので、QuickTime形式を読める編集ソフトを使用している方は、QuickTime形式で出力する方が良いかもしれません。

というか「マスクのみ出力」にして、編集ソフトの方で合成する方がHDDに優しいし、出力時間も少し短くなるかもですね。


その他

  • 現状では出力ファイルにはサウンドトラックは含まれません。


# とりあえず今日はこんなところで。

Pの一人Pの一人 2008/07/06 05:34 こんばんは。早速使用させていただきましたが、
6個の素材のフレームを揃えて中央のスライダを動かしたところ冒頭から数秒で全素材がループしてしまいます。
HDキャプチャ素材を未圧縮に展開したものを使用しています。
なお、同症状を複数人で確認いたしました(環境はばらばらですが、詳細を記載した方がよいでしょうか。全員HDキャプは共通です)。
また、素材自体はループしていますが、スライダと右端のフィールドの値はループせずに続いていきます。
私の手順になんらか抜けがあるようでしたらご教示いただけると幸いです。

ご同様です。ご同様です。 2008/07/06 06:11 上の方と同様の症状が出ています。
複数といわず、一つだけ素材AVIを読み込ませて、スライダを動かすだけで、
素材AVIの冒頭数秒が繰り返し表示される状態になります(複数読み込ませても、もちろん同様です)
素材はMonsterXでキャプチャしたHD素材で、AVIUtilで無圧縮(RGB)AVIに展開したものです。

ループとさらにループとさらに 2008/07/06 12:31 こちらでもループの現象がでています、さらに何とかフレーム合わせを終えた後
出力を開始すると数秒ほど経過後、nukIM@Sがフリーズしてしまいます。
素材はMXキャプしたHD素材で、AviUtlで無圧縮展開したものです。
XPproSP2、C2DE6750、入力元7200rpm500GB*2(RAID0)、出力先7200rpm320GBですが
常駐ソフトを終了させたり、再起動してみたりと試してみたのですが、どうにも止まってしまいます。
入力元のavi数を減らして負荷減らしてみてもだめでした、私の環境依存の問題でしょうか?

一Pです一Pです 2008/07/06 12:52 すばらしいソフトの開発ありがとうございます。
PV4でキャプチャし、aviutlで未圧縮に展開した動画を、読み込んでくれません。クイックタイムを入れなおしても同様の症状が出るのですが…
他の人の場合、未圧縮でも読めるものと読めないものがあるとのこと。
何か条件があるのでしょうか?

butyricacidbutyricacid 2008/07/06 13:16 コメントありがとうございます。
うー。なんだろう...私の環境/素材では今のところループ症状は発生してないです。
未圧縮で読めない素材というのも無いですね。

まず、環境or素材のどちらの問題なのかを切り分けないといけないと思うのですが、どうしたらいいんだろうなぁ。

とりあえず、詳細なログを出力するように改変したコードを今からちょっと書いてみます。

butyricacidbutyricacid 2008/07/06 13:52 あ、問題の発生する素材をQuickTime Playerで開いてみて、読めなかったりループするようだったらQuickTimeの側の問題っぽいですが、そうでなければ私のコードの問題の可能性が高いです。とりあえずその点を確認して頂けると助かります。

butyricacidbutyricacid 2008/07/06 14:30 http://kuramo.ch/nukimas/download/nukimas-0.1-win-debug.zip に
ループに関係しそうなとろこのログを詳細に出すバージョンを置きました。

ループが発生したあとにLogタブの内容をコピペして貼付けて頂けると助かります。

taitokutaitoku 2008/07/06 14:39 押忍!
当方の症状を報告いたします。
20秒ほどのMP4ファイルを用意し、testと名前をつけてQuicktimePlayerで再生を確認したあと、nukim@sに読み込ませてみたのですが、読み込みに失敗したのであります。
以上です。
そもそも動画ファイルが読み込めない場合も上のバージョンでログを報告させていただいたらよろしいでしょうか?

naoconaoco 2008/07/06 14:55 同様のループ症状が出たので報告します。
デバッグ版のログはこちらです。
http://imas.ath.cx/~imas/cgi-bin/src/imas24327.txt
nukeimas_debugを起動→素材1本をドラッグ&ドロップ→
スライダを動かしてループ確認 ここまでの動作です。

キャプチャソフト:くすのきTVHD
コーデック:huffyuv2.1.1→aviutlで59.94fpsの無圧縮にしました。

今回の素材は2000フレームで約5GBですが、
500フレーム程度まで分割するとループせずプレビューできました。
QTプレイヤーでは異常なく再生できます。

気づいたこと:素材ファイル名が日本語だと読み込まない
他に必要な情報があれば教えてください。

症状と要望症状と要望 2008/07/06 15:24 ツール公開ありがとうございます。

ループ症状ですが、私の手元では、素材元動画を59.94fpsから、29.97fpsに予め変換しておくとループしないようになりました。

また、59.94fpsでなく、60fpsの動画を素材にしてもループしないという報告も伝聞しています。


それから、要望なのですが、各種パラメータ、および、セットした素材ファイルリストなどの組み合わせを、セーブ・ロードできるようにしていただけたら
いろいろ試行させていただくいのに、利便性がかなと思います。
ご検討おねがいします。

taitokutaitoku 2008/07/06 17:11 なるほど!
パスの日本語名を除いたら読み込めました!!
ありがとうございます!

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証