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

گروه یونیتی https://t.me/UnityChan
Download Telegram
FPro Sensei
برای بازی Anime Wars چه چیزای تدارک دیدیم :❗️
(The Next Generation of NPR) 💫

حضور شخصیت های انیمه Redo Of Healer با شیدر و گرافیکی استلایز بسیار شبیه گرافیک خود انیمه ❗️

منتظر اخبار و جزیات بیشتر از بازی باشید 🌟
🔥7
در یونیتی weapon ik - sway و recoil

Recoil = لگد اسلحه

Weapon ik = سینماتیک معکوس اسلحه

Sway = حرکت نرم اسلحه

چیست و چطوری پیاده سازی میشود : با کد نویسی C# == انیمیشن های procedural
👍2
یونیتی، Weapon IK، Sway و Recoil تکنیک‌هایی هستند که برای بهبود واقع‌گرایی و احساس طبیعی در انیمیشن‌های سلاح‌ها و کاراکترها استفاده می‌شوند. در ادامه به توضیح هر یک از این تکنیک‌ها و نحوه پیاده‌سازی آن‌ها می‌پردازیم.

1. Weapon IK (Inverse Kinematics)

Weapon IK به شما این امکان را می‌دهد که موقعیت و چرخش دست‌های کاراکتر را به طور دینامیک تنظیم کنید تا با سلاحی که در دست دارد هماهنگ باشد. این تکنیک معمولاً با استفاده از متد OnAnimatorIK در یونیتی پیاده‌سازی می‌شود.

پیاده‌سازی Weapon IK:

مدل کاراکتر: اطمینان حاصل کنید که مدل کاراکتر دارای اسکلت مناسب است.
اسکریپت: از کدی مشابه کد زیر استفاده کنید:

using UnityEngine;

public class WeaponIK : MonoBehaviour
{
public Animator animator;
public Transform weaponTransform; // Transform سلاح
public Transform rightHand; // Transform دست راست

void OnAnimatorIK(int layerIndex)
{
if (animator)
{
animator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1);
animator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1);
animator.SetIKPosition(AvatarIKGoal.RightHand, weaponTransform.position);
animator.SetIKRotation(AvatarIKGoal.RightHand, weaponTransform.rotation);
}
}
}

2. Sway

Sway به حرکات طبیعی سلاح در هنگام حرکت کاراکتر اشاره دارد. این حرکات معمولاً به صورت نوسانات کوچک به سمت چپ و راست یا بالا و پایین ایجاد می‌شوند تا احساس واقع‌گرایی بیشتری داشته باشند.

▎پیاده‌سازی Sway:

• اسکریپت Sway: می‌توانید از کدی مشابه زیر استفاده کنید:
using UnityEngine;

public class WeaponSway : MonoBehaviour
{
public float swayAmount = 0.1f;
public float swaySpeed = 5f;

void Update()
{
float moveX = Input.GetAxis("Mouse X") * swayAmount;
float moveY = Input.GetAxis("Mouse Y") * swayAmount;

Vector3 targetPosition = new Vector3(moveX, moveY, 0);
transform.localPosition = Vector3.Lerp(transform.localPosition, targetPosition, Time.deltaTime * swaySpeed);
}
}

▎3. Recoil

Recoil به حرکتی اشاره دارد که هنگام شلیک سلاح اتفاق می‌افتد. این حرکت معمولاً شامل جابجایی ناگهانی سلاح به عقب و سپس بازگشت به موقعیت اصلی است.

▎پیاده‌سازی Recoil:

• اسکریپت Recoil: می‌توانید از کدی مشابه زیر استفاده کنید:


using UnityEngine;

