UnityChan(Channel)
403 subscribers
1.79K photos
62 videos
13 files
41 links
کانال آموزش و نکات UnityChan

گروه یونیتی https://t.me/UnityChan
Download Telegram
بدین ترتیب میتوانید رفرنس خود را تنظیم و مدلسازی را با روش دلخواه خود آغاز کنید این آموزش فقط نکته کوتاه در مورد مدلسازی بود نه کل آموزش مدلسازی موفق باشید❗️
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
⚜️ سیستم Spline Ik FPSCamera ⚜️

ℹ️ تفاوت آن در واقعی تر شدن کنترل فول بادی کاراکتر ℹ️
🔥61
ورود به مبانی از انیمیشن های Procedural : این قسمت سیستم های Spline Ik FPSCamera و Leaning

Leaning = سیستم خم شدن

Spline Ik FPSCamera = سینماتیک معکوس استخوان به دوربین اول شخص
FPro Sensei
Leaning
یک سیستم خم شدن (Leaning) حرفه‌ای در بازی‌های FPS (مثل Rainbow Six Siege) فقط شامل چرخیدن دوربین نیست؛ بلکه دوربین باید کمی به سمت چپ یا راست جابه‌جا شود تا بازیکن بتواند واقعاً پشت دیوار را ببیند.


using UnityEngine;

public class LeaningController : MonoBehaviour
{
[Header("Camera Reference")]
public Transform cameraTransform; // دوربین اصلی را اینجا درگ کنید

[Header("Leaning Settings")]
public float leanAngle = 20f; // زاویه خم شدن (درجه)
public float leanDistance = 0.5f; // میزان جابه‌جایی به طرفین (متر)
public float leanSpeed = 8f; // سرعت حرکت (هرچه بیشتر، سریع‌تر)

// متغیرهای داخلی برای ذخیره حالت فعلی
private float targetAngle = 0f;
private float targetSidePos = 0f;
private float currentAngle = 0f;
private float currentSidePos = 0f;

private Vector3 initialCameraPos;

void Start()
{
// ذخیره موقعیت اولیه دوربین نسبت به بازیکن
if (cameraTransform != null)
initialCameraPos = cameraTransform.localPosition;
}

void Update()
{
HandleLeaning();
}

void HandleLeaning()
{
// 1. تشخیص ورودی
if (Input.GetKey(KeyCode.Q)) // خم شدن به چپ
{
targetAngle = leanAngle;
targetSidePos = -leanDistance;
}
else if (Input.GetKey(KeyCode.E)) // خم شدن به راست
{
targetAngle = -leanAngle;
targetSidePos = leanDistance;
}
else // بازگشت به حالت عادی
{
targetAngle = 0f;
targetSidePos = 0f;
}

// 2. ایجاد حرکت نرم با استفاده از Lerp
currentAngle = Mathf.Lerp(currentAngle, targetAngle, Time.deltaTime * leanSpeed);
currentSidePos = Mathf.Lerp(currentSidePos, targetSidePos, Time.deltaTime * leanSpeed);

// 3. اعمال تغییرات به دوربین
// تغییر موقعیت (فقط محور X جابه‌جا می‌شود)
cameraTransform.localPosition = new Vector3(initialCameraPos.x + currentSidePos, initialCameraPos.y, initialCameraPos.z);

// تغییر چرخش (محور Z برای کج شدن سر)
// نکته: ما فقط محور Z را اینجا کنترل می‌کنیم، محور X همچنان توسط Mouse Y کنترل می‌شود
Vector3 currentRot = cameraTransform.localEulerAngles;
cameraTransform.localRotation = Quaternion.Euler(currentRot.x, currentRot.y, currentAngle);
}
}


