摘み入れ地点

得た知見を書きためていく場所です。ソシャゲ、自動化、データを見るのが好きです。Amazonアソシエイト、各種アフィリエイトサービスを使用しています。

ffmpegとwaifu2xでWallpaper Engine用の4K動画を準備した

ずっと更新できていなかった&技術っぽいネタができたので、作業ログとして書くことにする。

 

前提:Wallpaper Engineについて

store.steampowered.com

Steamで売ってるこいつを使うとデスクトップの壁紙を動画にすることができる。見てもらった方が早いので、気になる方は以下動画参照。

www.youtube.com

壁紙にする動画はYouTubeの動画URLでも指定可能。つまり、手元に動画ファイルが無くてもストリーミングで壁紙に設定できる。

だが、4Kモニタで生きている身としてはやはり4K解像度の動画を壁紙設定したくなった。そうなるとデータ通信量的にも手元に動画を準備した方がよいと考えたので、その準備をするためにいろいろやった。この記事はその作業ログ。

 

動画の準備

以下動画サイトなどからDLした。イリーガルな匂いもするので、やるときは自己責任で。

WallpaperWaifu - Free Live Wallpaper For Your Desktop PC & Mobile Phone

MyLiveWallpapers.com - Best Live Wallpaper For Your Desktop PC and Mobile Phone

また、YouTubeで「Wallpaper Engine (なんたら)」で検索すると、壁紙用の動画が出てくるのでそれをダウンロードするのも良い。今ダウンロードするなら素直にyoutube-dlを使うのが良い。こちらもいろいろあるので自己責任で。詳細は以下参照。

github.com

 

動画の解像度を上げる(アップコンバートする)

どうせ解像度上げるならいいやつが使いたい、となるとやはりwaifu2xが出てくる。

waifu2x.udp.jp

公式では画像しか対応していないが、有志の方が動画へ対応するためのバイナリ・cmdファイルをセットにしたアプコンキットを配布していたので、今回はそちらを使用させていただいた。ありがとうございます。

wp.nippombashi.net

 

基本的にはサイトの手順通りやれば良い。内部で行っている処理もサイトに詳細に書いてある。

 

ただし自分の場合は対応しないといけなかったことや定数設定がいくつかあったので、それらをメモしておく。

こまかくいじりたい人は内部で使用しているバイナリの大元のREADMEを参照すると良い。

github.com

 

step2_up-scale_2x.cmdファイルの定数設定
:: noise=-1/0/1/2/3 デフォルトのまま2でOK
set NOISE=2

:: scale=1/2 ここではまった。少数は使用不可。1/2/4/8/16/32のみ使用可(元のバイナリがそれしか対応していないため)
set SCALE=2 :: blocksize=400 RTX3070では400が限界?これ以上にすると動作が不安定に
set BLOCKSIZE=400

scaleがはまりポイント。適当に1.X倍とか設定すると勝手に1倍になり、ただのノイズ除去になってしまうので注意(元のREADME読まないと分からないのでまぁまぁ時間食った……)

また、自分の場合元動画がFHDだったためscale=2がちょうど4Kになり都合が良かったが、そうじゃない場合は元動画の画面サイズに合わせて倍率を調整する必要がある。

 

step3_merge_nvenc.cmdファイルのコマンド編集

大元の動画に音声が無い場合は動画化する際にファイルを参照しようするが存在しないためエラーで落ちてしまう。そのため、音声ファイルを参照しないようにコマンドを書き直す必要がある。該当行を以下のように差し替えれば動くはず。

ffmpeg64\ffmpeg.exe -framerate %FPS% -hide_banner -strict -2 -i "%~dp0\_temp-project\image-frames2x\image-%%09d.png" -r %FPS% -qp 0 -vcodec hevc_nvenc -y "%~dp0\FINAL_%dttime%.mp4"

 

自分の環境特有かも知れないが、ここでコマンドを書き直してビデオのビットレートを指定してもなぜか非圧縮(40秒程度の動画が驚異の50,000kbps、ファイルサイズ800MB!)で書き出しされてしまった。

