撮影の流れ
対象バージョン: v0.10.0
Unityにおける"再生中"とは、Unityエディタ上部の再生ボタン(▷)を押している状態を指します。
この状態でのみPhysBoneが動作しますが、非再生時にも撮影は可能です。
また、Av3Emulatorが導入されていると、アバターのVRChat上での動作を再現することが出来ますが、ポーズの編集は出来ません。
Gesture Managerは軽量ですが簡易的な再現にとどまるため、複雑なギミックなどはAv3 Emulatorの使用をおすすめします。
背景画像を読み込む
- Background セクションから背景にしたい画像を読み込みます。
- 通常はExif(写真のメタデータ)に 35mm換算焦点距離 が記録されているので、焦点距離が自動で設定されます。
Exif情報が欠けている場合は手動で設定する必要があります。
Windowsの スマートフォン連携 アプリ、Discord経由 など、スマホ→PCの転送手段によってはExif情報が欠落する場合があります。 その場合は、他の送信方法を試してください。

Exifが欠落している、または記録されていない場合
- Androidはこちらの方法が確実です。ギャラリーアプリで表示される数値は変換されていない場合があります。
- iPhoneは標準のギャラリーアプリで表示される
xx mmが35mm換算焦点距離です。- もし記録されていない場合は、メーカーサイト等からズーム1倍での換算距離を調べる必要があります。
- デジカメや一眼レフなどのカメラは、カメラ本体の写真一覧で確認するか、レンズのスペックとセンサーサイズから計算してください。
確認した焦点距離を Camera セクションの 焦点距離 に入力してください。
-
fSpyについて(任意)
fSpyは写真からカメラの位置や回転を推定するツールです。写真の消失点がはっきりしている場合、正確にカメラの位置と回転を推定してくれます。
外部アプリを使用します。詳しくはこちら。 -
「プレビュー解像度倍率」を下げることで、編集中のみ低解像度で描画し、負荷を軽減することができます。
- 背景画像が高解像度の場合、操作中のプレビューが重くなる場合があります。
- 非再生時は編集をやめると自動でフル解像度で描画されます。
- 再生時は常にこの解像度で描画されます。BloomやDoFへの影響が大きいため、撮影前の確認をおすすめします。
カメラを配置する
- Camera セクションからカメラを操作し、現実の撮影時の高さを思い出してy座標を設定します。
カメラオブジェクトを直接操作することも出来ます。
目線位置でカメラを構えた場合は身長-10cm、胸の場合は…というふうに感覚を覚えておくと設定しやすいです。
カメラの回転についても同様に、カメラの傾き(特にチルト=前後の傾き, x軸回転)をおおまかに覚えておいてください。

この例では、カメラ高さ1.2m、チルト0度(水平)で撮影された写真を使用しています。
アバターを配置する
- アバターの位置や回転を立たせたい位置まで操作します。
- アバターの身長はそのままだと現実空間に対して小さすぎるかもしれません。
アバターのスケールを少し大きくするか、Camera セクションの見かけの大きさスライダーで調整することが出来ます。
この例では、アバターは1.2倍(身長150cm)に設定しています。
アバターとカメラ、どちらを動かせばいい?
カメラとアバターのどちらを動かしても、同じように写真上でのアバター立ち位置を移動することはできます。
ただし、おすすめは カメラは高さ(Y座標)と回転のみを調整し、アバターを水平移動させて位置を合わせる方法です。 事前にアバタースケールを調整しておきます(身長を決定するイメージ)。
アニメーションを適用する
ポージングツール、または用意したアニメーションを使用して、アバターを撮影したいポーズにします。
- Animation セクションから、ポージングツールで作成したアニメーションを適用します。
AvaPo! を使用している場合は、そちらから適用しても構いません。 - ポーズスロットではヒューマノイドポーズのみ適用されます。
- ジェスチャースロットには手のアニメーションのみ適用されます。
- モードを「左右別」にすると、左右の手に別々のジェスチャーを適用できます。
- FXスロットは上記以外の表情や尻尾ボーンのアニメーションを適用できます。
- FXスロットは複数追加できます。キーが重複する場合は下のものが優先されます。


