摘み入れ地点

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

WSLとAndroidエミュを共存させたいならWindows Proを買っておいた方が幸せ(かも)

※ 手元でWindows Proを購入して確認していないので、あくまで眉唾程度で読んでください

まとめ

  • Windows Subsystem for Linux(WSL)と各種Androidエミュレータ(Nox, Bluestacks等)の共存はWindows Proなら可能(らしい)
  • 手元のWindows HomeではWindows Proじゃないと使えない仮想化技術(Hyper-V)の設定変更ができず、共存ができない
    • 自分の手元ではネットワークが死んで強制的にオフラインになった
  • 多少はプログラミングをする予定がある、かつ、Androidエミュレータでゲームをプレイする場合はWindows Proを買っておいた方がいい
    • HomeとProの差額よりHomeからProへのアップグレードの方が4倍以上高い
    • このブログを書いている人は現在進行形で後悔中

 

WSLとかHyper-Vとかよくわからんという人は以下ページが分かりやすく解説してくれているので見ると良い。

penpen-dev.com

 

Windows HomeではHyper-Vは使えない

docs.microsoft.com

Windowsの公式ドキュメントにもあるとおり、一般に使用されているであろうWindows HomeではHyper-Vはインストールすることができない。以下、ページから引用。

  • Windows 10 Enterprise、Pro、または Education
  • 第 2 レベルのアドレス変換 (SLAT) の 64 ビット プロセッサ
  • VM モニター モード拡張機能 (Intel CPU 上の VT-c) の CPU サポート
  • 最小 4 GB のメモリ

Hyper-V ロールは、Windows 10 Home にはインストールできません

[設定]>[更新とセキュリティ]>[ライセンス認証] の順に移動して、Windows 10 Home Edition を Windows 10 Pro にアップグレードしてください。

 

Hyper-Vが使えなくてもWSLは使えるが、WSLを使おうとするといろいろ動かなくなる(ことがある)

ここがややこしいのだが、Hyper-Vは無くともWSLは使用できる。だから、Windows HomeでもUbuntu for Windowsを使うことはできる。

だが、これと各種Androidエミュレータの共存はできなかった。自分がこれまで試したのは以下3つ。

  • Nox Player
  • Bluestacks
  • mumu Player

これらは全部ダメで、Androidエミュレータ側起動時にエラーが出てしまう。

というか、Androidエミュレータが動かないだけならまだマシで、自分の手元のNoxはエミュ自体は起動できてもPC全体でインターネットが使えなくなった。誰かのためになるかも知れないので、一番下で事例を残しておく。

karst459.com

インターネット上で探すと共存をさせることに成功している人もいるらしいのだが、自分は今まで一度も成功したことがない。おそらくハードウェア構成などに依存する部分があるのだろう。

ということで、Windows HomeでWSLとAndroidエミュレータの共存をさせようとするのは自分には無理、というのが現時点での結論だ。

 

Windows ProだとHyper-Vが使えるのでAndroidエミュレータが動く(らしい)

Windows Proだと共存できる可能性が上がる(らしい)。理由はHyper-Vが使えるから。

特にBluestacksは公式でHyper-V対応版をリリースしていて、なんなら動かないときにHyper-Vを有効にすると解消できるというヘルプまで存在している。

 

また、Windows ProにあるHyper-VAndroidエミュレータが共存できるという記事はネット上に複数存在していた。

markdevel.hatenablog.com

viasnake.com

自分で手元で動かしたことが無いのでなんとも言えないが(しかも2つ目の記事は提供記事だし)、いずれにせよ動くことはあるらしいし、少なくともBluestacks側は公式リリース版でサポートしていると言っているので、動く可能性はかなり高い。

一方で、未だに競合した場合は無効化してほしいというヘルプも残っているので、絶対動くとは言い切れないことに注意したい。

www.youtube.com

support.bignox.com