同様の症状が出た方はいるかわからないが、もしいた場合は一度そのまま動画を生成してしまい、その後ffmpegを使用して動画ビットレートを変更することで解決可能だ。

 

(やらなくていいかも)ffmpegで動画ビットレートの変更

同フォルダにあるffmpegのバイナリに対してPowershellで以下コマンドを実行。

ffmpeg64\ffmpeg.exe -i .\FINAL_「動画の名前」.mp4 -vcodec hevc_nvenc -b:v 5000k -r 60 output.mp4

 

「-r 60」はFPS指定。変換する動画のFPSに合わせて設定すること。「-b:v 5000k」は使用用途に合わせて変更すると良い。自分のように壁紙にするぐらいなら5000kで十分。

これで解像度を4Kにしたままファイルサイズを約800MBから約20MBまで小さくすることができた。やったね。

 

画面が真っ黒の場合の対処法(LAVのインストール)

これで動画は生成できたが、手元では生成した動画を設定すると画面が真っ暗になってしまった。

調べると公式のFAQがあったのでそちらを確認。手順通り外部から動画再生用のフィルタ?をインストールし、PCを再起動すると症状が治った。

help.wallpaperengine.io

 

以上、同様のことをやろうとしている人向けの記事だった。参考になれば幸い。

余談だが、自分の好きなキャラが常時こちらを向いて「動いている」という体験は本当に良い。一度設定すると本当にQOLが上がるので是非いろんな人に試してもらいたい。

インゲーム/アウトゲームの意味について

game controller: ps2 pad

会社やプロジェクトによって違うところがあるせいか、インターネット上で記載されていることが存外少なかったので書いておくことにする。あくまで自分の属するプロジェクトでの意味なので、どこでも通用するかは分からないので気をつけてほしい。

 

インゲーム

いわゆる「ゲーム」をしているところを指す。RPGならバトル、音ゲーならシャンシャンしているあそこ、レースゲームならレースしているところだし、シューティングゲームならシューティングゲームしている部分である。

ソシャゲ業界に限って一言でまとめてしまうなら、商材価値を発揮する場所と言ってもおそらく差し支えない。商材というのはいわゆるガチャキャラのこと。つまり、ガチャで引いたキャラクターを実際に使う場所のことをインゲームと呼んでも良いと思う。

 

アウトゲーム

インゲームの逆の範囲全部を指す。分かりやすいところではオプションなどがあるが、それよりももう少し広く、例えば編成する機能であったり、ホーム画面であったり、ガシャ画面であったり、例を挙げると切りが無い。故に、インゲームの逆の範囲全部、と表現するのが楽だし抜け漏れがない言い方だと思う。

 

使い方

分かりやすいのは設計範囲を示すような場合。RPGタイトルでインゲーム設計といったらバトルで登場する敵の行動・難易度設計を指すし、アウトゲーム設計と言ったらバトルに勝った際のドロップ報酬・初回獲得報酬を指す。

職場の人から聞いた限りだとコンシューマ側ではあまり使わないらしい。おそらくインとアウトで区別する必要性が薄いから、だと思う。ソシャゲ側ではそんなことがない、というか、そのような範囲で物事を言う機会が多い印象。というか、インゲームはあんまり使わないで、アウトゲームという言葉をよく使う。

ソーシャルゲームはコンシューマと違ってアウトゲームの設計をかなり頻繁に行う。イベントの度にミッションやら報酬やらを作るのだからそりゃそうだ。しかもアウトゲームはログボ、ミッション、ドロップなど多岐にわたっているので、それらを一括で呼ぶための言葉が欲しくなる。そんなときに、アウトゲームという言葉をよく使う。「あのイベントのアウトって今どれぐらい進んでいる?」みたいに言う。

 

インゲーム/アウトゲームのグラデーションについて