ライティングを調整する
- Lighting セクションの
メインライトを選択し、光源の方向、色、光の強さを調整します。 シャドウディスタンスでは、影の解像度を設定できます。- 数字が小さければ解像度が高くなりますが、描画距離が短くなります。逆に大きいほど描画距離が長くなりますが、解像度が下がります。
- 数字を小さくしすぎると、遠くの影がチラつく場合があります。この場合、
Shadow Catcher Floorのスケールを小さくしてください。
- 環境光を設定します。いい感じの陰色になるように設定します。
- 後でポストプロセスでも調整できるので、ここではざっくりでも大丈夫です。
- Avagraphyでは、それぞれのライトに付いている
AvagraphyLightコンポーネントで投影の色や強さ、減衰を設定します。
影の色は、実際の影色をスポイトでコピーし、HSVのV(明度)を少し下げるとなじむかもしれません。

ライトを追加する (任意)
- 投影用のライトを複数追加できます。種類は、ドロップダウンから選択してください。
Point: 全方向に光を放つ点光源Spot: 円錐状に光を放つスポットライトDirectional: 無限遠から平行に光を放つ平行光源
- 追加後、各ライトの位置や回転を調整し、
AvagraphyLightで影の設定を行ってください。

本影を調整する (任意)
- 本影は、
投影床(+追加した受け面) オブジェクトとアバターメッシュの近さによって影を表示する機能です。
例えば、足元と地面の接触面が暗くなる現象を再現する事ができます。 - Contact Shadow セクションから、接触影の設定を行います。
影の色: 接触影の色。最大距離: 接触計算に使用する距離。ガンマ指数: 値が大きいほど接触面からの距離が遠い部分の影が濃くなります。ぼかしの大きさ: 接触影のぼかしの広さ。

アバターを遮蔽する / 影の受け面を追加する (任意)

遮蔽面
遮蔽面をアバターの前に置くことで、アバターを遮蔽を再現することが出来ます(=アバターが透過して背景画像が見える)。
例えば、アバターの立ち位置の前に柱がある場合、Cylinderオブジェクトを置くことでアバターが柱に遮られているような写真を撮ることができます。
- アバター深度膨張 (px):
遮蔽するアバターのアウトラインが太い場合、遮蔽している部分からアウトラインが見えてしまう場合があります。
その場合はこの値を大きくすると改善します。 - Scene Surface セクションの
形状から任意の形の遮蔽体を選び、遮蔽面を生成ボタンで生成してください。- キューブ: 立方体, スフィア: 球, カプセル: 端が丸い円柱, シリンダー: 円柱, クアッド: 四角形平面
- チェックボックスを有効にすると、遮蔽体がGame Viewに表示されるようになります。配置の際に活用してください。


この例では、柱の前にシリンダー、足元に球体の遮蔽体を配置しています。
影の受け面
影の受け面を配置することで、壁などのアバターの影が落ちる面を追加できます。
遮蔽面と同様に形状を選び、受け面を生成 ボタンで生成してください。
反射面を配置する (任意)
- Reflection セクションから、反射面の設定を行います。
反射面を生成ボタンを押し,生成されたオブジェクトを選択します。- 反射面の位置を調整します。鏡や床など、反射させたい面に合わせて配置してください。
- 反射面には不透明度の減衰や、反射像をノーマルマップで歪ませる機能があります。
色味: 反射像が白に近いほど設定した色になります。線形補間: 反射像全体を均一に設定した色に近づけます。法線マップ: 必ず法線マップとして設定されたテクスチャを使用してください。法線の減衰開始距離: 反射面からの距離がこの値を超えると、法線マップの影響が減衰し始めます。法線の減衰の強さ: 値が大きいほど距離による減衰が強くなります。法線マップのスケール: 値が大きいほど反射像が細かく歪みます。
この例では、床に反射面を配置し、濡れた砂浜の反射を再現しています。
PhysBoneをなびかせる (任意)
PhysBoneを風になびいているように見せることができます。再生中のみ有効です。
[Avagraphy]オブジェクトの中のWindSimulatorを選択します。- ボタンを押すと、PhysBoneが風に吹かれているように動きます。
- PhysBoneの
Immobileの値が考慮されます。風の動きの差が大きすぎる場合、手動で各PhysBoneのImmobileの値を揃えるか、Immobileの適用度を下げてください。 - 風の方向や強さ、根本から末端までの影響度カーブを設定可能です。
風の方向ベクトル: 風の方向をワールド空間で指定します。風の強さ: 風の強さを調整します。。風の影響度カーブ: PhysBoneの根本から末端までの影響度をカーブで調整します。Immobileの適用度: 各PhysBoneのImmobileの値をどの程度反映させるか。0にするとImmobileの値が無視され、全てのボーンが同じ動きになります。除外するPhysBone: 風の影響を受けないPhysBoneを 事前に 指定します。影響を受けるPhysBone: 再生時、指定されたアバター内のPhysboneが 自動 で追加されます。


