Membuat Efek Filter Tape VHS di Unity

Dalam dunia pengembangan game, menangkap esensi nostalgia dari visual retro telah menjadi tren yang populer. Salah satu gaya visual ikonik yang terus memikat penonton adalah efek filter kaset VHS. Efek ini meniru ketidaksempurnaan analog kaset VHS lama, membangkitkan rasa nostalgia bagi mereka yang tumbuh di era VCR dan kaset video. Menerapkan efek ini di Unity dapat menambah lapisan imersi ekstra pada game Anda, menciptakan estetika yang mengingatkan pada masa lalu.

Untuk mencapai efek filter pita VHS di Unity, kami akan menggunakan shader untuk memanipulasi visual. Shader memungkinkan manipulasi grafis secara real-time pada GPU, menjadikannya ideal untuk menciptakan efek seperti distorsi VHS dan glitchiness. Di bawah ini, saya akan memandu Anda melalui langkah-langkah untuk menerapkan efek ini di proyek Unity Anda.

1. Menyiapkan Proyek

Sebelum mendalami kodenya, pastikan Anda telah menyiapkan proyek Unity. Buat proyek baru atau buka proyek yang sudah ada di mana Anda ingin menerapkan efek filter pita VHS.

2. Membuat Shadernya

Pertama, kita akan membuat shader baru untuk menangani efek VHS. Klik kanan di jendela proyek Anda, dan navigasikan ke 'Create -> Shader -> Unlit Shader'. Beri nama shadernya seperti VHSTapeEffect.

Buka file shader yang baru dibuat. Kami akan menambahkan kode untuk memanipulasi visual untuk mencapai efek rekaman VHS. Di bawah ini adalah contoh dasar shader yang menambahkan distorsi, pikselasi, noise, dan overlay untuk mensimulasikan efek pita VHS:

Shader "Custom/VHSTapeEffect"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" {}
        _DistortionStrength ("Distortion Strength", Range(0, 1)) = 0.1
        _NoiseStrength ("Noise Strength", Range(0, 1)) = 0.2
    }

    SubShader
    {
        Tags { "Queue"="Overlay" "RenderType"="Opaque" }

        Pass
        {
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "UnityCG.cginc"

            struct appdata
            {
                float4 vertex : POSITION;
                float2 uv : TEXCOORD0;
            };

            struct v2f
            {
                float2 uv : TEXCOORD0;
                float4 vertex : SV_POSITION;
            };

            sampler2D _MainTex;
            float _DistortionStrength;
            float _NoiseStrength;

            v2f vert (appdata v)
            {
                v2f o;
                o.vertex = UnityObjectToClipPos(v.vertex);
                o.uv = v.uv;
                return o;
            }

            fixed4 frag (v2f i) : SV_Target
            {
                float2 uv = i.uv;
                uv += sin(uv * 500) * _DistortionStrength;
                uv += (frac(sin(dot(uv, float2(12.9898, 78.233))) * 43758.5453) - 0.5) * _NoiseStrength;

                fixed4 col = tex2D(_MainTex, uv);
                return col;
            }
            ENDCG
        }
    }
}

3. Menerapkan Shader

Untuk menerapkan shader pada material, buat material baru, atau gunakan material yang sudah ada. Tarik shader "VHSTapeEffect" ke slot shader material.

4. Terapkan Efek Gambar ke Kamera

Buat objek permainan kosong baru dan lampirkan skrip ke dalamnya. Pada skrip, tambahkan kode berikut:

using UnityEngine;

[RequireComponent(typeof(Camera))]
public class VHSTapeEffectController : MonoBehaviour
{
    public Material VHSMaterial;

    void OnRenderImage(RenderTexture source, RenderTexture destination)
    {
        Graphics.Blit(source, destination, VHSMaterial);
    }
}
  • Lampirkan skrip ini ke objek permainan yang kosong, dan tetapkan materi yang Anda buat ke bidang "VHSMaterial" di pemeriksa skrip.

5. Uji Adegan Anda

Terakhir, tekan putar di Unity dan amati efek kaset VHS yang diterapkan pada adegan Anda melalui kamera.

Kesimpulan

Dengan langkah-langkah ini, Anda telah berhasil menerapkan efek filter pita VHS di Unity. Bereksperimenlah dengan berbagai pengaturan dan fitur tambahan untuk lebih meningkatkan suasana nostalgia game Anda.

Artikel yang Disarankan
Membuat Shader Rumput Sederhana dalam Unity
Membuat Menu Jeda di Unity
Membuat Simulator Penerbangan di Unity
Cara Membuat Kue Ringan di Unity
Ciptakan Efek Busa Pencuci Bertekanan dalam Kesatuan
Menerapkan Efek Partikel dalam Unity
Tutorial Pasca Pemrosesan Efek Gambar Night Vision untuk Unity