public class WeaponRecoil : MonoBehaviour
{
public float recoilAmount = 0.2f;
public float recoilSpeed = 5f;
private Vector3 originalPosition;

void Start()
{
originalPosition = transform.localPosition;
}

public void ApplyRecoil()
{
StartCoroutine(RecoilCoroutine());
}

private IEnumerator RecoilCoroutine()
{
Vector3 targetPosition = originalPosition - new Vector3(0, recoilAmount, 0);
float elapsedTime = 0;

while (elapsedTime < recoilSpeed)
{
transform.localPosition = Vector3.Lerp(originalPosition, targetPosition, (elapsedTime / recoilSpeed));
elapsedTime += Time.deltaTime;
yield return null;
}

// بازگشت به موقعیت اصلی
elapsedTime = 0;
while (elapsedTime < recoilSpeed)
{
transform.localPosition = Vector3.Lerp(targetPosition, originalPosition, (elapsedTime / recoilSpeed));
elapsedTime += Time.deltaTime;
yield return null;
}
}
}


▎نتیجه‌گیری

با ترکیب Weapon IK، Sway و Recoil می‌توانید انیمیشن‌های سلاح را در بازی‌های خود بسیار واقعی‌تر و جذاب‌تر کنید.
👍31
FPro Sensei
آموزش اضافی (بعنوان جایزه ) : سیستم ADS ADS = زوم کردن ونشانه گیری چیست و چطوری ساخته میشود :
مراحل ساخت سیستم ADS در یونیتی

1. آماده‌سازی مدل و انیمیشن‌ها

مدل کاراکتر: اطمینان حاصل کنید که مدل کاراکتر شما دارای انیمیشن‌های مختلفی برای حالت عادی و ADS است.
انیمیشن ADS: یک انیمیشن برای حالت زوم و هدف‌گیری آماده کنید که شامل حرکت دست‌ها و سلاح به سمت جلو باشد.

2. تنظیم دوربین

دوربین اصلی: دوربین اصلی بازی را تنظیم کنید تا به راحتی بتوانید آن را به حالت ADS منتقل کنید.
حالت زوم: برای حالت ADS، می‌توانید فیلد دید (Field of View) دوربین را کاهش دهید تا زوم ایجاد شود.

3. اسکریپت ADS

یک اسکریپت برای کنترل حالت ADS ایجاد کنید. در این اسکریپت، می‌توانید ورودی‌های کاربر را مدیریت کرده و انیمیشن‌ها و وضعیت دوربین را تغییر دهید.

using UnityEngine;

public class PlayerADS : MonoBehaviour
{
public Animator animator; // مرجع به انیماتور
public Camera playerCamera; // دوربین بازیکن
public float normalFOV = 60f; // فیلد دید عادی
public float adsFOV = 30f; // فیلد دید در حالت ADS
public float transitionSpeed = 5f; // سرعت انتقال بین فیلد دیدها

private bool isAiming = false;

void Update()
{
// ورودی کاربر برای شروع یا پایان ADS
if (Input.GetButtonDown("Fire2")) // معمولاً دکمه راست ماوس
{
ToggleADS();
}

// تغییر فیلد دید دوربین
float targetFOV = isAiming ? adsFOV : normalFOV;
playerCamera.fieldOfView = Mathf.Lerp(playerCamera.fieldOfView, targetFOV, Time.deltaTime * transitionSpeed);
}

void ToggleADS()
{
isAiming = !isAiming;

// فعال‌سازی انیمیشن ADS
if (animator != null)
{
animator.SetBool("isAiming", isAiming);
}
}
}

4. تنظیم انیمیشن‌ها

در انیماتور کاراکتر، یک پارامتر بولی به نام isAiming اضافه کنید. این پارامتر باید انیمیشن مربوط به حالت ADS را کنترل کند. به عنوان مثال، اگر isAiming درست باشد، انیمیشن ADS پخش می‌شود و در غیر این صورت، انیمیشن عادی پخش می‌شود.

▎5. تست سیستم ADS

پس از پیاده‌سازی سیستم، بازی را اجرا کنید و بررسی کنید که آیا:
• با فشار دادن دکمه مشخص شده، کاراکتر به حالت ADS می‌رود و دوربین زوم می‌شود.
• انیمیشن‌ها به درستی پخش می‌شوند.
• پس از رها کردن دکمه، کاراکتر به حالت عادی برمی‌گردد.