ℹ️ ویژگی‌های این سیستم:
1. جابه‌جایی فیزیکی (Lean Distance): وقتی بازیکن Q را فشار می‌دهد، دوربین فقط کج نمی‌شود، بلکه نیم متر به سمت چپ می‌رود. این کار باعث می‌شود بازیکن بتواند بدون بیرون آمدن کامل از پشت دیوار، محیط را ببیند.
2. نرمی حرکت (Interpolation): با استفاده از Mathf.Lerp حرکت دوربین بسیار نرم است و از لرزش یا پرش ناگهانی جلوگیری می‌کند.
3. تداخل نداشتن با نگاه کردن: این سیستم به صورت مستقل عمل می‌کند و با چرخش موس (نگاه کردن به بالا و پایین) تداخلی ندارد.
👍31
FPro Sensei
Spline Ik FPSCamera
یونیتی، Spline IK (کنترل سینماتیک معکوس بر پایه منحنی) یکی از تکنیک‌های پیشرفته برای متحرک‌سازی استخوان‌های ستون فقرات، گردن یا اجسام منعطف است. وقتی این تکنیک با FPS Camera ترکیب می‌شود، هدف ایجاد حرکاتی است که بسیار نرم‌تر، واقعی‌تر و "ارگانیک‌تر" از سیستم‌های حرکتی ساده هستند.

این سیستم چیست و چرا در بازی‌های شوتر اول‌شخص استفاده می‌شود:

ℹ️ ۱. Spline IK چیست؟
به طور معمول، IK (Inverse Kinematics) به شما اجازه می‌دهد انتهای یک زنجیره (مثلاً دست) را تکان دهید و بقیه مفصل‌ها (آرنج و شانه) به طور خودکار تنظیم شوند.
اما در Spline IK، به جای یک نقطه هدف، یک منحنی (Spline) وجود دارد. استخوان‌ها (مثلاً مهره‌های کمر بازیکن) خود را با شکل این منحنی تطبیق می‌دهند.

ℹ️ ۲. کاربرد Spline IK در FPS Camera
در یک بازی FPS معمولی، دوربین فقط یک شیء صلب است که به سر بازیکن چسبیده. اما در بازی‌های پیشرفته (مثل *Escape from Tarkov* یا *Call of Duty*):
شبیه‌سازی ستون فقرات: وقتی بازیکن به اطراف نگاه می‌کند یا خم می‌شود (Leaning)، ستون فقرات نباید مثل یک چوب خشک بچرخد. Spline IK اجازه می‌دهد کمر و گردن بازیکن به شکل یک منحنی نرم خم شوند. این کار باعث می‌شود حرکت دوربین هنگام راه رفتن یا دویدن، لرزش‌های طبیعی و "نرمی" داشته باشد که به آن Procedural Animation می‌گوییم.
لگد اسلحه (Recoil): وقتی اسلحه شلیک می‌کند، ضربه فقط دوربین را بالا نمی‌برد؛ بلکه باعث می‌شود بدن بازیکن کمی به عقب خم شود. Spline IK این خم شدن بدن بر اثر نیروی شلیک را بسیار واقع‌گرایانه شبیه‌سازی می‌کند.
تعامل با محیط: اگر بازیکن لب مرز یک دیوار بایستد، سیستم Spline IK می‌تواند بدن را طوری روی منحنی تنظیم کند که دوربین به شکلی طبیعی از پشت مانع سرک بکشد.

