---
title: นำ Post-Processing มาใช้ในโลก ZEPETO
slug: world-sdk-guide-th/post-processing-zepeto
docTags: 
createdAt: 2025-04-04T06:25:29.948Z
---

หากคุณต้องการเพิ่มเอฟเฟกต์ภาพที่สวยงามให้กับโลกของคุณ หรือยกระดับคุณภาพกราฟิก ลองใช้ฟีเจอร์ Post-processing ของ Unity ดูสิ

ด้วยเอฟเฟกต์ภาพที่หลากหลาย คุณสามารถสร้างโลกที่มีความสมจริงและน่าดึงดูดมากยิ่งขึ้นได้

## เริ่มต้นใช้งาน Post-processing

:::::WorkflowBlock
:::WorkflowBlockItem
**ติดตั้งแพ็กเกจ Post Processing**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/FTj_8V50vB-33q4nJwUTg_image.png)

ใน Unity ให้ไปที่ **Window > Package Manager** ตั้งค่า Packages เป็น **Unity Registry** จากนั้นค้นหาและติดตั้งแพ็กเกจ Post Processing จากรายการ
:::

:::WorkflowBlockItem
**ทำสำเนา Prefab ที่ชื่อว่า ZepetoCamera**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/PdWhnifKGLEyiCRTf-ed8_image.png)

ในโฟลเดอร์ Project ให้ไปที่ **Packages > ZEPETO.Character.Controller > Runtime > \_Resources > Camera**
ค้นหา **ZepetoCamera** Prefab จากนั้นคัดลอกแล้ววางไว้ในโฟลเดอร์ Assets

จากนั้นเปลี่ยนชื่อ Prefab ที่คัดลอกมาเป็น ZepetoCameraCopy
:::

:::WorkflowBlockItem
**เชื่อมต่อ ZepetoCameraCopy**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/B3TejRHBwsSsEZwXF0q0o_image.png" size="66" width="926" height="1064" position="center" showCaption="false"}

ใน Hierarchy ให้เลือก **Managers > ZepetoPlayers**
ใน Inspector ให้ลาก **ZepetoCameraCopy** ไปใส่ในช่อง Prefab
:::

::::WorkflowBlockItem
**สร้าง Layer ใหม่**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/Y_jWTA-9EYVgfahV5q0pm_image.png)

ใน Inspector ของ ZepetoCameraCopy ให้คลิก **Layer > Add Layer** เพื่อสร้าง Layer ใหม่
จากนั้นกำหนด Layer ที่สร้างไว้ในช่อง **Layer**

:::hint{type="info"}
📘 **หมายเหตุ**

คุณสามารถใช้ได้เฉพาะ Layer 3 และ Layer 6 ขึ้นไปเท่านั้น

Layer 0–2 และ Layer 4–5 เป็น Layer พื้นฐานของ Unity ซึ่งไม่สามารถแก้ไขได้
:::
::::
:::::



## การนำ Post-processing ไปใช้งาน

มี 2 วิธีหลักในการใช้ Post-processing:

1. **Global**：ใช้เอฟเฟกต์กับทั้งโลก
2. **Local**：ใช้เอฟเฟกต์เฉพาะเมื่อผู้เล่นเข้าสู่พื้นที่ที่กำหนด

### การใช้งานแบบ Global

:::::WorkflowBlock
:::WorkflowBlockItem
**เพิ่ม Post-process Layer และ Post-process Volume ให้กับ ZepetoCameraCopy**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/pIFvgTz2102f9IBsGEHjL_image.png" size="68" width="804" height="1064" position="center" showCaption="false"}

ใน Inspector ให้คลิก Add Component แล้วเพิ่มทั้ง **Post-process Layer** และ **Post-process Volume**
ใน Post-process Layer ให้ตั้งค่า **Volume Blending > Layer** เป็น Layer ที่คุณสร้างไว้

จากนั้นใน Post-process Volume ให้ติ๊กที่ **Is Global**
ในช่อง **Profile** ให้เลือก Post Process Profile ที่มีเอฟเฟกต์ที่คุณต้องการ

หากยังไม่มี Profile ให้คลิกปุ่ม **New** ข้างช่อง Profile เพื่อสร้างใหม่
:::

::::WorkflowBlockItem
**เพิ่มเอฟเฟกต์เข้าไปใน Post Process Profile**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/SF6yzeZoC4XVKUIvw2qfA_image.png" size="68" width="790" height="841" position="center" showCaption="false"}

หากคุณสร้าง Profile ใหม่ ให้เลือก Profile นั้นแล้วคลิก **Add Effect**
เลือกเอฟเฟกต์ที่ต้องการ และปรับค่าต่าง ๆ ให้เหมาะสมกับสไตล์ของโลกคุณ

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/DrxtpYh8vWlcsAj4j53uN_image.png" size="68" width="846" height="834" position="center" showCaption="false"}

หากต้องการแก้ไขค่า ให้ทำเครื่องหมายถูกที่กล่องทางซ้ายของแต่ละฟิลด์ก่อน

:::hint{type="info"}
✏️ **เคล็ดลับ**

คุณสามารถแก้ไขเอฟเฟกต์ได้อย่างอิสระแม้ในขณะ Play Mode และการเปลี่ยนแปลงจะยังคงอยู่แม้จะหยุดเล่นแล้ว

ลองปรับค่าต่าง ๆ ใน Inspector ขณะรัน Scene เพื่อดูผลแบบเรียลไทม์ และปรับให้ตรงกับที่คุณต้องการ
:::
::::
:::::



