Unity¤Ë´ØÏ¢¤¹¤ëµ­»ö¤Ç¤¹

¡¡¥²¡¼¥à¤ÎÌ¥ÎÏŪ¤Ê¥Ó¥¸¥å¥¢¥ë¤ò¼Â¸½¤¹¤ë¤¿¤á¡¢¤¤¤¯¤Ä¤«¤Î½ÅÍפʥƥ¯¥Ë¥Ã¥¯¤¬¤¢¤ê¤Þ¤¹¡£

¡¡¤³¤Îµ­»ö¤Ç¤Ï¡¢°Ê²¼¤ÎÍ×ÁǤ˾ÇÅÀ¤òÅö¤Æ¤Æ¾Ò²ð¤·¤Þ¤¹(UI ´ØÏ¢¤Ë¤Ä¤¤¤Æ¤Ï¾Ê¤¤¤Æ¤¤¤Þ¤¹)¡£



£±¡¥Skybox


¡¡Skybox¤Ï¥²¡¼¥à¤ÎÊ·°Ïµ¤¤òÂ礭¤¯ÊѤ¨¤ë½ÅÍפÊÍ×ÁǤǤ¹¡£
Skybox¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢¥²¡¼¥à¤ÎÇطʤ˥ꥢ¥ë¤Ê¶õ¤ä·Ê¿§¤òɽ¼¨¤Ç¤­¤Þ¤¹¡£

¡¡[Window ¢ª Rendering ¢ª Lighting] ¤«¤éÀßÄê²èÌ̤ò³«¤­¡¢[Environment] ¥¿¥ÖÆâ¤Î [Environment] ¤è¤êÀßÄê¤Ç¤­¤Þ¤¹¡£





¡¡Skybox Material ¤ÎÉôʬ¤Ë Skybox ÍѤΥޥƥꥢ¥ë¤òÀßÄꤹ¤ë¤³¤È¤Ç¡¢Êѹ¹¤Ç¤­¤Þ¤¹¡£






¡¡¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¡¢Æ°Åª¤Ë Skybox¤ÎÀßÄê¤òÊѹ¹¤¹¤ë¤³¤È¤â½ÐÍè¤Þ¤¹¡£

// Êѹ¹¤·¤¿¤¤¥Þ¥Æ¥ê¥¢¥ë¤ò¥¢¥µ¥¤¥ó
[SerializeField] private Material newSkyboxMaterial;

// Skybox¤òÀßÄꤹ¤ë
RenderSettings.skybox = newSkyboxMaterial;


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥É¥­¥å¥á¥ó¥È
Sky


£²¡¥Fog


¡¡¥Õ¥©¥°¤Ï¡¢¥²¡¼¥à¤Î±ü¹Ô¤­´¶¤ò¶¯Ä´¤·¡¢Ê·°Ïµ¤¤ò¹â¤á¤ë¤¿¤á¤Î½ÅÍפʥ¨¥Õ¥§¥¯¥È¤Ç¤¹¡£

¡¡Skybox ¤ÈƱ¤¸¤¯¡¢[Window ¢ª Rendering ¢ª Lighting] ¤«¤éÀßÄê²èÌ̤ò³«¤­¡¢[Environment] ¥¿¥ÖÆâ¤Î [Other Settings] ¤è¤êÀßÄê¤Ç¤­¤Þ¤¹¡£

¡¡ºÇ½é¤Ï Fog ¤Î¥Á¥§¥Ã¥¯¤¬³°¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤Á¤é¤Ë¥Á¥§¥Ã¥¯¤òÆþ¤ì¤ë¤³¤È¤Ç¡¢¥Õ¥©¥°¤¬Í­¸ú¤Ë¤Ê¤ê¤Þ¤¹¡£

¡¡


¡¡Color ¤Ç¥Õ¥©¥°¤Î¿§Ì£¤ÎÄ´À°¡¢Density ¤Ç¥Õ¥©¥°¤Î¶¯ÅÙ¤òÀßÄꤷ¤Þ¤¹¡£

¡¡Â¾¤ÎÀßÄê¹àÌܤˤĤ¤¤Æ¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¤Ê¤É¤ò»²¹Í¤Ë¤·¤é¤Ù¤Æ¼ÂºÝ¤Ë»î¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£