イン/アウトという関係がちゃんと存在しているゲームと、そうでもないゲームがある。これはゲームによって異なるもので、ゼロイチで言えるものではなく、グラデーションのようになっていると思う。顕著な例はアドベンチャーゲームで、ほとんどがインゲーム。オプション以外のアウトゲーム画面はほとんど存在しないためである。

また、機能やゲーム内容によってはインゲームともアウトゲームともいいづらい部分もある。例えば、バトル中に味方の編成内容を変えて戦うようなゲームがあった場合、そのゲームの編成をインゲーム側とするか、アウトゲーム側とするかはかなり言いづらい。LOLのショップなんかは多分インゲーム側で、普通ショップってアウトゲーム扱いになると思うんだけど、アレはインゲームの中に存在していて、買ったものがそのままインゲームに反映されるから。

 

以上。用語解説というか自分の理解を書いてみた。はじめて聞くとぽかんとするところがあるが、言うほど難しいものでもないし、みんなふわっとしながら使っていると思うので適当に使っても大丈夫だと思う。

あんスタのカフェの運用を勝手に考えたが無敵だと思った

togetter.com

いちオタクとしてすげ~~~~!!!って感動したと同時に、いちプランナーとしてもめっちゃいろいろできそうだな、と思ったのでその辺のメモを書いておく。あくまでも備忘録。

 

一言で言うと自作した聖地。思う存分編集できる聖地。なので、基本無敵。

 

こういうの、今は確かにめちゃくちゃ面白いのだが、これが半年後どうなっているかを考えてみる。続けられないとしんどいと思うので。

時間が経過するとまぁ普通は飽きるので、飽きの対策を考える必要がある。だが、今回のカフェはそのまんま聖地なのであんスタの熱量が冷めない限りは何かと行きたい人がいる。だから多分飽きとかはそんなに来ない。むしろなるべく同じ様相でいてくれることをお客さんが望むという、結構特殊な立ち位置の場所になりそう。

とはいえ、ずっと同じだとねって思うタイミングも来る。その場合の施策は当然ゲーム側と連携したものになると思う。だが、こういう「あくまでも作中のものって言われないと分からないんすよ」みたいな体でやっているのだとすると、ゲリラで何か仕込むのが一番わくわくしそうだと思った。

例えばゲーム内側で新メニューだとか、お店の季節もののイベント(クリスマスだから~とかそういうの)をやったタイミングで、次の日お店行ってみると急にゲームで言ってたものが存在していてオタクがひっくり返る、とかができる。めちゃくちゃ楽しそうだし、もうそんなことしたら予約でいっぱいだし、写真撮る列ができちゃうよね、多分。

私はアイマスのライブにしょっちゅう行っていたのだけれど、ライブ会場もわりとそれに近くて、そういう文脈で運営してくことでいろんな楽しいことができそうだと思った。

原作からの輸入、原作への逆輸入を繰り返すことでの実在感演出とか、すげー楽しそう。いいなぁ、楽しそう。

マジで、わりとあらを探すつもりでいろいろ考えたんだけど、負ける気がしないなこれ。既に成功しているIPならいくらでもやり放題なんじゃないか?そのうちコーヒー豆とか売り出すとかね。あ~これは彼が飲んでる店のコーヒーの香り~ってやりたいじゃん。めっちゃやりたいじゃん。最高か?

 

ということで、脱帽したメモでした。全然進んでいない技術書典の原稿に戻ります。

技術書典11のオンラインサークル参加に申し込みしました

 

退路を断つために申し込みしました。今回は2冊出す予定です。1冊でもしんどかったのに2冊って、死んじゃうんじゃないの?と思っていますが、最低でも1冊は頑張って出します。内容については実際のサークル参加が確定してからこのブログ等で公開しようと思います。

当分の間ブログ更新もそれ関連の記事が増えると思います。記事の内容そのものに対して、というよりは、書いていてぶつかったツール周りの使い方諸々とか、改めて長文を書くときにどんなこと考えて書くかとか、そういうのも込みで書いてみようかと思います。よろしくお願いします。