Windows HomeからWindows Proへアップグレードするのはめちゃくちゃ高い

以上の通り、Androidエミュレータを使えて、かつWSLを使えるようにしたい人はWindows Proを買っておくとあとあと幸せになれる。かもしれない。ただし、既に何度か書いているがハードウェア構成が影響するところがあるので、あくまで自己責任で。

この記事を書くきっかけは自分がこのエディションの違いによって苦しんだのもあるが、一番大きな理由はHomeとProの差額よりもHomeからProへアップグレードする方が4倍以上高いことが分かったからだ。マジでいま後悔している。

Microsoft Storeの画像。高い。

あくまで記事執筆時点(2022/06/27時点)でAmazonのパッケージ版準拠での話だが、HomeとProのパッケージ版差額が3221円に対して、HomeからProへのアップグレード価格は13824円。4倍以上違うこれだけ価格が違うならば、必要になるかも知れないから先に払っておくという選択肢もありだと思う。

プログラミングする予定があるならPro、よく分からないならHomeで

もしここまで読んでいててWindows Pro(というかWSL)の必要性が分からない人は、とりあえずはプログラミングをする予定があるかどうかで考えれば良い。もしプログラミングをする予定がある場合、たとえばこれから情報系に進学する学生なんかはProを買っておくと便利だと思う。

逆にいまいち分からんって人は(ここまで読んでいない気がするが)Homeで十分だ。よく分からないところにお金を払うよりは、Androidエミュレータで動かしているゲームに課金する方が有意義だと思う。

 

以下、自分がWSLを有効化したらWindowsPCのネットワークが死んだ様子を記載しておく。

実例:WSLを有効化するとネットワークが死ぬ様子

まず現状だが、WSLを有効化(インストール)せずにUbuntu for Windowsを起動するとこんな感じになる。

Ubuntu for Windowsを動かそうとした様子

これは当然で、WSLを動かすための設定をなにもしていないからだ。以下ページに則ってWSLをインストールする。

 

docs.microsoft.com

PowerShellでWSLをインストールした様子

インストールすると再起動を促されるので再起動する。すると自分の環境ではネットワークが死ぬ。

windowsの設定画面
LANケーブルが繋がっているのに繋がっていないことになっている

ひどいもんである。ネットワークが死んでいるので通信自体が全部できなくなる。当然ブラウザもクラウドストレージも動かなくなる。

だが直し方はそんなに難しくない。

「設定」で「windowsの機能の有効化または無効化」と検索するとウィンドウが出てくる。この中のLinuxWindowsサブシステムのチェックを外せば良い。

windowsの機能の有効化または無効化画面

もしそれでも上手くいかない場合は、上記画像の他項目も調整してみると良いかもしれない。自分の場合は上記設定でAndroidエミュレータが動く、かつネットワークが使えるようになった。

Androidエミュで並列でゲームするならCPU性能を重視した方がよい

まとめ

  • 複数のNoxインスタンスを立ち上げて遊ぶならば、GPU性能<CPU性能で考えた方が快適っぽい
    • エミュの設定で解像度低め、CPU使用率高めにしたくなるため
  • 自分の環境ではアプリ3つを並列で遊ぶのが限界だった 
    •  CPU使用率が75~90%を行き来するぐらいで限界としている
    • マシンスペックはRyzen 5 5600X, GTX3070, メモリ32GB
    • ゲームはアズレン、ブルアカ、アークナイツ
  • ただし遊ぶゲーム次第なので参考程度に考えてね

いつもの注意事項

※ 試すときは全部自己責任でお願いします。

ソシャゲを並列で遊べると捗る

自分のようなソシャゲバカは並列で各ソシャゲの日課をこなしたい。そうなるとAndroidエミュでたくさんゲームを起動して一気に遊びたくなる。

こんな用途の場合、画面解像度は低くてもいいからそれぞれのインスタンスにサクサク動いてほしい

 

