2021/09/03

ニコニコ動画の投稿数制限解除

 2021/08/13ぐらいから、ニコニコ動画で長らく続いていた一般アカウントに対する投稿数制限ルールが変更されました。

  • Level 7までは動画50本まで。
  • Level 8-12は動画70本まで。
  • Level13-17は動画90本まで。
  • Level18以上なら本数無制限。

2021/09/03時点でのうp主のアカウント状況。

  • tubep / 33 (795/4600) ... 142本
  • tubep101 / 26 (2200/3000) ... 174本
  • tubep102 / 15 (500/900) ... 50本
  • tubep103 / 13 (650/700) ... 50本
  • tubep104 / 16 (545/1000) ... 50本
  • tubep105 / 15 (95/900) ... 50本
  • tubep106 / 8 (15/300) ... 11本
ということで、初代tubepと二代目tubep101は無制限です。
1つにまとまってるほうが管理は簡単なので、どうしようかなぁと。
tubepに戻るかなぁ。でもこのルールもまた将来変更になるかもしれないしなぁ。
特に初期の投稿はFullHDとかになってないので、本当なら投稿無制限になったことだし、投稿し直したいところですがさすがにそれをするだけの元気はない。

気にしたこと全然なかったのですが、TubeP103時代の動画はプレ垢ユーザに人気ないのでしょうかw謎です。
それにしても、ニコニコ動画だけで500本以上投稿していたんですね。
YouTubeにもiwara.tvにもあるので(もちろん重複はありますが)、我ながらクラクラっと眩暈がします。見るだけで丸々2~3日かかるぐらい。



2021/03/21

Windows batchで一部分的だけ一時的にコメントアウトする方法

 Windows batchで一部分的だけ一時的に
コメントアウトする方法

2021/03/21 TubeP

あ…ありのまま、今、起こった事を話すぜ!ほんとどなたかすっきりした解説をしてください。

Windows batchファイルはうp主的に難易度高いので、試行錯誤を繰り返してます。その時にお世話になったのが、一部分だけ一時的にコメントアウトする方法です。


方法


BATCHファイルの一時的にコメントアウトしたい部分(実行させたくない部分)の前の行として、

(

というカッコ一文字だけの行を追記します。同じくコメントアウトしたい部分の次の行に

)|echo "スクリプト中の ( から ) までを跳ばしました." 

を挿入します。echoの後ろの文字列はなんでも構いません。
あと、挟まれた部分にどこでもいいから1回でも rem 文を入れておきます。

この技法(トリック?)を使うとコメントアウト部分を削除しなくて済むので、特にデバッグ時には便利(某言語でのifdef文の感覚ですね)。
ただし可読性は猛烈に悪いので、デバッグ中など本当に一時的な作業にしかお勧めできませんねぇ。

これについてはにわかには信じがたいと思うので、以下に動作確認用のコードをつけておきます。windows10 Version 1909で検証してます。


【00: 通常のコードブロック利用】

丸カッコで括った範囲はコードブロックと呼ばれるようです。括っただけですから、実行されるのは当然です。

@echo off

echo Commands will be executed.
echo %DATE%
echo %TIME%

rem 
(
  echo Executing the line. >  result-00executed.txt
  echo %TIME%              >> result-00executed.txt
  echo OK, it is good.     >> result-00executed.txt
)
echo End of the %0 .
cmd /k

実行すると、同じフォルダ内にresult-00executed.txtが生成され、echo3行分の出力がされているはずです。

Executing the line. 
14:01:04.37              
OK, it is good. 
 
 


【01: rem文の追加】

対象のコードブロックにrem文を追加します。rem文は単なるメモですから、さきほどと同様、rem文に続くechoは 3行とも実行されるのが当然です。

@echo off

echo Commands will be executed.
echo %DATE%
echo %TIME%

rem 
(
  rem These are the target lines.
  echo Executing the line. >  result-01justrem.txt
  echo %TIME%              >> result-01justrem.txt
  echo It is still good.   >> result-01justrem.txt
)
echo End of the %0 .

cmd /k

実行すると、同じフォルダ内にresult-01justrem.txtが生成され、echo3行分の出力がされているはずです。

Executing the line. 
14:10:14.09              
It is still good.   
 

【02: echo へのパイプ】

対象のコードブロックの後ろにechoを接続します。見かけ上、コードブロックの標準出力をechoに送ることになります。後ろにつないだだけなので、それより前の挙動が変わることはないような気がします。それでも、なぜかコードブロック全体の実行がキャンセルされます。この例では、result-02pipeecho.txtは生成されずに終わります。

@echo off

echo Commands will be CANCELLED.
echo %DATE%
echo %TIME%

rem 
(
  rem These are the target lines.
  echo Executing the line. >  result-02pipeecho.txt
  echo %TIME%              >> result-02pipeecho.txt
  echo This is weird.      >> result-02pipeecho.txt
)|echo This is the trick.

echo End of the %0 .

cmd /k

