UWSCで自動化

投稿日: カテゴリー: PCゲーム

ブラウザゲームをやっていると、どうしても周回が必要になることが多く、面倒くさいのでUWSCを使って簡易的ではあるけど自動化してみた。プログラミングは素人なので忘れないように書いておく。

やりたいことは、ゲームのクエストの周回。完全自動化はハードルが高いので、まずは行動力が枯れるまでの数十周を自動化させること。

用意するものはUWSC本体、あいまい画像認識につかうChkimgx。
更新の止まっているUWSCを使う理由の一つは、このChkimgxを使いたいから。
UWSCフォルダにChkimgx.dll、Chkimgx.uws、Nekoaddon.dllの3つのファイルをコピー。
クリックしたい画像もUWSCフォルダにコピー。
準備が終わったらuwsファイル作成。

各パラメータはあまり理解していないので適当。Chkimgxで画像検索し、見つかったらクリック。そしてbreakで次の処理へ、という流れ。初心者なので、breakコマンドにたどり着くまで時間かかった。

基本的にクリックだけでも周回できる場合も多いが、戦闘時間にばらつきが出て途中で止まる。でも時間マージンとると、時間がかかりすぎたりする、といった場合に画像認識を使うのがいいと思う。画像認識をもっと増やせば周回時間が短くなるかもしれないが、反面、アイコン画像なんて、イベントやメンテナンス等ですぐ変わるものなので、単純に変更するのが面倒くさい。

気が向けば、なんとなく出来そうなので、回復アイテムで行動力を回復しクエスト無限周回をやってみようと思う。

TSをMP4にエンコード その3 設定

投稿日: カテゴリー: PC

主にAviutlの設定まとめ。PCで見るための設定。

・クリッピング&リサイズの設定
アナログ放送時代の再放送などで両端に余白ができる場合に使用する
1440×1080で録画された場合、
左180 右180
に設定して余白部分をカットできる

・透過性ロゴ
ロゴ解析でロゴを取り込むことで、ロゴを消せる
ロゴが出たり消えたりする場合もフェードを使うと綺麗に消せるが、
労力に見合わないので自分はフェード機能は使わない

・サイズの変更
システムの設定の「リサイズ設定の解像度リスト」に登録しておくと
リスト表示されるので楽
ts1
各解像度ごとの設定。緑の塗りつぶしがお勧め。
解像度は色々試してみたが、ファイルサイズと汎用性のバランスがいい
1280×720に落ち着いた。

・フレームレートの変更
なし
・インターレースの解除
自動
変更すると色々面倒くさい。上級者以外は変更しないほうがいい

・x264設定
現在の設定
エンコード時間やファイルサイズは、マルチパスと品質の設定で大きく変わる。
最初はプロファイルから好みの設定を選んで、状況に応じてマルチパスと品質を
変えてみるといいと思う。
set1

基本的にはデフォルトであるプロファイルの高画質設定から変更していない
最初、自動マルチパス(パス数2)に設定していたが、やたら時間がかかりすぎるので
やめてシングルパス(可変レート)にした。可変なので動きの激しい時は高レートに、
動きの無いときは低レートに自動的に変わる。品質20に設定にしているが、
21や22くらいのほうがいいかもしれない。
音声を320kbpsにしているが、128kbpsでいいと思う

set2
最初は変更しないでいい

set3
最初は変更しないでいい

結局設定は環境、用途によって人それぞれ。
最初はデフォルトの設定にして、
少しずつ自分にあった設定に変更していくのが現実的だと思う。

TSをMP4にエンコード その2 手順

投稿日: カテゴリー: PC

それなりに色々試して、それなりに自分なりのやり方が決まったので、
忘れないように纏める

手順は以下の2通りで、ほぼ問題なくエンコードできた。

手順A・・通常はこちらで問題ない
使用アプリ BonTsDemux、ToWave、aviutl
1.BonTsDemuxでTSをW2Vファイルとaacファイルに分離
2.ToWaveでaacをDelay修正wavに変換
3.aviutlでw2vとwavを読み込んで、編集してエンコード

