UnityにはUnity Recorderという、エディタ上でプレイしているゲームの画面を録画して、ムービーにしたり、それとも連番の画像にしたり出来る、大変に便利なソフトがpackage mangerからインストール出来る。
ワタクシ、これをとても便利に使っていたのだけど、ある日、突然mp4が作れないと、Recorder君が文句をブー垂れてくるようになった。
Movieに "!"の赤マーク が出て、録画させてくれない。
さっぱり理由が分からず、パッケージの再インストールしてみたり、イロイロ試したのだけど、復帰しないので、仕方なく、最近、動画も撮影できるようになったマイクロソフトご謹製のスニッピングツールを使って録画していた。
だが、ゲーム画面を録画したいのに撮影できないのはマジ困るので、しばらく理由を調べていたところ、信じられないほど簡単な原因だった。
Unity Recorder は縦横のどちらかの解像度が奇数になった画面では録画は出来ない
全く当たり前の話なのだけど、どうして気がつかなかったのか?
その理由は最初に出したスクショにある。なんも考えずにunity recorderを出すとスクショぐらいのウインドウとして出るのだけど、それだとエラーメッセージが表示されないのだ。
ウィンドウを大きくすると…
なんと、一番下にエラーメッセージが出ているのである。
気がついたときは 「あれ? インターフェースのスクロールバーの下が妙に空いてるぞ?」 と思って、ウィンドウを広げたら、このエラーが出てきたという顛末。
なんてこったい。
ところでどうしてこんなことになったのか?
まず、僕はGame WindowをFree Aspectにしていた。
理由は簡単でイロイロないただけないスマホの縦横比でも正しくUIが動作するかの確認をするとき、適当にサイズをいじる方が手っ取り早かったからだ。適当にいじって変なサイズにしてUIが正しく整列していれば、アンカー周りにバグがないことがわかる。
そして運悪くGame Windowの縦か横のレンダリングサイズが奇数になると、このエラーが発生するわけである。
この問題を回避するには--
- RecorderのinputにMatch Window Sizeを使わない
- 縦横比のセットをたくさん用意する
- いじって確認したら、最も使うアスペクト比に戻す
といったところだと思うが、わかってしまえば、どってことのないエラーなので、ま、こんな笑っちゃうエラーで何日も悩まされることもあるってぐらいのエピソードにしておきたい。
ところで、これを思わずtwitter(X)に書いたとき、元unityの小林さん曰く。
あー、この機能はそういうことのために用意されていたんですね、と理解したのであった。