jp.bignox.com

自分が使用しているエミュレータはNoxなのだが、NoxはCPU使用率や画面解像度をインスタンスごとに変更できる。そのため、自分はそれぞれのインスタンス画面解像度を低く、CPUの使用率が高くなるよう設定した(詳細な設定は以降に記載済み)

実際にNoxで並列でゲームを立ち上げている様子
(画像はアップロード用に解像度を下げています)

今のところこれでかなり快適に遊べている。画面解像度が低いことによる不満も特に感じてない。

 

だが、ここで気になるのは、インスタンスを立ち上げる限界がどこにあるのか、である。今の自分のマシンスペックだといくつインスタンスを立ち上げるのが限界か試してみた。

 

注意

以下、自分の手元での検証結果を書いているが、結局は遊ぶソーシャルゲーム次第なところがある。もしもっと3Dでバンバン描画するゲームを遊ぶならばGPUの方が必要になるはずだ。一応検証時も3Dタイトルは含まれているのだが(ブルーアーカイブです)、どれか1本が原神に変わるだけで結果も大きく変わるだろう。そのため、以下はあくまで参考程度で見てほしい。

 

60FPS×CPU使用率高×画面解像度最低の時(Ryzen 5 5600Xでは)3つが限界

Noxのインスタンス3つ立ち上げた時のCPU使用率

検証時は全部のインスタンスでゲームの周回を行っていた。

CPU使用率は75%程度。また、画面遷移時等には一瞬90%近くなることがあった。自分のマシンと設定の組み合わせではここが限界だと思う。

ちなみに画像はNoxだけではなく他にもChromeやらタスク管理ツールが立ち上がっている状況で撮影されている。だが、攻略サイト等を見るためにChromeとNoxが同時に立ち上がっているのは必須だと思うため、この結果で十分だと思う。

ちなみにGPU使用率が30%越えているが、このうち20%はNoxではない別のソフトだ。具体的には、壁紙を動画化するソフトが20%程度食っている。RTX3070というそれなりの性能のGPUをつかっていることもあり、解像度を下げるとGPU使用率はほとんどどうでも良くなるぐらい低くなる。参考までに、4K解像度で起動したインスタンスではGPU使用率は30%程度だった。そりゃそうだ。

ただし、4K解像度でソシャゲを複数本立ち上げて並列で遊ぶには4Kモニタが複数必要で、そんな人はそうそういないと思う。というかそこまでしたいゲームもそんなにないと思う。

以上より、ソシャゲを複数遊ぶという用途に限っては、GPU性能よりCPU性能を考えた方が快適に遊べると言えそうだ。

もっとたくさんインスタンスを立ち上げたい場合の設定方法

自分はソシャゲを3つ並列で遊んでいて既に操作を持て余している。そのため、これ以上インスタンスを立ち上げたくなる場面はイメージできない。だが、そういう方もひょっとしたらいるかもしれないので、一応方法を書いておく。

CPU使用率を下げる

歯車マーク > システム設定 > パフォーマンス > 画面上部の「機能設定」を変更することでCPU使用率を下げられる。

NoxのCPU使用率設定画面

当然だが、使用率を下げた分だけ動きがもっさりするので覚悟しておく必要がある。自分は設定「中(2コア)」でも遅くてしんどかったので「高(4コア)」にしている。

FPSを下げる

歯車マーク > システム設定 > ゲーム > 画像上部の「フレーム」の部分をいじればFPSを下げることができる。

Noxのフレームレート設定画面

自分はソシャゲに限らずゲームは60FPS出ていないとまともに遊べないと思っているので全部60FPSにしている。だが、例えばログボだけ受け取る、というような使用用途のインスタンスの場合はFPSを下げていても困らないだろう。

検証状況

以下、検証時の状況などメモしておく。特にマシンスペックはPC買う際の参考になるかもしれないし、そもそもNoxの設定をいじったことが無い場合は以下に設定にしておけばまともに動く。