**\<ตัวอย่างเอฟเฟกต์>**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/5hojtFjbUV1OqjRqoqvgX_image.png "Bloom")

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/EAdJ80rmInnavWtjOTmPP_image.png "Lens Distortion")

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/lNEAIx6y0eP43_zWAKaue_image.png "Color Grading")



### การใช้งานแบบ Local

::::WorkflowBlock
:::WorkflowBlockItem
**เพิ่ม Post-process Layer ให้กับ ZepetoCameraCopy**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ywAazWJRAjP9nbyltadhI_image.png" size="68" width="926" height="1216" position="center" showCaption="false"}

ใน Inspector ของ ZepetoCameraCopy ให้เพิ่ม **Post-process Layer**
คลิกปุ่ม **This** เพื่อกำหนด Trigger แล้วตั้งค่า Layer ที่สร้างไว้ในช่อง **Layer**
:::

:::WorkflowBlockItem
**สร้างวัตถุ Post-process Volume**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/EmOfkdtw4NCNCvB4f-NZx_image.png" size="68" width="934" height="1200" position="center" showCaption="false"}

ใน Hierarchy ให้คลิก **+ > 3D Object > Post-process Volume** เพื่อสร้างวัตถุ Volume ใหม่

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/oJS7z-TipBvJp4jjXzYjA_image.png" size="68" width="964" height="1197" position="center" showCaption="false"}

ตั้งค่า Layer ให้เป็น **Layer** ที่คุณสร้างไว้ และยกเลิกการติ๊ก **Is Global**
:::

:::WorkflowBlockItem
**เพิ่มเอฟเฟกต์เข้าไปใน Post-process Volume**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/-nG6591Mzrg7hJXp0i5pf_image.png" size="68" width="933" height="1153" position="center" showCaption="false"}

คลิกปุ่ม **Add Effect** แล้วเลือกเอฟเฟกต์ที่ต้องการ จากนั้นปรับค่าต่าง ๆ ให้เหมาะสม
:::

:::WorkflowBlockItem
**วาง Post-process Volume**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/1iyXq3hJNWpI59jsxxXJH_image.png)

วางวัตถุ Post-process Volume ไว้ในพื้นที่ที่คุณต้องการให้แสดงผลเอฟเฟกต์
:::
::::



**\<ตัวอย่างการใช้งานแบบ Local>**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/ZFa8s144qsC5zBTvGwPxJ_local.gif)



## ควบคุม Post-process Volume ด้วยสคริปต์

คุณสามารถควบคุม Post-process Volume ผ่านสคริปต์ได้เช่นกัน

ด้านล่างนี้คือตัวอย่างการเปิด/ปิดเอฟเฟกต์โดยใช้ Toggle

::::WorkflowBlock
:::WorkflowBlockItem
**สร้าง GameObject ใหม่**

ใน Hierarchy ให้คลิก **+ > Create Empty** เพื่อสร้าง GameObject ใหม่
เปลี่ยนชื่อเป็น **PostProcessManager**
:::

:::WorkflowBlockItem
**สร้าง UI Toggle ใหม่**

ใน Hierarchy ให้คลิก **+ > UI > Toggle** เพื่อสร้าง Toggle UI ใหม่
:::

:::WorkflowBlockItem
**สร้างสคริปต์ใหม่**

ในหน้าต่าง Project ให้คลิก **+ > ZEPETO > TypeScript** เพื่อสร้างสคริปต์ใหม่

ตั้งชื่อสคริปต์ว่า **PostProcessScript** แล้วเปิดไฟล์เพื่อนำโค้ดด้านล่างไปวาง

```typescript
import { ZepetoScriptBehaviour } from 'ZEPETO.Script';
import { GameObject } from 'UnityEngine';
import { PostProcessVolume } from 'UnityEngine.Rendering.PostProcessing';
import { Toggle } from 'UnityEngine.UI';

export default class PostProcessScript extends ZepetoScriptBehaviour {

    public onOffToggle: Toggle;
    public postProcessObj: GameObject;
    private _postProsessVolume: PostProcessVolume;

    Start() {    
        this._postProsessVolume = this.postProcessObj.GetComponent<PostProcessVolume>();

        this.onOffToggle.onValueChanged.AddListener(()=>{
            this._postProsessVolume.profile.settings.ForEach(
                // 현재 profile settings의 모든 설정을 on/off합니다.
                (setting)=>{
                    setting.active = !setting.active;
                }
            );
        });
    }
}
```
:::

:::WorkflowBlockItem
**เพิ่มสคริปต์เข้าไปใน PostProcessManager**

::Image[]{src="https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/tZbeuWSyrXM_NSJpmDZsr_image.png" size="66" width="1058" height="1348" position="center" showCaption="false"}

เลือก PostProcessManager จาก Hierarchy
ใน Inspector ให้คลิก **Add Component > Zepeto Script** แล้วลาก **PostProcessScript** ไปวางในช่อง Script

จากนั้นลาก Toggle ไปใส่ในช่อง **On Off Toggle** และลาก Post-process Volume ไปใส่ในช่อง **Post Process Obj**
:::
::::



**\<ตัวอย่าง>**

![](https://api.archbee.com/api/optimize/xv-TGeWVTX2GDZMFGOf1Y/J4lvzQyphSw39C0Yo-uMd_script-post-process.gif)

ตอนนี้เมื่อคุณกดปุ่ม Toggle ในพื้นที่ที่มี Post-process Volume อยู่ เอฟเฟกต์จะถูกเปิดหรือปิดตามการตั้งค่า