それぞれのアプリの詳細な手順は割愛

 

手順B・・5.1chでエンコードする場合、手順1でうまくいかない場合
使用アプリ BonTsDemux、aviutl、TsSplitter、Yamb、Avidemux
(1.TsSplliterで5.1ch部分を分割)
2.BonTsDemuxでm2vとaacに分離
3.aviutlでm2vのみをMP4にエンコード
(解像度などの変更のみ。CMカットのような動画時間が変わる編集はしない)
4.YambでMP4とaacを合成
5.Avidemuxで音声Delay補正とCMカットなどの編集をして保存

5.1ch対応する場合はBonTsDemuxで分離時に音声出力方式を[強制5.1ch]を選択
それ以外はStereo
5.1ch放送だが5.1ch必要ない場合は、Stereo選択して手順Aでもいい
前番組、後番組が5.1ch放送で少しでも録画されていると、
ToWaveの変換で失敗することがあるので、
TsSplitterを使って音声5.1ch部分を分割する

Tssplliterのパラメータは
-SEPAC(音声チャンネル切替で分割、個々に出力)
を使い、音声5.1ch部分だけを抜き出す
CMまたぎなどで2つ3つに分割される場合でもTssplliterで合成しない
合成すると、合成した後半部分のDelay補正ができなくなるので、
個別に上記5までのMP4エンコードとDelay補正を行い、
個別に作成したMP4を最後にaviutlで合成する

AvidemuxのDelay補正はBonTsdemuxで分離したaacファイル名のdelay値を
そのまま入力すればよい

 

・その他
BonTsdemuxで分離したあとのaacファイル名のDelay値が8桁くらいになることがある
その場合にMurdocCutでTSの先頭部分を少しカットすると修正できる

手順Aでうまくいかない場合は大抵Towaveのwav変換で失敗しているので、
動画のみをMP4にしてからaacと合成する手順Bにすると回避できる

ファイル名にコンマなどの記号があるとToWaveの変換で失敗することがある

TSのDropが多くて音ズレが修正できないときはあきらめる

時間かかるし、多少は劣化もするのでエンコードは1回のみが妥当

 

手順Aは結構あちらこちらで紹介されていて、手間があまりかからないが、
音ズレが修正できないことも多々ある

手順Bは5.1chにも利用できるし、大抵の音ズレの問題は回避できると思う
ただ、手順Aより手間がかかるのと、AvidemuxはGOP単位の編集になるので、
aviutlよりは大雑把な編集になる

TSをMP4にエンコード その1 アプリを用意

投稿日: カテゴリー: PC

PT3導入から2ヶ月ほどたち、ある程度のエンコード方法も固まってきたので忘れないように纏めてみる。
まずは使用アプリから。
すべてフリーソフトで、編集作業もすべて手動。基本的にmp4エンコードはaviutlで行う。

・aviult v1.00 ・・・MP4にエンコードする
MPEG-2 VIDEO VFAPI Plug-In v0.78 ・・・m2vファイルをaviutlに読み込みさせるために必要
x264guiEx v2.21 ・・・MP4エンコードに必要
透過性ロゴ フィルタv0.13 ・・・番組ロゴ消去する
L-SMASH Works r717 ・・・いろいろなファイルをaviutlに対応させる

・BonTsDemux 10k7fix05
tsファイルを動画(m2v)と音声(aac)に分離するソフト。現状、このソフトだけで十分

・ToWave v1.03
・VLC v2.1.5
BonTsDemuxで分離したaacのDelay補正を行う

・Yamb v2.1.0.0(MP4BOX v0.6.0.6)
MP4とaacを結合する

・Avidemux v2.6
MP4のIフレーム単位で編集や音Delay補正を行う

・Murdoc Cutter v1.9g1
GOP単位でtsの簡単な編集をする

・TsSplitter v1.26
tsの分割をする