検証マシン

※ 余談だが、もしAndroidエミュを使うことも考えてPC購入を考えている、かつ、プログラミングをしたいと思っている場合はWindows Proにしておいた方が選択肢が広がって良い。ちなみに自分は現在進行形で後悔している。

理由は以下記事に記載

(2022/06/26追記:今後編集予定ですので少々お待ちください)

各種設定

マザーボード

AMD Virtualization(AMD-V):ON

Noxインスタンス

アズールレーン・アークナイツ

  • OS:Android 7 32bit
  • 機能設定:高い(4コアCPU:4096メモリ)
  • グラフィクスレンダリングモード:強化互換モード(OpenGL+)
  • 画面解像度:960×540
  • フレームレート:60FPS

ブルーアーカイブ

  • OS:Android 9 64bit
  • 機能設定:高い(4コアCPU:4096メモリ)
  • グラフィクスレンダリングモード:強化互換モード(OpenGL+)
  • 画面解像度:960×540
  • フレームレート:60FPS

グラフィックボード

以下設定をそのまんま使用。要はRTX3070をちゃんと使うように設定している。

support.bignox.com

検証時のゲームの状況

一応書いておく。要は75%あたりをうろついていた時は全部ちゃんとバトル中だったと言いたいだけだ。

  • アズールレーン:セイレーン作戦での自律戦闘中
  • ブルーアーカイブ:戦術対抗戦(PVP)のフルオート戦闘中
  • アークナイツ:龍門幣(CE-5 機密情報護送)の自動周回中

当然だがマクロの類いは一切使っていない。

 

おまけ(ぼやき)

選定タイトルからしYostarの奴隷みたいに見えるなこの記事。まぁ、実際そうなのだが。

冗談はさておき、国産タイトルはエミュで遊ぶことに対して明確にOKを出してくれるタイトルが比較的少ない。そのあたりを気にしつつソシャゲを遊ぶとなると、中華系タイトルが増えがちだと思う(やるならDMM!みたいなタイトルも多いし)。

まぁ、「サポート対象外だけど遊ぶのはいいよ」と言うのも中々難しいからこんな状況なんだろう。でも、個人的には、もう少しAndroidエミュで遊んでもいいよって言ってくれるゲームが増えてくれればいいなぁと思う。

iPhone/iPadと無線コントローラーの切断をiOSのショートカットで自動化した話

まとめ3行

仕組み

  • ショートカットを起動する
  • 起動時にBluetoothがオフになるのでコントローラーが切断される
  • 5秒経つとBluetoothが自動でオンになるので、再度接続可能になる

中身

icloudで共有とか言われてもなんか怖いという人は自作すればOK。

上記した内容をそのまんま起こしているだけなので超簡単に作れる。

iPadで撮影したショートカットの中身

正直、5秒待つ部分はもっと短くてもいけると思うので、個人で編集すると良い。

ちなみにSiriで使うとこの5秒のせいで「少々お待ちください」と言われる。自分はそれぐらいで良いと思っているが、気になる人は短くすると良い。

使用上の注意点

仕組み上、コントローラーの切断ではなくBluetoothバイス全体の切断をしている。

具体的にはキーボード、Apple Pencil、イヤホンなど別のBluetoothバイスも一度切断されてしまうので注意。

各デバイスを再度登録する必要はないものの、再度接続する必要はあるので注意してほしい。

ただし、Bluetoothバイスの電源を落とす≒切断で、Bluetoothバイスの電源を入れる≒再接続であるため、よほどのことが無い限り実用上の問題は発生しないはず。

Q、対応しているコントローラーは?

A、Bluetoothで無線接続しているコントローラーなら全部対応している。

自分はPS4コントローラーを使っているが、別にPS5のコントローラーでもXBoxのコントローラーでも問題無く動くはず。

