دوربین های اول شخص و سوم شخص : بله در این بازی هم شوتر اول شخص را تجربه خواهید کرد و هم شوتر سوم شخص ❗️
👍1
اصل بازی شوتر خواهد بود و حالت های مبازه ای برای کشتن هم دیگر بصورت گروهی - رقابتی - تک نفری - بازی اسلحه - و.. خواهد داشت (+ حالت زامبی و شاید بتل رویال)
لازم به ذکر هست این بازی بدون دخالت نفرات دیگر و فقط فقط توسط FProSensei (توسعه دهنده بازی و مدلساز و..) بصورت ایندی ساخته خواهد شد
Telegram
FPro Sensei
بازی ساز موتور یونیتی - طراح شخصیت های انیمه - برنامه نویس پایتون و c#
👏4
This media is not supported in your browser
VIEW IN TELEGRAM
در بازی سازی توجه کردن به جزیات از اهمیت خیلی زیادی برخورداره و بازی Arknights Endfield از سیستم Foot IK یونیتی استفاده کرده که به اصطلاح بهش Procedural Animation (انیمیشن هایی که توسط کامپیوتر ساخته میشود) میگن که Foot IK چیست و چطوری ساخته میشود در بازی خودم نشون خواهم داد ❗️
#نکته
#نکته
❤3🔥1
FPro Sensei
برای بازی Anime Wars چه چیزای تدارک دیدیم :❗️
(The Next Generation of NPR) 💫
حضور شخصیت های انیمه Redo Of Healer با شیدر و گرافیکی استلایز بسیار شبیه گرافیک خود انیمه ❗️
منتظر اخبار و جزیات بیشتر از بازی باشید 🌟
حضور شخصیت های انیمه Redo Of Healer با شیدر و گرافیکی استلایز بسیار شبیه گرافیک خود انیمه ❗️
منتظر اخبار و جزیات بیشتر از بازی باشید 🌟
🔥7
در یونیتی weapon ik - sway و recoil
Recoil = لگد اسلحه
Weapon ik = سینماتیک معکوس اسلحه
Sway = حرکت نرم اسلحه
چیست و چطوری پیاده سازی میشود : با کد نویسی C# == انیمیشن های procedural
Recoil = لگد اسلحه
Weapon ik = سینماتیک معکوس اسلحه
Sway = حرکت نرم اسلحه
چیست و چطوری پیاده سازی میشود : با کد نویسی C# == انیمیشن های procedural
👍2
یونیتی، Weapon IK، Sway و Recoil تکنیکهایی هستند که برای بهبود واقعگرایی و احساس طبیعی در انیمیشنهای سلاحها و کاراکترها استفاده میشوند. در ادامه به توضیح هر یک از این تکنیکها و نحوه پیادهسازی آنها میپردازیم.
▎1. Weapon IK (Inverse Kinematics)
Weapon IK به شما این امکان را میدهد که موقعیت و چرخش دستهای کاراکتر را به طور دینامیک تنظیم کنید تا با سلاحی که در دست دارد هماهنگ باشد. این تکنیک معمولاً با استفاده از متد
▎پیادهسازی Weapon IK:
• مدل کاراکتر: اطمینان حاصل کنید که مدل کاراکتر دارای اسکلت مناسب است.
• اسکریپت: از کدی مشابه کد زیر استفاده کنید:
2. Sway
Sway به حرکات طبیعی سلاح در هنگام حرکت کاراکتر اشاره دارد. این حرکات معمولاً به صورت نوسانات کوچک به سمت چپ و راست یا بالا و پایین ایجاد میشوند تا احساس واقعگرایی بیشتری داشته باشند.
▎پیادهسازی Sway:
• اسکریپت Sway: میتوانید از کدی مشابه زیر استفاده کنید:
▎3. Recoil
Recoil به حرکتی اشاره دارد که هنگام شلیک سلاح اتفاق میافتد. این حرکت معمولاً شامل جابجایی ناگهانی سلاح به عقب و سپس بازگشت به موقعیت اصلی است.
▎پیادهسازی Recoil:
• اسکریپت Recoil: میتوانید از کدی مشابه زیر استفاده کنید:
▎نتیجهگیری
با ترکیب 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 میتوانید انیمیشنهای سلاح را در بازیهای خود بسیار واقعیتر و جذابتر کنید.
👍3❤1
FPro Sensei
Sway
This media is not supported in your browser
VIEW IN TELEGRAM
Weapon Sway Example
👍2
FPro Sensei
Recoil
This media is not supported in your browser
VIEW IN TELEGRAM
Weapon Recoil Example
🔥3
FPro Sensei
Weapon ik
This media is not supported in your browser
VIEW IN TELEGRAM
Weapon Ik Example
👍2
FPro Sensei
در یونیتی weapon ik - sway و recoil Recoil = لگد اسلحه Weapon ik = سینماتیک معکوس اسلحه Sway = حرکت نرم اسلحه چیست و چطوری پیاده سازی میشود : با کد نویسی C# == انیمیشن های procedural
آموزش اضافی (بعنوان جایزه ) : سیستم ADS
ADS = زوم کردن ونشانه گیری
چیست و چطوری ساخته میشود :
ADS = زوم کردن ونشانه گیری
چیست و چطوری ساخته میشود :
❤5
FPro Sensei
آموزش اضافی (بعنوان جایزه ) : سیستم ADS ADS = زوم کردن ونشانه گیری چیست و چطوری ساخته میشود :
▎مراحل ساخت سیستم ADS در یونیتی
▎1. آمادهسازی مدل و انیمیشنها
• مدل کاراکتر: اطمینان حاصل کنید که مدل کاراکتر شما دارای انیمیشنهای مختلفی برای حالت عادی و ADS است.
• انیمیشن ADS: یک انیمیشن برای حالت زوم و هدفگیری آماده کنید که شامل حرکت دستها و سلاح به سمت جلو باشد.
▎2. تنظیم دوربین
• دوربین اصلی: دوربین اصلی بازی را تنظیم کنید تا به راحتی بتوانید آن را به حالت ADS منتقل کنید.
• حالت زوم: برای حالت ADS، میتوانید فیلد دید (Field of View) دوربین را کاهش دهید تا زوم ایجاد شود.
▎3. اسکریپت ADS
یک اسکریپت برای کنترل حالت ADS ایجاد کنید. در این اسکریپت، میتوانید ورودیهای کاربر را مدیریت کرده و انیمیشنها و وضعیت دوربین را تغییر دهید.
4. تنظیم انیمیشنها
در انیماتور کاراکتر، یک پارامتر بولی به نام isAiming اضافه کنید. این پارامتر باید انیمیشن مربوط به حالت ADS را کنترل کند. به عنوان مثال، اگر isAiming درست باشد، انیمیشن ADS پخش میشود و در غیر این صورت، انیمیشن عادی پخش میشود.
▎5. تست سیستم ADS
پس از پیادهسازی سیستم، بازی را اجرا کنید و بررسی کنید که آیا:
• با فشار دادن دکمه مشخص شده، کاراکتر به حالت 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 را برای هر سلاح به طور جداگانه تنظیم کنید.
👍2❤1
با این آموزش شما اصطلاحات جدیدی یادگرفتید که تاحالا دنباش بودید یا بلد نبودی چطوری بسازید تا آموزش دیگر بدرود 🫡
👍2🔥1🤝1
FPro Sensei
Weapon Recoil Example
نکته اضافی تر : کدنویسی بهینه تر برای Recoil
ساخت یک سیستم recoil به صورت procedural در یونیتی به این معناست که حرکات و تغییرات به صورت دینامیک و بر اساس فیزیک و ورودیهای بازیکن ایجاد شوند. این نوع سیستم میتواند تجربهای واقعگرایانهتر و جذابتر برای بازیکنان ایجاد کند. در ادامه، مراحل ساخت یک سیستم recoil procedural توضیح دادیم که بهینه تر از حلقه است :
▎مراحل ساخت سیستم Recoil Procedural در یونیتی
▎1. آمادهسازی مدل سلاح
• مدل سلاح: اطمینان حاصل کنید که مدل سلاح شما آماده است و میتواند انیمیشنهای شلیک را دریافت کند.
▎2. ایجاد اسکریپت Recoil
یک اسکریپت جدید برای مدیریت پسزنی ایجاد کنید. این اسکریپت باید شامل منطق برای محاسبه حرکات recoil باشد.
▎3. فراخوانی تابع ApplyRecoil
در اسکریپت شلیک سلاح، تابع ApplyRecoil را فراخوانی کنید تا پس از هر شلیک، اثر پسزنی اعمال شود.
4. تنظیمات و تست
• تنظیم مقادیر: مقادیر recoilForce, returnSpeed, و maxRecoilAngle را متناسب با نیاز بازی خود تنظیم کنید.
• تست: بازی را اجرا کنید و بررسی کنید که آیا پسزنی طبیعی و واقعگرایانه است یا خیر.
▎نکات اضافی
• تنوع در پسزنی: میتوانید برای سلاحهای مختلف مقادیر متفاوتی برای پسزنی تنظیم کنید.
• افزودن صدا و افکتها: میتوانید افکتهای صوتی و بصری برای شلیک و پسزنی اضافه کنید تا تجربه بازی را بهبود ببخشید.
• تنظیمات بیشتر: میتوانید ویژگیهای بیشتری مانند تغییر زاویه دوربین یا لرزش دوربین در هنگام شلیک اضافه کنید.
ساخت یک سیستم 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
نکته اضافی تر : کدنویسی بهینه تر برای Recoil ساخت یک سیستم recoil به صورت procedural در یونیتی به این معناست که حرکات و تغییرات به صورت دینامیک و بر اساس فیزیک و ورودیهای بازیکن ایجاد شوند. این نوع سیستم میتواند تجربهای واقعگرایانهتر و جذابتر برای…
اگر حمایت زیاد تر شود شاید آموزشش بصورت ویدیو با زبان فارسی بسازم چه معلوم بستگی به ممبر های کانال دارد ...
🔥6❤1
FPro Sensei
اگر حمایت زیاد تر شود شاید آموزشش بصورت ویدیو با زبان فارسی بسازم چه معلوم بستگی به ممبر های کانال دارد ...
This media is not supported in your browser
VIEW IN TELEGRAM
❤3
FPro Sensei
برای بازی Anime Wars چه چیزای تدارک دیدیم :❗️
آپدیت جدید (Lala Springfield)
1 - بازی (Anime Wars) یک بازی رایگان خواهد بود که محتوا آن خریدنی خواهد بود
2- اسلحه ها تماما ماژولار (وصل کردن دوربین - سرنیزه - خشاب های 30 -60 -75 تیری و..) خواهد بود
3 - قدرت جادویی هر کاراکتر منطبق با انیمه آن
و ...
این لیست آپدیت خواهد شد ✅
1 - بازی (Anime Wars) یک بازی رایگان خواهد بود که محتوا آن خریدنی خواهد بود
2- اسلحه ها تماما ماژولار (وصل کردن دوربین - سرنیزه - خشاب های 30 -60 -75 تیری و..) خواهد بود
3 - قدرت جادویی هر کاراکتر منطبق با انیمه آن
و ...
این لیست آپدیت خواهد شد ✅
🔥4❤1
ℹ️ Lala Edition
مفهوم Reference Sheet در مدلسازی چیست و چطوری از آن استفاده کنیم ؟
#بلندر #تکنیک_مدلسازی
مفهوم Reference Sheet در مدلسازی چیست و چطوری از آن استفاده کنیم ؟
#بلندر #تکنیک_مدلسازی
👍1