ポストプロセスを調整する
- PostProcess セクションのフィールドをダブルクリックし、ポストプロセスの設定を開きます。
ポストプロセスはアバターから背景には影響を与えますが、逆はありません。(例えば、アバターのBloomは背景に滲みますが、背景からアバターに滲むことはありません) - 各項目の左上のチェックボックスで有効/無効を切り替えられます。
Bloom: 光のにじみ。オールドレンズで撮影した写真等で特に馴染みます。Color Grading: 全体の色味を調節します。Temperature: 色温度。寒色-暖色の調整ができます。Tint: 色合い。緑-紫の調整ができます。Post Exposure: 露光量。明るさを調整します。Color Filter: 色フィルタ。全体の色味を変えることができます。暗くしたりもできます。Hue Shift: 色相を回転させます。Saturation: 彩度を調整します。Contrast: コントラストを調整します。
Grain: ISO感度の高い写真では少し乗せると写真らしさが増します。Colored: ノイズがカラーになります。Intensity: ノイズの強さを調整します。Size: ノイズ粒子のサイズを調整します。Luminance Contribution: ノイズの明るさを調整します。小さいほど暗い部分でのノイズが少なくなります。
Chromatic Aberration: 色収差。レンズの収差を再現します。Intensity: 色収差の強さを調整します。
Ambient Occlusion: アンビエントオクルージョン。物体の接触部分の影を再現します。Contact Shadowとは別物です。Intensity: アンビエントオクルージョンの強さを調整します。Thickness Modifier: 物体の厚みを調整します。大きいほどAOの範囲が広くなります。
Depth of Field: 被写界深度。ピントの合っている範囲を調整します。Focus Distance: ピントの距離を調整します。Aperture: 絞り。小さいほどピントの合う範囲が狭くなります。Focal Length: 焦点距離。大きいほど背景がぼけやすくなります。
Vignette: ビネット。周辺減光を再現します。Intensity: 強さを調整します。Smoothness: ぼかし具合を調整します。
- この設定はシーンを移動するとリセットされます。 保存したい場合は、
Cloneボタンを使用して保存してください。
シーンを再生する(任意)
- 再生中でのみPhysBoneが動作します。また、加えてGesture ManagerやAv3 Emulatorを使用している場合は、アバターの動きを再現することができます。
- 一部のアバターや衣装(例: Lapwing)は、服の構造がPhysBoneに依存しており、再生中でないと正しく動作しない場合があります。この場合は再生してから撮影する必要があります。
- 再生中は常に背景セクションの「プレビュー解像度」で描画されます。フル解像度で確認したい場合は、撮影セクションの「フル解像度でプレビュー」ボタンを押すと、フレームが停止した状態でフル解像度で確認できます。
解除したい場合はもう一度ボタンを押すか、何らかの編集をすると自動で解除されます。

撮影する
画が完成したら、ボタンを押して撮影します。
- アンチエイリアス: アバターのジャギーを抑える設定です。背景が低解像度の場合に特に有効です。 高解像度の画像ではx2程度で充分で、無駄に高くてもプレビュー処理が重くなる場合があります。
- 保存形式:
- JPGは写真の一般的な形式で、非可逆圧縮ですが画像サイズをかなり抑えられます。スライダーで保存品質を設定できます。
- PNGは可逆圧縮で、品質を保ったまま保存できますが、ファイルサイズが大きくなりがちです。
#Avagraphy のハッシュタグでSNSに投稿していただけると嬉しいです!

秋葉原にしなのちゃんが降臨!
詳細設定
確定描画までの待ち時間 (秒):
(非再生時) 編集をやめてからフル解像度で描画されるまでの待ち時間を設定できます。アイドル時にリソースを解放: フル解像度プレビュー後、一定時間操作がない場合にVRAMリソースを解放するかどうかを設定できます。チェックがない場合はVRAMを解放しませんが、リソースの再生成負荷はありません。
解放までの時間 (秒)で解放までの待機時間を設定できます。短いほどVRAM確保の時間は短くなりますが、短すぎると再生成負荷が掛かる場合があります。