Q、コントローラーだけ切断できないの?

A、不可能。

悲しい。ただし記事執筆時点での話(2022/06/22時点)。

ショートカット側に特定デバイスだけ切断する機能が実装されていないので、こうやって実装している。

 

どうしてもコントローラーだけ切断したいという場合、正規の手順、すなわち

設定 > Bluetooth > 自分のデバイス > 「コントローラー名」のiマーク >  このデバイスを切断する

という手順を踏まないといけない。

これがとても面倒だったので自動化したのだが、こちらじゃないと困る人はこの手順を踏んでほしい。それかiOS16で改修されるのを待ちたいところ。

崩壊3rdの課金効率(水晶・ギフトコイン)を計算する会 in 2022年初夏

まとめ

  • 回せるガチャ回数に限って考えた場合、基本的には1回限定パック > ログインが必要なパック > 初課金時おまけのついた水晶 > 期間限定パック >= 2回目以降課金時の水晶の順で効率が良い。
    • 具体的にはLv○○特別パックとログイン時にガチャチケットがもらえる○○補給週間パックはめちゃくちゃ効率が良い。まず課金するならここからがよい。

 

前提

崩壊3rdは仮想通貨(いわゆる石、ジュエル)が2つ存在している。

一つは水晶。これが普通のジュエル。ガチャを回すのに使う。

 

もう一つがギフトコイン。これが特殊なやつ。これを消費することでパックが買える。普通のゲームだと有償ジュエル限定でパックを買えることが多いが、それをまるごと別の消費リソースに分けているところが特徴的。

 

普通に考えたらギフトコイン経由でパックを買うのがお買い得そうだけど、本当にそうなのか分からないので試しに計算してみることに。

パックの中にはガチャチケットと水晶のセットなんかもあったりするので、わりとごちゃついている。そのあたりも全部まとめてパック1つ買うごとにガチャが何回いくらで回せるかに換算して整理する。

 

計算方針

基本方針として、期待値がどうとかで途中で欲しいキャラ・装備が出ることは一切考えない。天井に如何に安く到達するかをベースに考える。なので、ガチャ1回あたりにかかる金額が低い順を計算する。

また、限定ガチャ(限定の戦乙女補給、装備補給)の回転数ベースでしか計算しない。そして、おまけの獲得アイテムについて考えないという雑な計算をしている。ご了承いただきたい。

 

計算

細かい計算は以下スプレッドシートを公開しておくのでそちらを見てほしい。

結果の表だけ抜粋する。

docs.google.com

 

あくまでガチャ1回あたりの価格を考えた場合、最初はプレイヤーごとに1回限定で存在しているLv特別パックをギフトコイン経由で買えば良い。もし既にゲームを続けるつもりがあるならログインが必要な補給週間パックを買うのも良い。初課金のおまけがついた水晶に手を出すのはその後で構わない。

 

期間限定パックはおまけがポイントになっていて、自分で交換するものが選べる。

着せ替えがあったり、特典交換カードなるもの経由でさらに交換ができたりするので、こっちにも欲しい物があるなら、初課金水晶をスルーして期間限定パックを買うのも良い。

 

また、分かるとおり、キャラより装備の方がお買い得なパックが多い。要するにパックなんて準備しなくてもキャラ回す人は回すってことなんだろうし、キャラだけ欲しい人はキャラガチャチケットが入っているパックだけ買ったら一目散に水晶に手を出すで良い。私もこの後そうする。

 

 

以下、おまけ

以下、ソシャゲプランナーおじさんというかただのオタクが蛇足をだらだら書いている。興味がある方がいたらお読みいただければと思います。

 

なんでこんな仕様なの(水晶とギフトコイン分けているの)?

正直ちゃんとは分からない。シンプルに考えると、分けた方が売り上げは伸びるからかも?とは思った。