¡¡Skybox ¤Ë¤Ä¤¤¤Æ¤â²òÀ⤬¤¢¤ê¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥É¥­¥å¥á¥ó¥È
Lighting ¥¦¥£¥ó¥É¥¦



¡¡¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤ÆưŪ¤Ë¥Õ¥©¥°¤òÀßÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

// ¥Õ¥©¥°¤òÀßÄꤹ¤ëÊýË¡
// ¥Õ¥©¥°¤òÍ­¸ú²½(false ¤Ç̵¸ú²½)
RenderSettings.fog = true;

// ¥Õ¥©¥°¤Î¿§¤ÎÊѹ¹
RenderSettings.fogColor = Color.gray;

// ¥Õ¥©¥°¤Î¶¯ÅÙ¤ÎÊѹ¹
RenderSettings.fogDensity = 0.02f;


£³¡¥Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Clipping Planes


¡¡Camera ¥³¥ó¥Ý¡¼¥Í¥ó¥È¤Î Clipping Planes ¤òÄ´À°¤¹¤ë¤³¤È¤Ç¡¢¥«¥á¥é¤Î»ëÌîÆâ¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Îɽ¼¨ÈϰϤòÀ©¸æ¤Ç¤­¤Þ¤¹¡£
¤³¤ì¤Ë¤è¤ê¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¸þ¾å¤µ¤»¤Ä¤Ä¡¢¥²¡¼¥à¤Î¸«±É¤¨¤ò¸þ¾å¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£






¡¡Cinemachine ¤Î¾ì¹ç¤Ë¤â¡¢VitualCamera ¥³¥ó¥Ý¡¼¥Í¥ó¥ÈÆâ¤ËÀßÄê¹àÌÜ(Lens Æâ)¤¬¤¢¤ê¤Þ¤¹¡£



¡¡


¡¡¥¹¥¯¥ê¥×¥È¤òÍøÍѤ·¤ÆưŪ¤ËÀßÄꤹ¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£

// ¥«¥á¥é¤Î Clipping Planes ¤òÄ´À°¤¹¤ëÊýË¡(near)
Camera.main.nearClipPlane = 0.1f;

// ¥«¥á¥é¤Î Clipping Planes ¤òÄ´À°¤¹¤ëÊýË¡(far)
Camera.main.farClipPlane = 1000f;


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥É¥­¥å¥á¥ó¥È
Camera component


£´¡¥Occlusion culling


¡¡¥ª¥¯¥ë¡¼¥¸¥ç¥ó¥«¥ê¥ó¥°¤Ï¡¢ÉÔÍפʥª¥Ö¥¸¥§¥¯¥È¤ÎÉÁ²è¤òºï¸º¤·¡¢¥Ñ¥Õ¥©¡¼¥Þ¥ó¥¹¤ò¸þ¾å¤µ¤»¤ë¤¿¤á¤ÎÊýË¡¤Ç¤¹¡£

// ¥ª¥¯¥ë¡¼¥¸¥ç¥ó¥«¥ê¥ó¥°¤Î¼ÂÁõ
OcclusionCulling.generationMode = OcclusionCullingMode.OnDemand;
OcclusionCulling.doesSceneHaveManualPortals = true;

»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥É¥­¥å¥á¥ó¥È
Occlusion culling


£µ¡¥ Reflection Probe


¡¡¥ê¥Õ¥ì¥¯¥·¥ç¥ó¥×¥í¡¼¥Ö¤ò»ÈÍѤ¹¤ë¤È¡¢¥ê¥¢¥ë¤Ê´Ä¶­È¿¼Í¤ò¼Â¸½¤Ç¤­¤Þ¤¹¡£

¥ê¥Õ¥ì¥¯¥·¥ç¥ó¥×¥í¡¼¥Ö¤òÀßÄꤷ¡¢¥·¡¼¥ó¤ÎÈ¿¼Í¤ò¸þ¾å¤µ¤»¤ëÊýË¡¤ò¼¨¤·¤Þ¤¹¡£

// ¥ê¥Õ¥ì¥¯¥·¥ç¥ó¥×¥í¡¼¥Ö¤òÀßÄꤹ¤ëÊýË¡
ReflectionProbe probe = GetComponent<ReflectionProbe>();
probe.RenderProbe();