▎نکات اضافی

• تنظیمات دیگر: می‌توانید ویژگی‌های بیشتری مانند تغییر سرعت حرکت در حالت ADS یا اضافه کردن صداهای خاص هنگام زوم کردن اضافه کنید.
• سازگاری با سلاح‌ها: اگر چندین سلاح دارید، ممکن است بخواهید سیستم ADS را برای هر سلاح به طور جداگانه تنظیم کنید.
👍21
با این آموزش شما اصطلاحات جدیدی یادگرفتید که تاحالا دنباش بودید یا بلد نبودی چطوری بسازید تا آموزش دیگر بدرود 🫡
👍2🔥1🤝1
FPro Sensei
Weapon Recoil Example
نکته اضافی تر : کدنویسی بهینه تر برای Recoil


ساخت یک سیستم recoil به صورت procedural در یونیتی به این معناست که حرکات و تغییرات به صورت دینامیک و بر اساس فیزیک و ورودی‌های بازیکن ایجاد شوند. این نوع سیستم می‌تواند تجربه‌ای واقع‌گرایانه‌تر و جذاب‌تر برای بازیکنان ایجاد کند. در ادامه، مراحل ساخت یک سیستم recoil procedural توضیح دادیم که بهینه تر از حلقه است :

مراحل ساخت سیستم Recoil Procedural در یونیتی

1. آماده‌سازی مدل سلاح

مدل سلاح: اطمینان حاصل کنید که مدل سلاح شما آماده است و می‌تواند انیمیشن‌های شلیک را دریافت کند.

2. ایجاد اسکریپت Recoil

یک اسکریپت جدید برای مدیریت پس‌زنی ایجاد کنید. این اسکریپت باید شامل منطق برای محاسبه حرکات recoil باشد.

using UnityEngine;

public class ProceduralRecoil : MonoBehaviour
{
public Transform gunTransform; // مرجع به سلاح
public float recoilForce = 0.5f; // شدت پس‌زنی
public float returnSpeed = 5f; // سرعت برگشت به حالت عادی
public float maxRecoilAngle = 2f; // حداکثر زاویه پس‌زنی

private Vector3 originalPosition;
private Quaternion originalRotation;
private float currentRecoilX = 0f;
private float currentRecoilY = 0f;

void Start()
{
originalPosition = gunTransform.localPosition;
originalRotation = gunTransform.localRotation;
}

void Update()
{
// به حالت عادی برگرداندن سلاح
if (currentRecoilX > 0 || currentRecoilY > 0)
{
currentRecoilX -= Time.deltaTime * returnSpeed;
currentRecoilY -= Time.deltaTime * returnSpeed;

currentRecoilX = Mathf.Clamp(currentRecoilX, 0, maxRecoilAngle);
currentRecoilY = Mathf.Clamp(currentRecoilY, 0, maxRecoilAngle);

gunTransform.localPosition = originalPosition + new Vector3(0, -currentRecoilY, 0);
gunTransform.localRotation = originalRotation * Quaternion.Euler(-currentRecoilX, Random.Range(-1f, 1f), 0);
}
}

public void ApplyRecoil()
{
// اعمال پس‌زنی به صورت تصادفی
currentRecoilX += recoilForce * Random.Range(0.8f, 1.2f);
currentRecoilY += recoilForce * Random.Range(0.8f, 1.2f);

currentRecoilX = Mathf.Clamp(currentRecoilX, 0, maxRecoilAngle);
currentRecoilY = Mathf.Clamp(currentRecoilY, 0, maxRecoilAngle);
}
}

▎3. فراخوانی تابع ApplyRecoil

در اسکریپت شلیک سلاح، تابع ApplyRecoil را فراخوانی کنید تا پس از هر شلیک، اثر پس‌زنی اعمال شود.



public class Gun : MonoBehaviour
{
public ProceduralRecoil recoil; // مرجع به اسکریپت Recoil

void Update()
{
if (Input.GetButtonDown("Fire1")) // معمولاً دکمه چپ ماوس
{
Shoot();
}
}

void Shoot()
{
// کد شلیک (ایجاد گلوله، صدا، اثرات)
recoil.ApplyRecoil(); // اعمال پس‌زنی
}
}