Aviutlプラグインやコーデックの記載漏れや古いVersion使っていたりするかも。
通常のエンコードであれば、aviutl、BonTsDemux、Towaveのみ使用。
ただ、5.1ch対応やその他イレギュラーな場合に備えて、Yamb、Avidemux、MurdocCut、TsSplitterも用意しておく。

前回記載したDG Indexは
・m2vをAviutlに直接読み込めるのでd2vにする必要は無い(BonTsDemuxだけで十分事足りる)
・DG IndexはAACで分離できないときがある
・d2vをAviutlに読み込ませるときにフレーム高を1080から1088に変更する必要があるため、余計なリサイズが必要になり面倒くさい
といった理由で利用をやめた。

関係ないが、先月エンコード時間削減のため、CPUをi5からi7-4790Kに換えたところ、体感で4割くらい時間が削減された。
HTの利用価値はこれだったかと、初めて実感。

tsをMP4にエンコード

投稿日: カテゴリー: PC

PT3を導入したので、録画動画をMP4にエンコードする。ざっくりと編集してざっくりとエンコードする人向け。

以下のアプリがあれば単純なエンコードなら不自由しないと思う。
設定詳細は割愛

・atiutl V1.00(下記アプリで作成した動画/音声ファイルをMP4にエンコード)
 必要なプラグインは割愛
・VLC Media Player(ToWaveと連携するために必要)
・DG Index V1.5.8(tsを動画と音声ファイルに分けるために必要)
・BonTsDemux(DG Indexでうまくいかないときにこっちを使う)
・ToWave V1.03(音声ファイルのDelayを修正してwavに変換する)

・インターレースについて
アナログ放送だけだと思い込んでいたが、デジタルでもインターレースだった。なので、エンコード後の動画には横縞紋がくっきり出たりしていた。
atiutlの設定で
[インターレースの解除]-[自動]
を設定すればきれいにエンコードされた動画になる。

・解像度について
チャンネルや番組によって録画されたtsファイルの解像度は様々ある。地デジ、BSの録画ではほぼ以下の3パターンの解像度(たぶん)
1920×1080(BSの一部のフルハイビジョン放送)
1440×1080(地デジ、BS全般)
720×480(DVD画質。アナログ放送時の再放送など)

エンコードする際はアスペクト比を考慮する必要がある。DGIndexやBontsdemuxで動画と音声を分割したときにアスペクト比情報が抜けてしまうため、Atiutlでエンコードする際に再設定する。
Atiutlのプラグインで拡張x264出力(GUI)Exの設定で、
アスペクト比を
1440×1080なら4:3
720×480なら32:27
に設定する。
アスペクト比を設定しないなら
[設定]-[サイズの変更]
で16:9で表示されるように、1280×720などに設定してからエンコードする。

理由は詳しく知らないが、Atiutlではフレーム高1080が開けないため1088の設定にする。そのため、エンコードする際は、
設定の[クリッピング&リサイズの設定]から、[下]の値を「8」に設定する。これをしないと、エンコード後の動画は下部に余白が出来てしまうことになる。

アスペクト比を設定してエンコードしたmp4は、なぜかPS3で破損したファイルになってしまった。アスペクト比を設定せずにエンコードしたmp4は再生できた。
設定を変えれば再生できるようになるのかもしれないが、現状見つからず。
ちなみに、PS3再生できない場合にLevelを5から4に落とす方法が散見できたが、Levelは4.1や3.2にしてもだめだった。
どうしてもPS3で見たい場合は、1280×720固定でエンコードしておけばいいかな。

・その他
CMカットなどの編集はAtiutlで手動で。たいした手間ではないし、確実だし。

チャンネルロゴ消去もAtiutlで行える(プラグイン必要)。
ロゴ解析で番組ロゴを指定して、解析、ロゴ画像を保存する。→[透過性ロゴの設定]から、オプション-追加でロゴ解析で保存した画像を追加する。
微調整はたいていの場合、「深度」「Y」「Cb」「Cr」の4項目で行う。微調整で綺麗に消えたと思っても、別の背景では逆にぼんやり残ったりするので、ざっくり消えたことで満足する程度がいい。テロップとかは消せないし。