إنشاء تأثير مرشح شريط VHS في الوحدة
في مجال تطوير الألعاب، أصبح التقاط جوهر الحنين للمرئيات القديمة اتجاهًا شائعًا. أحد الأنماط المرئية المميزة التي تستمر في جذب الجماهير هو تأثير مرشح شريط VHS. يحاكي هذا التأثير العيوب التناظرية لأشرطة VHS القديمة، مما يثير إحساسًا بالحنين لأولئك الذين نشأوا في عصر أجهزة الفيديو وأشرطة الفيديو. يمكن أن يؤدي تطبيق هذا التأثير في Unity إلى إضافة طبقة إضافية من الانغماس في لعبتك، مما يخلق جمالية تذكرنا بالماضي.
لتحقيق تأثير مرشح شريط VHS في Unity، سنستخدم التظليل لمعالجة العناصر المرئية. تسمح التظليلات بمعالجة الرسومات على وحدة معالجة الرسومات في الوقت الفعلي، مما يجعلها مثالية لإنشاء تأثيرات مثل تشويه VHS والخلل. أدناه، سأرشدك خلال خطوات تنفيذ هذا التأثير في مشروعك Unity.
1. إعداد المشروع
قبل الغوص في الكود، تأكد من إعداد مشروع Unity. أنشئ مشروعًا جديدًا أو افتح مشروعًا موجودًا حيث تريد تنفيذ تأثير مرشح شريط VHS.
2. إنشاء التظليل
أولاً، سنقوم بإنشاء تظليل جديد للتعامل مع تأثير VHS. انقر بزر الماوس الأيمن على نافذة المشروع، ثم انتقل إلى 'Create -> Shader -> Unlit Shader'. قم بتسمية التظليل مثل VHSTapeEffect.
افتح ملف التظليل الذي تم إنشاؤه حديثًا. سنضيف رمزًا لمعالجة العناصر المرئية لتحقيق تأثير شريط VHS. يوجد أدناه مثال أساسي للتظليل الذي يضيف التشوه والتقطيع والضوضاء والتراكب لمحاكاة تأثير شريط 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. تطبيق التظليل
لتطبيق التظليل على مادة ما، قم بإنشاء مادة جديدة، أو استخدم مادة موجودة. اسحب التظليل "VHSTapeEffect" إلى فتحة تظليل المادة.
4. تطبيق تأثير الصورة على الكاميرا
قم بإنشاء كائن لعبة فارغ جديد وأرفق برنامجًا نصيًا به. في البرنامج النصي، أضف الكود التالي:
using UnityEngine;
[RequireComponent(typeof(Camera))]
public class VHSTapeEffectController : MonoBehaviour
{
public Material VHSMaterial;
void OnRenderImage(RenderTexture source, RenderTexture destination)
{
Graphics.Blit(source, destination, VHSMaterial);
}
}
- قم بإرفاق هذا البرنامج النصي بكائن اللعبة الفارغ، ثم قم بتعيين المادة التي قمت بإنشائها إلى الحقل "VHSMaterial" في مفتش البرنامج النصي.
5. اختبار المشهد الخاص بك
أخيرًا، اضغط على تشغيل Unity ولاحظ تأثير شريط VHS المطبق على المشهد الخاص بك من خلال الكاميرا.
خاتمة
من خلال هذه الخطوات، تكون قد نجحت في تطبيق تأثير مرشح شريط VHS في Unity. قم بتجربة إعدادات مختلفة وميزات إضافية لتحسين أجواء لعبتك التي تبعث على الحنين.