挿入するrem文はコードブロックの先頭である必要はなく、最後でも途中でも有効です。rem文がなくなると、(当たり前ですが)01と同じ動作に戻って、result-02pipeecho.txtが生成されるようになります。



便利だけどこの謎技法、誰かのお役に立ちますかねぇ。
むしろ大勢の人の混乱を招くかもしれませんねぇ(笑い)。
こんなWindows環境で仕事されてる方が大勢おられるかと思うと、頭下がります。
今回はうp主は趣味の一環でbatch環境を触りましたが、いろいろおなかいっぱいでした。

windows バッチファイルあるある

 windows バッチファイルあるある 

2021/03/21 TubeP

MMD-VR180 HOWTO用にBowlRollで配っているファイルの1つ 325-305-VR180-bat.bat を書くときに学んだwindows batファイルあるあるネタです。うp主はWindowsの人ではないので、結構難儀しました。誰の役に立つのやら。


Tips 誤作動除け


作業時に間違えてbatchファイルをダブルクリックしたり、他のファイルをドロップしたりすると実行が始まって慌てることがあります。うp主は不注意なのでよくやっちゃいます。そういう方は、最初(とか面倒くさい処理が始まる前のところ)に、

echo Starting encoding, wait for 10 sec to start.
timeout /T 10

というのを挿入しておくと10秒待ってくれるので、その間に停止処理できるようになります。


Tips ウィンドウ表示の維持


batファイルを実行すると、通常は全て終わったら実行ウィンドウは片づけられちゃいます。そういうのが寂しい人向け。

cmd /k

を最後に入れておけば、表示が残ります。
上の10秒待ちと組み合わせるとこんな感じ。



Tips 行の接続


1行が長くなると読みくくなるので、折り返したくなりますよね?
そういうときは折り返す行の最後に"^"を置くそうです。
特にffmpegの引数は延々と書くことになるので、これ大事。


Tips 一部区間をまるまる飛ばす


今回の一番の魔法です。

(

というカッコ一文字だけの行と

)|echo "スクリプト中の ( から ) までを跳ばしました." 

という行でバッチファイルの一部を挟むと、その部分の実行をしなくなります。そんな馬鹿な、と思うかもしれません。私もそう思います。
でもね、挟まれた部分にどこでもいいから1回でも rem 文があると本当にスキップするのです。誰かすっきりした解説してください‥

この技法(トリック?)を使うと削除しなくて済むので、特にデバッグ時には便利。

echo文の後ろは自分で適宜書き換えましょう。
例えば、これを使って、VR135生成部分をコメントアウトしたりできます。
ただし可読性が猛烈に悪いので、一時的な作業にしかお勧めできませんねぇ。
これについてはにわかには信じがたいと思うので、別途実例をまとめてみました


Tips 変数


変数のセットにはSET命令、というところは容易に想像つきましたが、変数の参照時には変数名の前「後」に%を付けるというのがなかなか。特に後ろにつけるというのはうp主には新鮮過ぎました。じゃあ%0%じゃないのか、とか突っ込みたくなる。


Tips 変数操作


他のスクリプト言語でもそうですけど、変数に対する条件付代入って気合入りすぎてて謎です。解説する気ありませんが、下記の2行で、「バッチファイル自身のファイル名の先頭7文字」をMOVIENAME変数に代入しています。

set FNAME=%~n0
set MOVIENAME=%FNAME:~0,7%

% (パーセント) - DOS コマンド一覧


Tips 遅延環境変数


今回はカッコ "(" の中で変数代入をしない(ように実は書き直した)ので出てきませんが、遅延環境変数にもヤラレました。わかってしまえばどうということないんだけど、ほかのスクリプト言語からするとあり得ない仕様なのでびっくり。それぐらい古くからあるということなのでしょうかね。

【BAT】IF文やFOR文の括弧内で変更した変数の値を取得する方法
Use parentheses/brackets to group expressions in a Windows batch file.


記述例


以下が実際に MMD-VR180 HOWTO用に書いた 325-305-VR180-bat.bat です。MMD-VR180 HOWTOとして使う際には、実際には更新されている可能性があるので、利用時はこれをコピペするのではなく、BowlRollから最新版をDLしてください。

https://bowlroll.net/file/249559

2021/03/19

大腿ボーンの物理焼き込み対策

 大腿ボーンの物理焼き込み方法

2021/03/19 TubeP

MMD人体モデルの中には、足が独自のボーン構造しているのがあります。滑らかな足の形状を表現するために、物理が仕込まれている模様です。(例えば、かわいいおにぎり道場式モデルの脚などがこれに該当します)

このことが、VR180化のときの物理焼き込みに障害となります。物理を停止(メニューから物理演算演算しない)してしまうと、この独自構造で形を保っていた脚が破綻してしまうのです(泣)。


それで、MMD-VR180 HOWTOを書いたついでにいろいろ試してみると、これまでの対処策(恥ずかしいので秘密にしておきます)は基本間違っていたことに気づきました。