4. تنظیمات و تست

• تنظیم مقادیر: مقادیر recoilForce, returnSpeed, و maxRecoilAngle را متناسب با نیاز بازی خود تنظیم کنید.
• تست: بازی را اجرا کنید و بررسی کنید که آیا پس‌زنی طبیعی و واقع‌گرایانه است یا خیر.

▎نکات اضافی

• تنوع در پس‌زنی: می‌توانید برای سلاح‌های مختلف مقادیر متفاوتی برای پس‌زنی تنظیم کنید.
• افزودن صدا و افکت‌ها: می‌توانید افکت‌های صوتی و بصری برای شلیک و پس‌زنی اضافه کنید تا تجربه بازی را بهبود ببخشید.
• تنظیمات بیشتر: می‌توانید ویژگی‌های بیشتری مانند تغییر زاویه دوربین یا لرزش دوربین در هنگام شلیک اضافه کنید.
3
FPro Sensei
برای بازی Anime Wars چه چیزای تدارک دیدیم :❗️
آپدیت جدید (Lala Springfield)

1 - بازی (Anime Wars) یک بازی رایگان خواهد بود که محتوا آن خریدنی خواهد بود

2- اسلحه ها تماما ماژولار (وصل کردن دوربین - سرنیزه - خشاب های 30 -60 -75 تیری و..) خواهد بود

3 - قدرت جادویی هر کاراکتر منطبق با انیمه آن

و ...

این لیست آپدیت خواهد شد
🔥41
ℹ️ Lala Edition

مفهوم Reference Sheet در مدلسازی چیست و چطوری از آن استفاده کنیم ؟

#بلندر #تکنیک_مدلسازی
👍1
FPro Sensei
Reference Sheet
"Reference Sheet" یا "برگه مرجع" به مجموعه‌ای از اطلاعات، مشخصات و ویژگی‌هایی اشاره دارد که به عنوان منبعی برای طراحی و ساخت مدل‌ها استفاده می‌شود. این برگه معمولاً شامل جزئیاتی از قبیل:

1. تصاویر و نمودارها: تصاویری از زوایای مختلف مدل، که به درک بهتر شکل و جزئیات آن کمک می‌کند.
2. ابعاد و اندازه‌ها: اندازه‌گیری‌های دقیق که برای ساخت مدل ضروری هستند.
3. رنگ‌ها و بافت‌ها: اطلاعات مربوط به رنگ‌ها و متریال‌هایی که باید در مدل استفاده شوند.
4. ویژگی‌های خاص: هر ویژگی خاصی که باید در مدل لحاظ شود، مانند جزئیات طراحی، الگوها یا نشانه‌ها.
5. منابع الهام: تصاویری یا توضیحاتی درباره منابعی که طراحی از آن‌ها الهام گرفته شده است.

استفاده از Reference Sheet در فرآیند مدلسازی به طراحان و مدل‌سازان کمک می‌کند تا اطمینان حاصل کنند که مدل نهایی با دیدگاه اولیه و نیازهای پروژه همخوانی دارد.
FPro Sensei
ℹ️ Lala Edition مفهوم Reference Sheet در مدلسازی چیست و چطوری از آن استفاده کنیم ؟ #بلندر #تکنیک_مدلسازی
نحوه تنظیم درست یک رفرنس برای مثال بخش سر

هنگام تنظیم برای مدل سازی باید از دو جهت X و Y رفرنس ایمپورت کردن و نقطه آن را با نقطه جهانی بلندر همسو کنیم
Forwarded from FPro Sensei
ایجاد جهات 3d با رفرنس با استفاده از sculping یا manual modeling
FPro Sensei
گسترش دادن آن Extrude
ساخت کل سر با رفرنس
FPro Sensei
ساخت کل سر با رفرنس
اماده سازی نهایی سر