»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥É¥­¥å¥á¥ó¥È
Reflection Probes


£¶¡¥Light Probe


¡¡¥é¥¤¥È¥×¥í¡¼¥Ö¤ò³èÍѤ¹¤ë¤È¡¢¥­¥ã¥é¥¯¥¿¡¼¤ä¥ª¥Ö¥¸¥§¥¯¥È¤¬´Ä¶­¸÷¤òÀµ³Î¤ËÈ¿±Ç¤Ç¤­¤Þ¤¹¡£
¥é¥¤¥È¥×¥í¡¼¥Ö¤òÀßÄꤷ¡¢ÊªÂΤξÈÌÀ¤ò²þÁ±¤¹¤ëÊýË¡¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹¡£

// ¥é¥¤¥È¥×¥í¡¼¥Ö¤òÀßÄꤹ¤ëÊýË¡
LightProbes.Tetrahedralize(myProbePositions, myProbeCoefficients);

»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥É¥­¥å¥á¥ó¥È
Light Probes


£·¡¥¥Ý¥¹¥È¥×¥í¥»¥Ã¥·¥ó¥°¤ò»ÈÍѤ·¤¿¥²¡¼¥à¥Ó¥¸¥å¥¢¥ë¸þ¾å


¡¡3D¥²¡¼¥à¤Î¥Ó¥¸¥å¥¢¥ë¤ò¤µ¤é¤Ë¸þ¾å¤µ¤»¤ë¤¿¤á¤Ë¡¢¥Ý¥¹¥È¥×¥í¥»¥Ã¥·¥ó¥°¤ÏÈó¾ï¤ËÍ­ÍѤǤ¹¡£
¤³¤ì¤Ï¡¢¥²¡¼¥à¥·¡¼¥ó¤Î¥ì¥ó¥À¥ê¥ó¥°¤¬´°Î»¤·¤¿¸å¤Ë¡¢¥¨¥Õ¥§¥¯¥È¤äÊäÀµ¤òŬÍѤ¹¤ëµ»½Ñ¤Ç¤¹¡£

¡¡Unity¤Ç¤Ï¡¢¥ì¥ó¥À¡¼¥Ñ¥¤¥×¥é¥¤¥ó¤Î¼ïÎà¤Ë¤è¤ê¤Þ¤¹¤¬¡¢Post-Processing Stack¤È¤¤¤¦¥Ä¡¼¥ë¤ò»ÈÍѤ·¤Æ´Êñ¤Ë¥Ý¥¹¥È¥×¥í¥»¥Ã¥·¥ó¥°¤òƳÆþ¤Ç¤­¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
Unity ¸ø¼°¥É¥­¥å¥á¥ó¥È
Post-processing and full-screen effects


£±¡¥ Post-Processing ¤Î¥¤¥ó¥¹¥È¡¼¥ë


¡¡Unity ¤Î¥ì¥ó¥À¡¼¥Ñ¥¤¥×¥é¥¤¥ó¤Î¼ïÎà¤Ë¤è¤ê¡¢Æ³ÆþÊýË¡¤¬°Û¤Ê¤ê¤Þ¤¹¡£

¡¡URP¡¢¤¢¤ë¤¤¤Ï HDRP ¤òÁªÂò¤·¤Æ¤¤¤ë¾ì¹ç¡¢¼«Æ°Åª¤Ë¥¤¥ó¥¹¥È¡¼¥ë¤µ¤ì¤Æ¤¤¤Þ¤¹¤Î¤Ç¡¢¤³¤Î¼ê½ç¤ÏÉÔÍפǤ¹¡£

¡¡Built-in RenderPipeline ¤Î¾ì¹ç¤Ë¤Ï¡¢PackageManager ¤Î UnityRegistry ¤è¤ê Post-Processing ¤ò¥¤¥ó¥Ý¡¼¥È¤·¤Þ¤¹¡£





£²¡¥Post-Processing Volume¤ÎÀßÄê