相変わらず正しい方法が見つけられない(そもそも原理的に存在するのかも不明?)のですが、映像化してバレない程度の対処策を今回見つけたのでメモしておきます。

1. 左足ボーンのキーフレームを0フレームから9999フレームまで範囲選択してコピー
2. 左大腿ボーンを選択
3. メニューから別フレームへペーストを実行


左足は骨折解消しているのがわかりますね。このままでは右足が折れたままなので、右足と右大腿についても同じことをします。これで骨折してない感じになるようです。いつもこうなるのかわからないのですが、おおむねいい感じです。

ちなみに、MMDで動画作るようになってそろそろ10年ですが、10年目にして初めて、「別フレームへペースト」コマンドを知りました。こんな便利なのもっと早く誰か教えてよ。今までは外部に持ち出して編集してたです。


参考


・さぼてんP様の第6期MMD初心者講座 勝手に出席ノート
・今回の対処で作れるようになったVR180動画(近日登場予定)
・MMD-VR180 HOWTO (bit.ly作りました) http://bit.ly/MMD-VR180-HOWTO


後記


これまでこういうブログとか書いてこなかったのですが、先人の知恵に感謝すべく、自分でも多少書いていくことにしました。でもなんかすぐ飽きそうな気もします。


場合によっては、単純に大腿ボーン(物理)の焼き込みを全部削除するだけでも解決できる場合もあるようです。再生するときは物理をさせないこと。こちらのほうが対処方法としては簡単ですね。 2022/03/21追記

2021/03/15

Windows10のDLNAサーバのフォルダ情報強制更新


DLNAサーバのフォルダ情報を強制更新する方法

2021/03/15 TubeP

うp主は Oculus Quest2(OQ2) でダウンロードしたVR180動画を見るときにDeoVR Video Player (DeoVR)を使っています。


DeoVRはDLNAサーバ接続機能を有していて、無線LAN越しにWindows10のPC(PC)内にあるVR180動画を視聴することができて大変便利です。

でも、DLNAサーバ接続をしている状態で、PCのほうのWindows Media Player(WMP)の監視下にあるフォルダに新しくファイルを置いても、OQ2のDeoVRのほうで表示がでてきません。放っておくと、もちろんいつかはなんかの拍子に出てくるのですが、こちとら今置いたのを今見たいのです。

それで、強制更新する方法を求めて、DLNAサーバ再起動したり、OQ2再起動したり、WMPの監視フォルダの設定を一旦外して付け直したりとか、WMPの設定ファイル(Usersの下)を消すとか、それはもう様々なことを挑戦してみたのですが、なかなか確実にこうすれば更新してもらえる、という方法(でかつ手軽なの)がつい最近までわかりませんでした。ネットでも探したんですけど、全然出てこない。探し方が悪いのか、DLNAが見捨てられた日陰技術なのか‥

