Unity2Dで3Dアセットを透過撮影してアイテム画像にする方法

Unity3Dアセットを2Dで利用する画像 ゲームの作り方
Unity3Dアセットを2Dで利用する

🔍2Dの脱出ゲームを作っていると、鍵やハサミなどのアイテムをリアルに見せたい場面があります。
そんなときに便利なのが Unityの3Dアセットを配置して撮影し、透過PNGとして利用する方法 です。

この記事では、Unity2Dのプロジェクト内で3Dオブジェクトを配置し、アイテム画像として活用する手順を解説します。

撮影用のオブジェクトを準備する

  1. ヒエラルキーに空のオブジェクトを作成し、名前を「ItemCaptureRoot」にする
  2. その子に、アセットの3Dアイテムをドラッグして配置
  3. サイズや回転を調整して「机の上」や「引き出しの中」にあるような自然な配置にする
Unity2Dに3Dアセットを配置した画像

※アイテム「はさみ」は無料アセットのOffice Supplies Low Polyを使用してます

ライトを追加して明るさを調整

3Dオブジェクトをシーンに配置すると、そのままだと黒く見える場合があります。
これはライトが当たっていないためなので、以下を設定します。

  • 「ItemCaptureRoot」の子として Directional Light を追加
  • Rotationを調整し、アイテムの上から光が当たるようにする(例:X=90, Y=0, Z=0)
  • 必要に応じて Intensity(強さ) を1.5くらいに上げる
Unity2Dに3Dアセットを配置したアイテムにディレクションライトを追加して明るくした画像

RenderTextureを作成する

  1. プロジェクトウィンドウで右クリック
  2. 作成 → レンダリング → Render Texture を選択
  3. サイズを 512 × 512 に設定(大きすぎると重くなるので注意)
Unityにレンダーテクスチャを追加した画像

撮影用カメラを設定する

  1. 「ItemCaptureRoot」の子に Camera を追加
  2. 設定を以下のように変更
    Projection → Orthographic(平行投影)
    Clear Flags → Solid Color
    ・背景色の Alpha を 0 にして透明化
  3. Target Texture に作成したRenderTextureをアタッチ
UnityのカメラのTarget Texture にRenderTextureをアタッチした画像

カメラプレビューを表示する

もしシーンビューにカメラプレビューが出ない場合は:

  • シーンビュー右上の ・・・ をクリック
  • Overlay Menuを選択
Unityでオーバーレイメニューを表示する方法
  • Camera をクリックしてONにする
Unityのオーバーレイメニュー

・プレビュー対象のカメラを選択する

Unityのプレビュー対象のカメラを切り替える画像

撮影スクリプトを作成する

アイテムをPNGとして保存するスクリプトを作成します。

using UnityEngine;
using System.IO;

public class ItemCapture : MonoBehaviour
{
public Camera captureCamera;
public RenderTexture renderTexture;

[ContextMenu(“Capture Item”)]
public void CaptureItem()
{
RenderTexture currentRT = RenderTexture.active;
RenderTexture.active = renderTexture;

captureCamera.Render();

Texture2D tex = new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.RGBA32, false);
tex.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
tex.Apply();

string path = Application.dataPath + “/CapturedItem.png”;
File.WriteAllBytes(path, tex.EncodeToPNG());

RenderTexture.active = currentRT;

#if UNITY_EDITOR
AssetDatabase.Refresh();
#endif
Debug.Log(“キャプチャ保存: “ + path);
}
}

インスペクターで設定

  • ItemCapture スクリプトを ItemCaptureRoot にアタッチ
  • captureCamera に撮影用カメラを指定
  • renderTexture に作成したRenderTextureを指定

撮影してPNG保存

  • インスペクター右上の ・・・ メニューから Capture Item をクリック
Unityのコンテキストメニューから選択する画像
  • Assets フォルダに CapturedItem.png が保存される
  • ファイル名を変更して管理(同名のまま撮ると上書きされる)
アセットフォルダに追加された画像

まとめ

Unity2Dのゲームでも、3Dアセットを配置して透過PNGとして撮影すれば、リアルなアイテム画像を簡単に作成できます。
特に脱出ゲームなどでは「鍵・工具・家具の部品」などを自然に見せたいときに役立ちます。

コメント

タイトルとURLをコピーしました