¡¡Post-Processing Stack¤ò¥×¥í¥¸¥§¥¯¥È¤Ë¥¤¥ó¥Ý¡¼¥È¤·¤¿¤é¡¢¥·¡¼¥óÆâ¤ËPost-Processing Volume¤òºîÀ®¤·¤Þ¤¹¡£¤³¤ì¤Ï¡¢¥Ý¥¹¥È¥×¥í¥»¥Ã¥·¥ó¥°¥¨¥Õ¥§¥¯¥È¤òÀ©¸æ¤¹¤ë¤¿¤á¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ç¤¹¡£

using UnityEngine;
using UnityEngine.Rendering.PostProcessing;

public class PostProcessingController : MonoBehaviour
{
    public PostProcessProfile profile;

    void Start()
    {
        var volume = gameObject.AddComponent<PostProcessVolume>();
        volume.profile = profile;
    }
}


£³¡¥¥¨¥Õ¥§¥¯¥È¤ÎŬÍÑ


¡¡Post-Processing Volume¤òÀßÄꤷ¤¿¤é¡¢¥¨¥Õ¥§¥¯¥È¤òŬÍѤǤ­¤Þ¤¹¡£°Ê²¼¤Ï°ìÈÌŪ¤ÊÎã¤Ç¤¹¡£


£±¡¥¥Ö¥ë¡¼¥à¥¨¥Õ¥§¥¯¥È¤ÎŬÍÑ

using UnityEngine;
using UnityEngine.Rendering.PostProcessing;

public class PostProcessingController : MonoBehaviour
{
    public PostProcessProfile profile;

    void Start()
    {
        var volume = gameObject.AddComponent<PostProcessVolume>();
        volume.profile = profile;

        Bloom bloom;
        if (volume.profile.TryGetSettings(out bloom))
        {
            bloom.enabled.value = true;
            bloom.intensity.value = 1.0f;
        }
    }
}


£²¡¥¥«¥é¡¼¥°¥ì¡¼¥Ç¥£¥ó¥°

using UnityEngine;
using UnityEngine.Rendering.PostProcessing;

public class PostProcessingController : MonoBehaviour
{
    public PostProcessProfile profile;

    void Start()
    {
        var volume = gameObject.AddComponent<PostProcessVolume>();
        volume.profile = profile;

        ColorGrading colorGrading;
        if (volume.profile.TryGetSettings(out colorGrading))
        {
            colorGrading.enabled.value = true;
            colorGrading.temperature.value = 0.5f; // ¿§²¹ÅÙ¤ÎÄ´À°
            colorGrading.saturation.value = 1.2f; // ºÌÅÙ¤ÎÄ´À°
        }
    }
}


£´¡¥¥«¥¹¥¿¥à¥¨¥Õ¥§¥¯¥È¤ÎºîÀ®


¡¡¤Þ¤¿¡¢Æȼ«¤Î¥Ý¥¹¥È¥×¥í¥»¥Ã¥·¥ó¥°¥¨¥Õ¥§¥¯¥È¤òºîÀ®¤¹¤ë¤³¤È¤â¤Ç¤­¤Þ¤¹¡£
¥«¥¹¥¿¥à¥¨¥Õ¥§¥¯¥È¤òºîÀ®¤¹¤ë¾ì¹ç¡¢Post-Processing Stack¤Î¥«¥¹¥¿¥à¥·¥§¡¼¥À¡¼¤ò»ÈÍѤ¹¤ë¤³¤È¤¬°ìÈÌŪ¤Ç¤¹¡£
¤½¤Î¸å¡¢C#¥¹¥¯¥ê¥×¥È¤Ç¤½¤Î¥¨¥Õ¥§¥¯¥È¤òÀ©¸æ¤·¤Þ¤¹¡£

¡¡¥Ý¥¹¥È¥×¥í¥»¥Ã¥·¥ó¥°¤Ï¡¢¥²¡¼¥à¤Î¥Ó¥¸¥å¥¢¥ë¤ò·àŪ¤Ë¸þ¾å¤µ¤»¤ë¤¿¤á¤Î¥Ñ¥ï¥Õ¥ë¤Ê¥Ä¡¼¥ë¤Ç¤¢¤ê¡¢¥¨¥Õ¥§¥¯¥È¤ò¥«¥¹¥¿¥Þ¥¤¥º¤Ç¤­¤Þ¤¹¡£
¥Ý¥¹¥È¥×¥í¥»¥Ã¥·¥ó¥°¥¨¥Õ¥§¥¯¥È¤ò»È¤Ã¤Æ¡¢¥²¡¼¥à¤ÎÊ·°Ïµ¤¤äÈþ¤·¤µ¤ò¤µ¤é¤Ë¹â¤á¤Þ¤·¤ç¤¦¡£