でも、ふふふ、うp主は結局独力で見つけましたよ。100%確実に更新してくれる方法。前提として、Windows10で普通にDLNAサーバが使えてる状況だとします。(DLNAのセットアップの仕方はネットにたくさん情報あるのでそちらをどうぞ。例えばこんな感じ?

【対策】
あるフォルダに新しくファイルを置いたあと、そのフォルダ名を変更する。
(フォルダ名を戻したければ、2秒後ぐらいに元のフォルダ名に戻す)

これだけです。別にフォルダ名を戻す必要はありません。
察するところ、WMPは管理下のコンテンツについて、更新の自動検知をフォルダ名でしか行っていないみたいです。(だからWMPにライブラリの再構築を命令しても新しいファイルの存在を無視したりしてくれる‥)

同じお悩みを抱えてる方の助けになれば幸いですー。


ここからは閑話。

YouTubeVRというアプリがOQ2にあって、たいていのVR180動画はつべ経由で見られる中、なんでわざわざDeoVRでファイル視聴したいかって?紳士同胞諸君ならわかりますよね。

うp主から提供しているおまけ系VR180とかもこれでゆっくり見れるかと思います。
(ちなみに Mirage SoloとかはmicroSDが挿せるのでDNLA使わなくても見れたり)

DLNAはその趣旨からいって、まわりに(同じ無線LANに参加してる人たちには)ダダ洩れするので、紳士系を見るときはくれぐれもご注意ください。周りにばれたらトラウマになるでしょうからね!

2021/03/10

MMD-VR180 HOWTO Chap.5 レンダリング

 MMD-VR180 HOWTO 【目次】


5. レンダリングとエンコーディング


レンダリングではWindows自動化ツール UWSC を用います。
10回MikuMikuDanceを起動することで10本のaviファイルを作成します。
エンコーディングは、レンダリングの最後に、UWSCからwindowsバッチファイルを実行することで実現します。この中で、ffmpegを複数回呼び出し、aviファイルをmp4に統合します。
最後に統合されたmp4にメタタグを書き込んで、VR180用のmp4を完成させます。

5.1. ターゲットpmmファイルの確定


前節で作成した325-304final.pmmをMikuMikuDanceで読み込みます。
カメラ編集モードにします。
・メニューから、物理演算⇒演算しない、になっていることを確認します。
・メニューから、MMEffect⇒エフェクト使用、になっていることを確認します。
・カメラ操作の登録が第0フレームにしかないことを再度確認します。
フレーム操作を第0フレームに合わせます。
・カメラ操作で、「パース」、視野角135°、ボーン追従「VR180視点f16」の「作業用視点」
となっていることを確認します。
・視点で、「追従」、「ボーン」になっていることを確認します。
・アクセサリ操作で、「EquirectangularX」でRzが90°になっていることを確認します。
上図の状態でpmmを保存します。これがターゲットpmmになります。
ここではこれを 325-305-VR180.pmm とします。
最後に、MikuMikuDanceをウィンドウ状態にして閉じてください。(フルスクリーン状態で閉じると、レンダリング開始後もMikuMikuDanceがフルスクリーンで起動して、デスクトップ全体の様子を見るのが難しくなります)
これ以降、ユーザが手動でMikuMikuDanceを起動することはありません。

以降の説明のため、ターゲットpmmファイルは下記のディレクトリに保存されているものとします。(場所さえわかるのならどこでも構いません)
X:\mmd\tubep\325-VR180\325-305-VR180.pmm
X:\mmd\tubep\325-VR180\325-305-VR180.emm

5.2. ワーキングディレクトリの準備


5.2.1. ワーキングディレクトリの作成


空き容量が1TBあるドライブで、ワーキングディレクトリを用意してください。
うp主の例では、CドライブがWindows関係、XドライブがHDDでMikuMikuDance関係、Yドライブが1TBのSSDでワーキングディレクトリ専用にしています。
ここでは、 Y:\tmp-work をワーキングディレクトリとします。
Y:\tmp-work

[memo1] レンダリングとエンコーディングにおいて、325-305の30秒動画の例でおおよそ80GBを使用していました。作業が終われば、必要なmp4だけ残せばよく、他は消して構いません。325-305の例では325-305_LRM-5760-injected.mp4 (100MB)が最終的な生成物になります。必要なディスクサイズは作成する動画の長さと画の細かさに依存しますが、500GBでは足りなくなることが経験上何度かありました。SSDである必要はありませんが、エンコーディングでは大サイズのファイルの読み込みと書き出しを大量に行うため、SSDのほうが処理時間が多少短くなるようです。

[memo2]  解像度を5Kにして5分を超えるような動画だと、1TBでも足りなくなるかもしれませんorz。作業を見守っていてディスクが溢れそうになったら、中間ファイル(特にzzで始まるaviファイル)でもう処理済みのものは途中でも消していって大丈夫です。 


5.2.2. 音楽ファイルの準備


ワーキングディレクトリに、ターゲットpmmで使っている音源wavファイルをコピーし、music.wavという名前にしておきます。これがエンコーディングの最後に音声トラックとして使用されます。
Y:\tmp-work\music.wav

5.2.3. マスクファイルの準備


ワーキングディレクトリに、うp主が配布しているエンコーディング時のブレンディング用マスクファイル一式(pngファイル8個)をコピーして置きます。必要なのはターゲットpmmで設定した表示解像度に対応する2個だけなのですが、この際、全部置いておきましょう。ファイル名は変えないでください。

5.4. UWSCのインストール


Windows操作自動化ツールUWSCをインストールして使えるようにしておきます。
http://www.uwsc.info/ (2021/3/9現在ダウン中)

起動して、以下のようなウィンドウが出せるようになればOKです。


5.5. ffmpegのインストール


ffmpegをインストールして使えるようにしておきます。
https://www.gyan.dev/ffmpeg/builds/ (公式から辿れるWindows版DLリンク)
とっつきにくいサイトですが、DLは2つ目のURLの中に置いてあります。
そのページの FFmpeg Windows Builds の Release というセクションで ffmpeg-release-essentials.zip を選んでDLしてください。

インストーラはなく、単に展開すればすぐ使えます。windowsのコマンドプロンプトで実行できることを確認しておいてください。以下のように実行できるならOKです。


展開先を覚えておく必要があります。ここでは、以下の場所に展開したとします。
X:\ffmpeg\bin\ffmpeg.exe
X:\ffmpeg\bin\ffprobe.exe

5.6. UWSCスクリプトの準備


うp主から提供する Tark-tbp12-bones.uws を用います。
中身はテキストなので、メモ帳等で内容確認することができます。
変更する必要はありません。

5.7. UWSC設定ファイルの準備


うp主から提供する 325-305-VR180-uws.ini をコピーしファイル名を書き換えて準備します。コピー先はどこでもいいのですが、ターゲットの325-305-VR180.pmmと同じところに、先頭の7文字を揃えて置いておくとわかりやすいと思います。例ではターゲットが"325-305"で始まっているので、次のようになるでしょう。
X:\mmd\tubep\325-VR180\325-305-VR180-uws.ini

325-305-VR180-uws.iniはTark様のsample\sample180.iniからの改変です。
中身はテキストなので、メモ帳にドロップすれば編集できます。
以下の部分はターゲットpmmが変わるたびに中身を書き換える必要があります。
POST_PROCESSのファイル名の先頭7文字とAVI_PREFIXの末尾7文字は一致している必要があります。
---------
PMM_FILE    ="X:\mmd\tubep\325-VR180\325-305-VR180.pmm"
POST_PROCESS="X:\mmd\tubep\325-VR180\325-305-VR180-bat.bat"
AVI_PREFIX  ="Y:\tmp-work\325-305"
---------
以下の部分は各自の環境に合わせて書き換える必要があります。 
ここではCODECとして UT codec を利用しています。
MikuMikuDanceを直接操作してaviを書き出すときに指定できるものの中(かつffmpegが出コードできるもの)から選んでください。UT codec導入済みなら変更する必要はないでしょう。
FRAME_RATEは、MikuMikuDanceを直接操作してaviを書き出すときに指定するfpsと同じものです。  通常は60のままでいいでしょう。
---------
MMD="X:\mmd\x64\MikuMikuDance_v932x64\MikuMikuDance.exe"
CODEC="UtVideo YUV420 BT.709 DMO"
FRAME_RATE=60
---------

[memo] エクスプローラの「パスのコピー」ボタンを使うと選択したファイルの絶対パスがコピーバッファに入るので作業が楽です。


[memo] ファイルの後半にある"nop"(no operationの略)行のコメントオンオフを上手に利用すると、もしレンダリングが途中で失敗したときに、成功した部分についてはスキップして失敗した部分のみ再レンダリングさせることができます。

5.8. レンダリング用バッチファイルの準備


うp主から提供する 325-305-VR180-bat.bat をコピーしファイル名を書き換えて準備します。コピー先はどこでもいいのですが、ターゲットの325-305-VR180.pmmと同じところに、先頭の7文字を揃えて置いておくとわかりやすいと思います。例ではターゲットが"325-305"で始まっているので、次のようになるでしょう。
X:\mmd\tubep\325-VR180\325-305-VR180-bat.bat

325-305-VR180-bat.batはTark様のsample\call_ffmpeg_180.batを参考に書き下ろしたものです。
中身はテキストなので、メモ帳にドロップすれば編集できます。
以下の部分はご自身の環境に合わせて書き換えてください。
---------
rem ffmpegとffprobeをインストール先に合わせる
set FFMBIN=X:\ffmpeg\bin\ffmpeg
set FFMPRB=X:\ffmpeg\bin\ffprobe
rem ワーキングフォルダに移動
Y:
cd Y:\tmp-work
---------

内部でファイル名の先頭7文字を自動抽出して映像ファイル名の確定に使っているので、ファイル名の先頭7文字は 5.7.節と5.8.節を通じて一貫するようにしてください。

このバッチファイルの内容は、UWSCで自動処理によるレンダリングが行われたあとの最後で実行されます。
ffmpegとffprobe用いて、エンコーディングを行います。

[memo] 何らかの事情で自動実行されなかった場合は、(レンダリングまで全て正常終了していてファイルが揃った状態ならば)本ファイルをダブルクリックしてエンコーディングのみ実行できます。

5.9. 実行


5.9.1. 実行開始


ここまでで全ての準備が整いました。
いよいよ実行です。
実行を開始すると、2時間から10時間程度はPCが使えなくなります。
途中でポップアップや通知などが出てくると処理が中断してしまう可能性があるので、そうならないようにしておいたほうがいいでしょう。様子がわかるようスクリーンセーバーもオフにしておきましょう。
(手を付けないままぶんぶん回り続けるPCを見ると、なんとなく「俺ってコンピュータ使いだよな」という気分がして微妙に楽しいのはうp主だけかしら‥)

1. UWSCを起動し以下のようなウィンドウを表示させます。
2. 上記5.6.節で用意したTark-tbp12-bones.uwsをドロップします。
3. 設定ファイルを聞いてくるので、自分で書き換えた325-305-VR180-uws.ini をドロップします。
4. UWSCがMikuMikuDanceを呼び出してレンダリング処理を始めるので、そっと見守り続けます。(1時間から6時間ぐらいかかります)
5. UWSCがMikuMikuDanceを10回呼び出した後、最後にバッチファイルを呼び出してエンコーディングを開始するので、終わるまでさらに待ちます。(1時間から4時間ぐらいかかります)この状態になったら、バッチファイル実行ウィンドウに触れない限り、PCのデスクトップ環境を触っても一応大丈夫です。(それでも、慣れないうちは触らないほうがいいと思います)

5.9.2. 実行状況の解説

この節では、生成される動画ファイルをそれぞれ解説します。自動化によって順次生成されてくるので、作業としては何もしません。見ているだけです。

レンダリングパートで、UWSCはMikuMikuDanceを10回呼び出して、aviファイルを10本作製します。作製順は 325-305-VR180-uws.ini に記載されている順です。L0 / R0 / L1 / R1 / L2 / R2 / L3 / R3 / L4 / R4 の順になります。Lが左目、Rが右目に相当します。
aviファイルは中間ファイルなので、画質を保つため、ロスレスなUT codecを用いています。そのため、どのaviファイルもサイズが巨大です。

エンコーディングパートでは、UWSCは 325-305-VR180-bat.bat を起動します。
黒地に文字がいっぱいなコマンドウィンドウが表示されて、中でffmpegを実行させている様子が見えるようになりだしたら、エンコーディングパートに移った証拠です。このコマンドウィンドウに文字を打ち込んだりしないようにしてください。(確か何かキーを打つと中断します。エンターキー打つと再開しますけど)

まず左目分をエンコーディングします。
L1とL2からzzL12-.aviを作成します。
L3とL4からzzL34-.aviを作成します。
zzL12-.aviとzzL34-.aviをブレンディングさせながらzzL1234-.aviを作成します。
L0とzzL1234-.aviをブレンディングさせながら325-305_Lm.aviを作成します。
この4つの作業のうち、前半二つは貼り合わせるだけなので比較的高速なのですが、後半二つはものすごく時間がかかります。(うp主の環境で速度比が1/15に届かないぐらい。つまり4分の動画ならそれぞれ60分かかります)
こうして得た325-305_Lm.aviが左目分の最終形態になります。
同様に右目分もエンコーディングします。
両目分を結合してmp4にします(LR-xxxx.mp4)。サイズが大きいことと、mp4圧縮をするため、この部分の処理も時間がかかります。そのあと、music.wavを合わせて主ターゲットの(LRM-xxxx.mp4)を完成させます。主ターゲットが5Kのときはそこから4K版を作ります。同様に、主ターゲットからiwara.tv用の4K/300MB版も作ります。
完成した様子が下図です。下ではアイコンを拾ってきたのでアスペクト比がおかしい表示になていますが、本当は2:1の横長動画です。
解像度は、ターゲットpmmで指定した値に従います。325-305-VR180.pmmの例では、5K (2880x2880) としていたので、325-305_LRM-5760.mp4が主ターゲット(上図左)です。これが後のYouTube向けになります。
うp主の所有するVRデバイス辺りだと5Kはちょっと再生が大変なので、自動的に4Kも同時に生成するようにしています(上図中央)。また、iwara.tvでは300MBまでというファイルサイズ制限があるので、4Kでさらに300MBというmicro版も生成するようにしています(上図右)。micro版は画質がむごいので、あくまで案内掲示用だと思ってください。

【余談】
なお、同時にVR135も生成しています。mp4ではありますが、使わないのなら消して構いません。
周辺部を統合していないので、周辺部が黒くなっています。ファイルサイズはVR180とVR135でほとんど違いがありません。
ファイルサイズ小さくないわ範囲は狭いわで、いいところがありませんね。ならなんで作ってるのか?ということですが、慣れてくると、
1. レンダリング時にL0とR0の生成が済んだ時点でUWSCを強制終了
2. エンコーディング用バッチファイルを手動実行(ダブルクリックするだけ)
でもVR135だけは生成されます。つまり短時間で速報版が作れます。レンダリングは2本だけになるので、所要時間は1/5になります。エンコーディングも行うのは両目分の統合のみなので、実行時間は1/4程度?で済みます。(速報版と言っても、結構普通に見れます。視聴時に首をあちこち回さないような人ならこれで十分) 
速報版を視聴してみて、期待通りなら、uws.ini内のnopが並んでいるところで、3(=L0)と4(=R0)を(コメントを外して)nop対象にして、UWSC実行を再度行うと、今度はL0とR0に手を付けずにL1からレンダリングが開始されます。
なお、VR135がずっと不要なら、batファイル内のVR135レンダリング部分を削除なりコメントアウトしてもいいかもしれません。

全てのmp4ファイルが無事に生成されているのを確認したら、サイズの大きい中間生成ファイルであるaviファイルは全て削除して構いません。

5.9.3. メタタグの埋め込み


Google VR180 Creator
ここではVR180 Creatorを利用します。
インストールして使えるようにしておいてください。
起動したら、「公開の準備」を選択して、主ターゲット(例では 325-305_LRM-5760.mp4 )をドロップします。

エクスポートすると、すぐにメタタグが埋め込まれた 325-305_KRM-5760-injected.mp4 が生成されます。ファイルサイズはほとんど変わりません。
これをYouTubeに投稿すれば、あとはYouTubeが勝手にVR180にしてくれます。
5KぐらいのVR180動画だと、YouTubeに投稿してからVRで視聴できるようになるまで運が悪いと1時間から半日ぐらいかかるときがあります(今はどうかわかりませんが、昔は公式に「待っててくれ」と書いてありましたw)。うp主はやりませんが、時間指定して封切とかしたい場合は、前の日ぐらいから準備しておいたほうがいいでしょうね。
このメタタグ埋め込みは、VR135でも同じ要領で可能です。

投稿まで辿り着くことができたら、是非ご連絡ください。
うp主、twitterとかSNS一切しないので、このblogの下のコメントか、つべのコメントか、iwaraのプライベートメッセージ辺りで‥。
喜んでお伺いしますw

5.10. 技術解説


Q. AviUtilとか使う方法も考えてよ!
A. 残念ながら対応予定はありません。うp主はAviUtilとかPremiereとか避けて通りたい人なのです。

Q. 延々と説明してた割には、結局先人の知恵の焼き直しじゃん。
A. その通りです。ポイントは技術ではなくて省力化wです。元2D動画のpmmファイルでカメラワークがカメラ中心位置≒注視点になっているようなのをいっぱいもってる人でそれをVR化したい人(=うp主)が手間最小でVR180をたくさん作れるようにしたかったのです。同じ境遇の紳士がどれぐらいいるのかしら。

Q.エンコーディング(でのブレンディング)はなんでこんな順番なの?
A. 5本のAVIファイルが以下のように重なっているので、境界をぼかしたマスク画像を使ってぼかし結合するようにしたのがポイントです。なおかつ、このときに中央のaviができるだけ使われるようにしてあります。これによって、視野角135°までは原理的に美しく、そこから周縁部の22.5°につながるところはブレンディングでそこそこテキトーに仕上がります。少なくとも境界線を見つけることは難しいでしょう。相当に色味が違うaviファイルでも結構ばれなくなります。
右側が12(左右)と34(上下)を結合するときのマスクです。黒いほうが一続きになっていることから、左右に一続きでつながっている34が優先的に採用されます。中央の縦の境界は次の0(中央)が上書きしてくるので、見えなくなります。結局四隅の斜め境界の辺りのみが接合面として残って、かつそれをブレンディングでぼかしてます。
もちろんAviUtilでもできるのでしょうけど、今回の手法の強みは、とにかく手を使っての作業が一切ないことです。特にレンダリングパートは、2回目以降は前回使ったバッチファイルをコピーしてファイル名を先頭7文字変更するだけなのでわずか数秒w

Q. 次はVR360だね!よろしく!
A. うーん、対応しないと思います。ゲームとかじゃないので、カメラワークも自由にできることになったし、わざわざ視聴者に後ろ振り返ってもらうような動画を作る意義はないと思います。やってみたい方はご自分でお願いします。

Q. こんなもん書いてる暇があったらもっと紳士動画作ってよ!
A. もっともなご意見ありがとうございます。うp主的にはこのHOWTOで他の紳士な方々が紳士VR量産してくださるようになれば、とても幸せです。ガチエロでもそうでなくてもいいです。いろいろ見たい。マジで。

Q. 中間ファイル(aviファイル)でかすぎ。なんとかならないの?
A. 実は、ベースになった手法では、中間ファイルを作らないようになっていました。ただ、うp主の環境ではいろいろと作業中断する羽目になることが多く、中間ファイルを作らない方式だと中断したら最初からやり直しになって心が折れそうでした。HDD(特に内蔵なら)でもそれほど遅くなるわけでもないですし、持ってなかったら買っちゃいましょう!(こちらについては需要が多そうなら改訂版考えます)

以上です。コメントや質問等は‥受け付ける保証はしませんが、とりあえずこのブログの(か、つべかニコ動あたりで)コメントにでもつけておいてください。

それでは、佳きMMDライフを。

2021/03/09

MMD-VR180 HOWTO Chap.0 概要

MMD-VR180 HOWTO

2024/12/31 TubeP 三版

この解説は、うp主ことTubePのMMDでのVR180作成手順を記録しておくものです。
もしどこかの誰かの役に立ったら嬉しいです。
お約束ですが,無保証です。実行はあくまでも自己責任でお願いします。

2021/03/09(初音ミクさんの日だw) TubeP拝

【目次】

0. 概要

0.1. 目的


本解説の趣旨は、第1にはうp主の備忘録、第2には様々な先人の皆様への感謝としての拙い情報提供です。この解説がMMDのVR180動画の増加に繋がれば幸いです。

目標は、すでに2D動画を作ったことがある方が、速やかにVR180動画も作れるようにすることです。元の2D動画の雰囲気をできるだけそのまま移す方法を示しています。(うp主は2D動画のストックがたくさんあって、これを自分でも早くVR180で見たいのです。他の方のMMDな2D動画のVRもいっぱい見たいのです。特にかわいくてほんのりエッチなのすごく見たいです)

0.2. 必要なソフトウェア


MikuMikuDanceで2D動画を普通に作成して投稿出来る環境と技量があることを前提とします。実際に必要なときにそれぞれ説明しますが、感謝の意も込めてここに列挙させて頂きます。

樋口優様の MikuMikuDance
舞力介入P様の MMEffect
極北P様の PMXエディタ(今回直接は使いませんがうp主的に謝意を)

蒼真アヤ様の解説動画(うp主がVR180を作るきっかけになった神動画)

ほうりき様の EquirectangularX.x(MMEがそのまま使える!貴方様も神ですか!)
Tark様の UWSC スクリプト(凄く勉強になりました)
あきら様の VMDファイルエディタ(カメラ移設自動化の決め手になりました)
Windows操作自動化ツールUWSC(本家サイトが‥vectorのリンクで代替中)
Google VR180 Creator (YouTubeへの投稿時に必要です)
nef様のMMDM (MMD Macro)(物理焼き込みに利用します)
無敵エンコーダー ffmpeg(昔からお世話になってます)
梅澤 威志様の ロスレスエンコーダー UT codec(直接登場しませんが導入済の前提) 
 

0.3. 必要なハードウェア


MikuMikuDanceの2D動画を作成できる環境はすでにあるものとします。
それに加えて、生成時に(うp主の趣味で)中間ファイルを一時的に大量に作る為、その一時的な置き場として1TB程度必要です。HDDでもいいですが、SSDだと少し速いです。作業が終われば中間ファイルは全て消せます。(ちなみに最終生成物のファイルサイズの目安は、ざっくりですが、4分程度の5K/60fps動画mp4だと1GBぐらいになります)

0.4. 必要な時間


元2D動画が視野角固定で動かしているようなカメラワークなら、慣れてくれば、編集に最小限必要な時間は30分程度です。
しかし、そのあとのレンダリングとエンコーディングには時間がかかります。i7-9750とNvidia RTX2060装備のPCで、下の30秒動画で2時間弱かかっています。3分ぐらいの動画だとその6倍ぐらいかかります。10時間ぐらいPCは延々と発熱し続けますw
特に前半のレンダリング中はwindows自動化ツールのためにデスクトップ環境を操作することも出来ないです。後半のエンコーディングに入れば操作そのものは出来る様になりますが、裏でCPUがぶんぶん回ってるのであまり快適ではありません。
お奨めは,寝る前にセットして起きるまで放置、ですw

0.5. うp主からの提供ファイル


(1) VR180視点f16.pmx
(2) Tark-tbp12-bones.uws
(3) 315-000-VR180-uws.ini
(4) 315-000-VR180-bat.bat
(5) エンコーディング時のブレンディング用マスク画像一式(8枚のpng)
(6) MMDMでの物理焼込用マクロファイル一式
まとめてBowlRollにおいてあります。
どこでどう使うかは、1.節以降の解説をご覧ください。
 

0.6. サンプル


VR180のstreamingは現在のところYouTubeでしか見られないので、YouTubeにサンプルを置いてます。これらをどのように作成していくかを次節以降で解説しています。

その1:元2D動画
皆様が普通に2Dで製作している動画だと思って下さい。今回はMikuMikuDanceに敬意を表して、きしめんをベースにしてます(皆様持ってられますしw)。

その2:カメラワーク移設2D動画
VMDファイルエディタのプラグインと(1)のVR180視点f15.pmxを利用して、全く同一のカメラワークをカメラ操作無しで実現します。その1と寸分たがわないのでつまらないですねw(同一にすることが目的ですから)

その3:VR180展開動画
編集後2時間待って得たVR180動画の展開版です。
左右5本ずつ動画が継ぎ目の見えない形で貼り合わされているのが分かると思います。

その4:VR180動画
最終的な成果です。元2D動画の雰囲気がよく残っていると思います。
YouTubeでの本解説の公式リンクにしてます。

おまけ1:VR135展開動画
長時間のレンダリング&エンコーディングが待てないという場合は、周縁部を見捨ててよければ作成までの時間を大幅に短縮できます。(必要なAVIは2本のみでエンコーディングも1回だけでOK)

おまけ2:VR135動画
おまけ1をVR180でストリーミングしてみた例です。中央しか見ないならこれで結構十分かもしれません。

おまけ3:デフォルト距離でのVR180化
上記のその4:VR完成では、没入感を出すために、編集過程でカメラからモデルまでの距離を一応変更していました。もしそれすらしなかったらどうなるか、という例がこちらです。これの場合、編集での調整作業が発生しないので、ファイル変換してドロップしてという数分程度の作業で済みます。

0.7. その他


この解説は、お約束の無責任無保証です。法律と良識に基づいてお使い下さい。
人々の対立を煽るような目的への利用はご遠慮ください。
貼ってある図やBowlRollに置いてあるファイルについて、再配布・改変・改変再配布・個人利用から商用利用まで、私から制限をかけることはありません。ただし、元がある場合は元の規約に準じてご利用ください。
もし、ツリー登録、リンクをして下さるなら、
ニコ  im10708783
にお願いします。本ページへのリンクとして、
というURLも作ってみました。
 

それでは、いよいよ解説開始です(なんか文章長い‥)。
1.節の カメラワーク移設 に進んでください。


0.8. 改訂履歴


2024/12/31 三版 Youtube 動画切替
2021/03/18 二版 VR180視点f16.pmx (「★見回し」ボーン)の追加
2021/03/09 初版