あめ子の学習帳

UnityRecorderでアバターなどの透過画像を撮影する-unity2018編

やっほー、わたあめの妖精わたあめ子です。

VRChatへアバターをアップロードするためのunity、その対応バージョンが2018になってからというもの、少し困ったことが起こっていました。

UnityRecorderが使えない!!

アセットストアからUnityRecorderをインポートしてきても動かない!!

Vtuberなら誰もが撮る自分の透過画像を、今まではUnityRecorderで撮っていたのですがそれが使えないのです。
困りました。

この度お友達の八ッ橋まろんちゃんにヒントをもらって解決しましたので手順を書き残しておきます。(いつもありがとう!)

UnityRecorderをインストールする

まずはUnityRecorderをインストールします。

このとき、2018からはアセットストアからのインポートではなくなっている点に注意です。

罠じゃん…

画面上部のWindow>package Managerを開きましょう。

package Managerが開いたら、一覧からUnityRecorderを探し…てみても、ありません。

Advancedをクリックし、「Show preview packages」にチェックを入れます。

チェックを入れてからスクロールして探してみるとUnityRecorderがあるので、インストールします。

これでUnityRecorderのインストールは完了です。

下準備

UnityRecorderを起動する前に、撮影のための準備をしておきます。

カメラの背景設定を変更する

このあと透過画像を撮影するために使う、Main Cameraの設定を変更します。

Main CameraのClear Flagsの部分を、SkyboxからSolid Colorに変更してください。
Skyboxのままだと背景がSkyboxのまま撮影されてしまい、透過されません。

画像のサイズを決める

透過画像をどのくらいのサイズで書き出すかを決めておきます。

gameタブを開き、↓の赤枠の部分から画像の大きさを設定します。

ピクセル数で入力したい場合は、一番下の「+」をクリックすると好きな数値を入力できます。
一度入力した数値は保存され、次回以降も選択できるようになります。

UnityRecorderを使って透過画像を撮る

準備ができたら、次はUnityRecorderを起動します。

画面上部のWindow>General>Recorder>Recorder Windowをクリック。

UnityRecorderのウインドウが開きます。

+Add New Recordersをクリック。

今回撮影するのは画像なので、Image Sequenceを選びます。

するとこんな画面になるので、赤枠のところを設定していきます。

Record Mode

UnityRecorderは動画やGIFアニメなども撮影できるのですが、Record Modeは「どこからどこまで撮る?」の設定をするところです。

画像なので「Single Frame」を選びます。
アニメーションを付けて、任意のフレームを設定すれば動きのある画像も撮影できそうです。

少し試してみたのですがManualでは停止した時点、Frame Intervalでは最終フレームの画像が書き出されているようでした。

Format

透過画像を撮影するので、PNGを選びます。

Capture Alphaにもチェックを入れましょう。
ここにチェックを入れることで、透過してくれます。

始めはチェックが入れられませんが、後述の「Capture」を設定するとチェックが入れられるようになります。

File Name

始めはimage_<Frame>が入力されていますが、<Frame>を消して<Take>にするのがオススメです。

「+Windows」をクリックすると色々なタグを付けることができるので、そこから<Take>を選んでください。

FrameやTimeなどだと、同じフレーム数や同じ時間に撮った画像は上書きされてしまうので、<Take>がオススメです。

すぐ下のPathから、画像を保存する場所も変更することができます。

Capture

どこからの視点を参照して画像をキャプチャするかの設定です。

ここを「Target camera」にし、sourceを「Main camera」にします。

 

すべての設定ができたら、「START RECORDING」で撮影しましょう。

Pathの部分で設定してあるフォルダに透過画像が保存されているはずです。

 

おつかれさまでした!