¤Þ¤È¤á


¡¡¤³¤ì¤é¤Î¥Æ¥¯¥Ë¥Ã¥¯¤òÁȤ߹ç¤ï¤»¤ë¤³¤È¤Ç¡¢¥²¡¼¥à¤Î¥Ó¥¸¥å¥¢¥ë¤ò¸þ¾å¤µ¤»¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£


»²¹Í¥µ¥¤¥È
¡ÚUnity¡Û̵ÎÁ¥¢¥»¥Ã¥È¤Î¥¯¥ª¥ê¥Æ¥£¤ò´Êñ¤Ë¾å¤²¤ëÊýË¡¤ò²òÀ⤷¤Þ¤¹¡Ú¤Ò¤í¤Ï¤¹¡Û

¥³¥á¥ó¥È¤ò¤«¤¯


¡Öhttp://¡×¤ò´Þ¤àÅê¹Æ¤Ï¶Ø»ß¤µ¤ì¤Æ¤¤¤Þ¤¹¡£

ÍøÍѵ¬Ìó¤ò¤´³Îǧ¤Î¤¦¤¨¤´µ­Æþ²¼¤µ¤¤

Menu



´ðÁÃ

µ»½Ñ/Ãμ±(¼ÂÁõÎã)

3D¥¢¥¯¥·¥ç¥ó¥²¡¼¥à

2D¤ª¤Ï¤¸¤­¥²¡¼¥à(ȯŸÊÔ)

2D¶¯À©²£¥¹¥¯¥í¡¼¥ë¥¢¥¯¥·¥ç¥ó(ȯŸÊÔ)

2D¥¿¥Ã¥×¥·¥å¡¼¥Æ¥£¥ó¥°(³ÈÄ¥ÊÔ)

¥ì¡¼¥¹¥²¡¼¥à(È´¿è)

2DÊüÃÖ¥²¡¼¥à(ȯŸÊÔ)

3D¥ì¡¼¥ë¥¬¥ó¥·¥å¡¼¥Æ¥£¥ó¥°(±þÍÑÊÔ)

3Dæ½Ð¥²¡¼¥à(È´¿è)

2D¥ê¥¢¥ë¥¿¥¤¥à¥¹¥È¥é¥Æ¥¸¡¼

3D¥¿¥Ã¥×¥¢¥¯¥·¥ç¥ó(NavMeshAgent »ÈÍÑ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥«¥¨¥ë¤Î°Ù¤Ë¡Á¡¢¥Ü¥³¥¹¥«¥¦¥©¡¼¥ºÉ÷)

VideoPlayer ¥¤¥Ù¥ó¥ÈϢư¤Î¼ÂÁõÎã

VideoPlayer ¥ê¥¹¥ÈÆ⤫¤é¥à¡¼¥Ó¡¼ºÆÀ¸¤Î¼ÂÁõÎã(ȯŸ)

AR ²èÁüÉÕ¤­¥ª¥Ö¥¸¥§¥¯¥ÈÀ¸À®¤Î¼ÂÁõÎã

AR ¥ê¥¹¥ÈÆ⤫¤éÀ¸À®¤Î¼ÂÁõÎã(ȯŸ)

2D¥È¥Ã¥×¥Ó¥å¡¼¥¢¥¯¥·¥ç¥ó(¥µ¥Ð¥¤¥Ð¡¼É÷)

private



¤³¤Î¥µ¥¤¥ÈÆâ¤ÎºîÉʤϥæ¥Ë¥Æ¥£¤Á¤ã¤ó¥é¥¤¥»¥ó¥¹¾ò¹à¤Î¸µ¤ËÄ󶡤µ¤ì¤Æ¤¤¤Þ¤¹¡£

´ÉÍý¿Í/Éû´ÉÍý¿Í¤Î¤ßÊÔ½¸¤Ç¤­¤Þ¤¹