ℹ️ ۳. چطور در یونیتی پیاده‌سازی می‌شود؟
یونیتی به صورت پیش‌فرض در پکیج Animation Rigging ابزاری به نام Spline IK Constraint دارد. مراحل کلی به این صورت است:
1. یک زنجیره از استخوان‌ها (مثلاً Spine1 تا Spine3 و Neck) ایجاد می‌شود.
2. یک منحنی (Spline) تعریف می‌شود که از گره‌های کنترلی تشکیل شده است.
3. با حرکت دادن گره‌های منحنی در کد (C#)، کل بدن بازیکن و به تبع آن دوربین (که به سر متصل است) به شکلی نرم و منحنی‌وار جابه‌جا می‌شوند.

ℹ️ ۴. مزیت اصلی نسبت به روش‌های قدیمی
بدون انیمیشن پیش‌ساخته: شما نیاز ندارید برای هر زاویه خم شدن، یک انیمیشن بسازید. همه چیز به صورت ریاضی و در لحظه (Procedural) تولید می‌شود.
حس سنگینی: به دوربین وزن می‌دهد. بازیکن حس نمی‌کند که فقط یک "دوربین پرنده" است، بلکه حس می‌کند یک بدن فیزیکی با ستون فقرات دارد.
2
FPro Sensei
Spline Ik FPSCamera
مراحل ساخت :

اول محدودیت Multi-Rotation را ایجاد کنید در این محدودیت با اتصال ریگ سر کاراکتر و استفاده از دوربین اول شخص بعنوان منبع کپی کردن چرخش کاری کنید که کاراکتر چرخش دوربین را کپی کند

دوم برای اینکه ستون فقرات spine هم با سر کاراکتر هماهنگ باشد و خم باشد از استخوان روت یعنی spine تا استخوان اخر سر یعنی head یک Spine ik بسازید و استخوان سر را بعنوان منبع الهام آن قرار بدید و میزان تاثیر Weight آن را بین 0.5 تا 0.7 تنظیم کنید نه 1
1
خب این بود از آموزش امروز ما امیدوارم نهایت لذت ببرید آموزشی بود از FProSensei ❤️
3
This media is not supported in your browser
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
تست سیستم حرفه ای FPS در Anime Wars

دارای :

Recoil System

Sway System

Lean System

Spline IK

Weapon IK

UpperBody

Crouch System

Smooth ADS System

LookAT Weapon

و...
برای بازی Anime Wars بهترین ها را تدارک دیدم که بزودی از آن رونمایی میکنیم
🔥7👍1
FPro Sensei
تست سیستم حرفه ای FPS در Anime Wars دارای : Recoil System Sway System Lean System Spline IK Weapon IK UpperBody Crouch System Smooth ADS System LookAT Weapon و... برای بازی Anime Wars بهترین ها را تدارک دیدم که بزودی از آن رونمایی میکنیم
نکته : بزودی از سیستم ترکیبی شوتر اول شخص/سوم شخص رونمایی خواهیم کرد که هم میتوانید در حالت اول شخص نشانه گیری و شلیک کنید و هم در حالت سوم شخص ❗️ (اینکه چطوری میشه و چطوری خواهد بود را بزودی خواهید دید)
ورود دوباره به مباحث شیرین و جذاب (Procedural Animations) 🤩

و در این قسمت : سیستم Foot IK در یونیتی چیست و چطوری راه رفتن از پله ها و موانع را واقعی گرایانه تر میکنند ؟ 🤔

بهترین آموزش ها را از FProSensei یاد بگیرید : بزودی در UnityChan 🫡
FPro Sensei
Weapon IK
دوستان سوال پرسیدن : که با اینکه توضیح دادید Weapon IK چیست ولی ما مفهوم واقعی آن چیه یعنی خود اسلحه ik داره یا چی خواهشا دقیق تر توضیح بدید

برای همین میخوام در دو ویدیو کوتاه توضیح بدم که دقیقتر چی هست و چطوری عمل میکنه 👇
This media is not supported in your browser
VIEW IN TELEGRAM
مفهوم اینکه : بازی انیمت میشوند بدون اینکه انیمیشن داشته باشن == procedural animation
1
This media is not supported in your browser
VIEW IN TELEGRAM
مفهوم واقعی Weapon ik و نحوه ساختن آن بدون کد نویسی

در Weapon ik دست های کاراکتر شما در واقعه موقعیت اسلحه را کپی میکند پس یعنی در

Recoil = وقتی با کد نویسی که آموزش دادیم لگد اول روی اسلحه انجام میگرد و با استفاده از ان دست های شما اون لگد اسلحه را کپی میکند
FPro Sensei
Weapon IK
This media is not supported in your browser
VIEW IN TELEGRAM
توضیح بسیار عمیق تر Weapon ik و نحوه ترکیب شدن آن با انیمیشن ها
🔥3