ガチャで余った有償ジュエルがパック購入に使えない。そのため、ギフトコインをわざわざ買う必要がある。結果売り上げが伸びる。と行った具合。

ただ、ジュエル関連は運営する上で管理や実装、そして検証がとにかく大変なので、種類を増やすというのは相当な覚悟か既に実装済みの基板やらなんやらがないとわざわざ手を出さない気がする。

 

軽く調べた感じ、もともと崩壊3rd自体は有償限定ジュエルのみ使用する施策は無かった模様。だからわざわざ新しく別のものを実装したのかもしれない。

 

何で管理人は急にこんな計算しているの?

本当だよ。なんでこんな面倒なことを計算してんだ俺。

理由は自分がソシャゲのプランナーをしているからではない、単純に限定のアポニアのキャラデザが自分にぶっささっていて、天井まで回すことを考え始めていたからだ。

しかもその過程でフェリスちゃんとかいう可愛いキャラまでみつけてしまった。

勘弁してくれmiHoYo、6月はブライダル、7~8月は水着なんだぞ。いくら飛ばさせる気だ。ここで搾り取りに来るな。マジでフェリスちゃんめっちゃ可愛いからやめてほしい。とおもったら配布キャラかよ。配布で出すクオリティじゃないぞこのキャラ。ほんとありがとう。助かります。

 

今遊ぶなら原神じゃないの?

自分には原神よりも崩壊3rdの方が刺さるところが多いから遊んでいる。

まずキャラデザ。原神よりこっちの方がなんというか、こう、上記したツイートの方からお分かりだと思うが、いろんな意味で自由奔放で爽やかで、もう直球に書くとセクシーでほんと助かります。

それと、原神遊んでからこちらを遊ぶと移動やらワープやら無しでサクサク戦闘できてテンポが良くて全部これでいいじゃんってなっちゃう。

 

ゲームスピードも原神より崩壊3rdの方が上で、派手なエフェクトでばんばかざくざく敵を切り刻めるのがとても気持ちが良い。しかも演出は原神にひけを取らないmiHoYoお得意の格好良さ。

youtu.be

これ見てよ、めっちゃ可愛いし格好良くない?(2:30ごろからです)。こういうのバンバカ出てくるからね。お試しで使えるキャラとかもうすんごいよ。なんでバイクからビーム出てるんだ、とかあるからね。

 

そして、運用して5年も経過しているだけあって、初心者の誘導もめちゃくちゃ丁寧にしてくれる。自分はこのゲーム遊び始めるのはもう4回目ぐらいだが、多分一番迷わず遊べている。

配布キャラをミッションで段階的に1パーティまるごと配ってくれるし、その強化過程もそれぞれミッション課されている。また、キャラ同士の有効な攻撃の組み合わせも専用のチュートリアルで教えてくれる丁寧さ。

正直、リリースから5年以上経っているゲームに今から手を出すなんて、って思っていたし、普段仕事する上でもそういうお客さんがいるってことはあまり考えられていなかった。

だが、ここまで丁寧に誘導されるならプレイし続けたいと思ったし(崩壊3rdが膨大なコンテンツ量を持つタイトルだとはいえ)他タイトルもこれぐらい丁寧に誘導してあげるべきだとも思った。

 

まとめ

計算した結果を共有する記事だったはずなのに、なんだか後半は布教記事みたいになってしまった。いずれにせよ、自分には学びが多かったし、単純に楽しめているので今後もプレイを続けようと思う。やっぱり天下のmiHoYo様ですわ。

Twitter API審査に通ったので内容を共有します

結論4つ

  • 使用するAPIと使用しないAPIを明記する。特に絶対にしないことを書くと分かりやすくて良いらしい。
  • 具体的な処理を明記する。APIをN分にN回叩く、上限が来たらN分休む、など。Twitterが気にしているのはサーバにどれぐらい負荷がかかるかだと思われるため。
  • 分析する手法ではなく分析する要素を列挙する。いいね数、本文、ツイートしたアカウント等。
  • 分析結果の利用方法も明記する。公開非公開、公開するならどのページか等。

 

メールでやりとりを何度かしたあと、申請通りました。

特に日本語で自分のように個人で分析目的で申請した記事が見当たらなかったので書いておきます。参考になれば。

 

例文

自分が通ったときの内容を公開しておきます。

あくまで自分が通ったもので、これをまるごと真似したからと言って通るとは限りませんのでご了承ください。

Twitter APIを使用する目的
 コーディングの勉強、とくにWebAPIの使用方法
 ツイートの収集とその分析

コンテンツを獲得・分析するの手法
 以下ツールを使用予定
  Python
  MeCab(Word-separation for Japanese)
  Pandas(Python Lib)
 TwitterのStandard Search API or Premium Search API を実行する
 特定のハッシュタグを含むツイートを集める
 APIの実行頻度はプログラムの実行ごとに、1分に1回とする
 API上限に到達した場合はプログラムを20分スリープさせる


以下は絶対に行わない
 ツイートする
 いいねする
 リツイートする
 フォローする
 その他、SearchAPI以外のAPIは一切使用しない予定

コンテンツの分析内容
 ツイートのうち、以下を分析対象とする
 ツイートのID
  インデックスとして用いる
 アカウントのID
  同じユーザーが何個ツイートしたかを確認する
 テキスト
 添付画像
 添付画像のURL
 ツイートの「いいね」数
  もし「いいね」が多い場合、そのテキストは優れているので、重みを付けたいため

 

TwitterコンテンツをTwitter以外では表示しない
どこにも表示せず、個人で使用する予定

こんな感じで箇条書きにしました。3回目の再審査で要求された情報が上記見出しの部分だったので、こんな風に書きました。改めて見るとこっちの方が分かりやすくていいっすね。

 

ちなみにググると他の方々は日本語でやりとりできていたみたいなのですが、私はなぜかメールが英語で飛んできていたのでやりとりは全部英語でやりました。

DeepLで英語にしてちょいちょい直しただけですが、それでもイケるっぽいです。DeepL最高。

 

再審査になったときに書いていた内容

  • 収集対象の期間(N月N日以降のツイートを取得する)
  • ツイートの分析方法(共起頻度を数えて~とかそういうの)
  • データを集める目的(このワードで検索してツイートを集めれば、○○が含まれるとおもうから、どうのこうの)

APIの使用目的やそれがどれぐらい計画されているかを気にしているのだと思って、最初はこの辺を書いていましたが、結果2度ほど再審査になりました。

今思うと、結論に書いてた内容の方がTwitterにとっては重要なので、そりゃそうだなって感じです。コミュ力が試される。。。まだ足りぬ。。。

 

以上、共有。誰かの参考になれば幸いです。

 

補足:申請にかかった時間

やりとりにかかった時間はこんな感じでした。

  • 初日 12時 申請
  • 初日 18時 Twitterから返事(再審査するからメールしてね)
  • 初日 20時 返信
  • 初日 21時半 Twitterから返事(もう一回審査したいから詳細書いてほしい)
  • 2日目 14時 返信
  • 2日目 17時 Twitterから審査通過通知(いいじゃん!申し込みありがとうな!)

 

昔はけっこうかかっていた見たいですが、今はめっちゃスピーディに対応してくれます。これだけ早く対応してくれるTwitter社に感謝。

 

参考URL

先人たちの知恵です。こういうの本当に助かります。ありがとうございます。

皆さんもこれ見て申請通ったら、後の人の為にブログとか書いてくれると嬉しいです。

zenn.dev

qiita.com

qiita.com

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のショップなんかは多分インゲーム側で、普通ショップってアウトゲーム扱いになると思うんだけど、アレはインゲームの中に存在していて、買ったものがそのままインゲームに反映されるから。

 

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