PDA

نسخه کامل مشاهده نسخه کامل : چند سوال در مورد یونیتی



Homunculus
28-07-2013, 14:30
سلام بچه ها...

به چند تا مشکل تو یونیتی برخوردم که امیدوارم بتونین راهنماییم کنین.

مشکل اولم:

می خوام به کاراکترم footstep اضافه کنم و هر قسمت زمین هم ایفکتای خودشو داشته باشه. می دونم که این کار از طریق tag انجام میشه. به همین خاطر اومدم اسکریپت footstep رو عینا از bootcamp به کاراکتر خودم اضافه کردم و یه Audio Source هم اد کردم و tag های مربوطه رو هم به قسمت های مورد دلخواه اضافه کردم.
اما هیچ اتفاقی نمی افته.

نکته جالبی که وجود داره اینه که وقتی صدای پا رو به Audio Clip همین Audio Source اضافه می کنم، اونوقت صداشو تو بازی می شونم (اما بدون اینکه بخوام کاراکترو حرکت بدم). این نشون میده که Audio مشکلی نداره و تو بازی هم اجرا میشه.

نکته جالب دومی که وجود داره و خیلی هم گیج کننده س اینه که میام tag های خود bootcamp رو هم عوض می کنم اما هیچ اتفاقی نمی افته. حتی untagged هم کردم اما بی فایده بود. همینطور سعی کردم که یه plane اضافه کنم و بهش تگ بدم ببینم که صدای audio مورد نظر پخش میشه یا نه. بعدش دیدم که کاراکتر ازش رد میشه با اینکه collider هم داره. بعضی وقتا یونیتی یه کارایی می کنه که اینجوری= :n04: میشم.

کلا دیگه هنگ کردم. اصلا دیگه نمی فهمم که یونیتی چه مرگشه. دو تا اسکریپت ساده رو عینا میندازی رو کاراکتر اما جواب نمیده. چند تا اسکریپت دیگه رو هم تست کردم و 4-5 تا آموزش از یوتوب هم گرفتم اما بی فایده بود. کجا رو دارم اشتباه میرم ؟ گمون نکنم کار خیلی سختی باشه.

این اسکریپت footstep مال خود bootcamp:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اینم عکسی از inspector ش که مربوط به Audio ه:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

نکته:
مطمئنم که script مربوطه رو به خود کاراکتر اضافه کردم و به EmtyGame Object ندادم. گرچه کاراکترم تو Emptygame Object نیست.


ویرایش:
این نسخه دمو مال ورژن 3 یونیتی هستش و منم دارم از ورژن 4.1.5 استفاده می کنم و دمو هم واسه همین ورژن کانورت شده. یعنی ممکنه که script ش با این ورژن سازگار نباشه ؟

Homunculus
28-07-2013, 19:51
حیف که کدنویسی بلد نیستم... الان چک کردم دیدم که داره از دستور RaycastHit استفاده می کنه. باید برم ببینم که چطور باس Ray رو تو قسمت های مختلف تنظیم کنم...

اما کد زیر بر حسب ColliderHit عمل می کنه:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

lord arthas
28-07-2013, 22:30
توی این raycast ارگومان اول محلی هست که ray قرار cast کنه که مشخصه چیه ( اگه نفهمیدی رو دروایسی نکن بگو بگم :31 )
ارگمان دوم سمتیه که قراره به تون سمت cast شه که قرینه ی Up هست که میشه down
ارگمان سوم hitinfo هست که اگه رِی به چیزی برخورد کنه مشخصات ابجکت برخورد شده بهش تو اون متغیر ذخیره میشه
ارگمان چهارم دورترین فاصله ای هست که رِی میره که ماشالا انگلیسیت خوبه :31:
ارگمان پنجم هم مشخص میکنه که این رِی به ابکت هایی با چه layer ای برخورد کنه ، مثلا اگر layer یک ابجکت xxx باشه برخورد نمیکنه و ازش رد میشه تا به یک hitLayer برسه !

-----------

فک کنم شما همین hitlayer رو درس نذاشتی رو ابجکتات که ignore , ray میکنه اون ابجکتو :31:

Homunculus
29-07-2013, 23:46
ممنون lord جان...

اما من hitlayer ی رو آبجکت نذاشتم و فقط اومدم اسکریپت مربوطه رو به شخصیت اضافه کردم و ایفکت های مربوطه رو هم با تگ مورد نظر اضافه کردم. :n01:مشکل اینجاست که من درست موضوع RaycastHit رو متوجه نشدم. نمی دونم چطور باس واسه هر آبجکت تعریف شه. با layer ؟ اما من layer خود آبجکت بازی رو هم تغییر میدم هیچ اتفاقی نمی افته. حتی با عوض شدن تگ هم هیچ اتفاقی نمی افته. اما هر آبجکت شامل یه BoxCollider ه که تو Layer ش Ignore Raycast انتخاب شده وقتی default ش می کنم BoxCollier دیگه عمل نمی کنه و شخصیت از آبجکت رد میشه با اینکه child ش MeshCollider داره. اصلا دلیل وجود Ignoreraycast رو نمی فهمم. چرا باس ایگنور شه ؟ اصلا ربطی به Audio داره یا دارم راهو اشتباه میرم ؟ چون تنها تاثیر مستقیم بازی روی آبجکت و صدا همین ignoreraycast ه.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

الان غیر اضافه کردن اسکریپت به خود کاراکتر و همینطور اضافه کردن Audio ها دیگه باس چیکار کنم ؟ بر اساس گفته هات باس یه Layer انتخاب شه و یه Hitlayer هم واسه هر آبجکت تنظیم شه. اما چطور باس hitlayer رو واسه هر آبجکت تنظیم کنم ؟ کل آبجکتای بازی رو چک کردم. هیچ چیز خاصی نداشتن. دیگه واقعا سر در نمیارم. نکنه خود همین اسکریپت با اسکریپتای دیگه هم باس لینک شه ؟


به هر ترتیب مشکل دومی هم وجود داره. اسکریپت دوم که با دستور Collider عمل می کنه فقط واسه اول شخص کارایی داره. واسه سوم شخص صدا به صورت نامنظم پخش میشه. هر چیزی که هست باس ربطی به controller.velocity.magnitude داشته باشه چون وقتی سرعت player زیر 5 باشه هیچ صدایی شنیده نمیشه...

دیگه چیزی نمونده که بخوام دمو رو آماده ش کنم. فقط دو سه نکته باقی مونده... به زودی نسخه دمو رو آپلود می کنم...

بازم مرسی...

lord arthas
30-07-2013, 01:15
روشی که AngryBots رفته رو امتحان کردی ؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Homunculus
30-07-2013, 05:09
روشی که AngryBots رفته رو امتحان کردی ؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

راستش حوصله شو نداشتم دوباره نصبش کنم تا بتونم اسکریپتشو بردارم که لطف کردی گذاشتی... اما همینم ارور داد. Java هستش دیگه درسته ؟ البته من هر سه تاشونو امتحان کردم. :n01:

فعلا دارم از First Person استفاده می کنم. بعدا همین ورژن Bootcamp و ازشون می پرسم که چطور اجراش کنم.

مرسی...

Homunculus
30-07-2013, 05:13
اما به یه مشکل دیگه برخوردم که ممنون میشم راهنماییم کنی. می خوام چند تا Light داشته باشم که با هم به صورت Random چشمک بزنن. اسکریپتشو از سایت یونیتی پیدا کردم که این کارو به زیبایی انجام میده:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید




اما مشکل اینجاست که اگه کد رو به به لایتای دیگه اضافه کنم اونوقت هر کدوم از لایتا جداگانه به صورت Random چشمک می زنن که من اینو نمی خوام. همونطوری که گفتم می خوام همه شون با هم به صورت Rabdom چشمک بزنن.

ازشون پرسیدم که چیکار کنم گفتن که:

make myLight an array of lights and assign the lights that need to be on/off at the same time to the array. Then when turning on/off, iterate through the array setting 'enabled' for all of them.


می گه myLight رو به صورت array دربیار که به صورت همزمان Light ها خاموش و روشن بشن. (گمونم منظورش اینه که یه متغیر ساخته بشه و بشه لایت ها رو بهش اضافه کرد درسته ؟)

چطور می تونم اینکارو بکنم ؟

-----------------------------------

نکته: بهترین تنظیم چشمک به نظرم:

Min Tim: 0.7
Thresh: 0.97

البته بین 0 تا 1 ه..

parvizamd
30-07-2013, 07:18
آقا اسم کاربریت خیلی سخته :n02:

اسکریپت به صورت تغییر بده :



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اینها فقط تو یک شی باید اجرا بشه و لامپ هات tag شون بشه light تا بره تو آرایه .

با تشکر.

Homunculus
30-07-2013, 09:54
ممنون پرویز جان... اسمم سامان ه. می تونی با این اسم صدام کنی. Homunculus هم شخصیت مورد علاقه م تو بازی Shadow of Destiny ه. :n01:

اولش اومدم کد رو به جاوام با اسم Flicker اضافه کردم اما این ارورو داد:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بعدش دیدم می گه Unknown Identifier گفتم لابد باس اسمش عوض شه. اومدم اسمشو به GameObjets تغییر دادم. دیگه اروری نداد اما وقتی بازی رو اجرا کردم همچین اروری داد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کجا رو دارم اشتباه میرم ؟ :n03:

parvizamd
30-07-2013, 10:54
ببخشید تو اینجا کد زدم سامان واست یک مثال می زنم.

از ضمیمه دانلودش کن


راستی بهتره سوالات راجع یونتی در بخش پشتبانی بپرسی.

Homunculus
31-07-2013, 00:31
وای پرویز ممنونم ازت..الان 3 روزه درگیر همین بودم... تو اسکریپت اسمتو به عنوان ادیتور اضافه کردم و همینطور تو سایت یونیتی هم ازت تشکر کردم... :n01:


اما به یه مشکل دیگه برخوردم... از اونجایی که دارم واسه مهتابیم از شیدر Self Illuminated استفاده می کنم پس با چشمک زدن Light ، خود شیدر هم باس چشمک بزنه در غیر اینصورت غیرطبیعی به نظر میاد. همینطور می خوام ایفکت نویز هم بهش اضافه کنم پس تمام اینکارا باس در یک آن انجام شه. گمون نکنم که با اسکریپت بشه همه شو به درستی انجام داد. حدسم اینه که Animation بهترین گزینه س درست می گم ؟

البته می خوام این اسکریپتو واسه یه جای دیگه استفاده کنم...

---------------------------------------

احسان لطف کن این تاپیکو به بخش پشتیبانی انتقال بده اگه به اونجا مربوط میشه... مرسی

parvizamd
31-07-2013, 03:53
animation فکر خوبیه واسه نوریه.

Homunculus
31-07-2013, 17:16
animation فکر خوبیه واسه نوریه.

از انیمیشن استفاده کردم، کار فوق العاده از آب دراومد اما یه چند تا بدی هم داره.

متاسفانه یونیتی نمی تونه Curve و یا 4 تا Keyframe رو کپی پیست کنه که این تبدیل به فاجعه میشه چون اونوقت اگه بخوایم دقیقا همون Animation رو واسه یه آبجکت دیگه استفاده کنیم باس ثانیه به ثانیه انیمیشن قبلی رو یه جا یادداشت کنیم و به آبجکت بعدی اعمال کنیم تا با هم Sync شن.

اگه بخوایم کوچکترین ویرایشی اعمال کنیم (مثل عوض کردن رنگ) اونوقت ...

انیمیشن انعطاف پذیر نیست.

اصلا User-friendly نیست. حتی نمی تونی Hotkey واسه گزینه Play انیمیشن تنظیم کنی. هر لحظه باس رو گزینه Play کلیک کنی.

------------------------------------------

کلا انیمیشن یونیتی به درد جاهایی می خوره که فقط یه آبجکت بخواد به صورت ساده انیمیت شه و اون انیمیت هم دائمی باشه. مثل باز و بسته کردن در.

Homunculus
02-08-2013, 07:21
کسی می دونی چطور میشه Crossfade واسه بازی تعبیه کرد ؟ می خوام وقتی بازی رو اجرا می کنم به منو fade-in شه و بعدش وقتی که رو New Game کلیک می کنم به شروع بازی Crossfade شه.

آموزششو دارم اما متاسفانه بر اساس OnTriggerEnter عمل می کنه.

AutoFade:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


LoadLevel:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ehsan_wwe
02-08-2013, 12:52
خوبه همینطوری با اشتیاق ادامه بده
سعی کن برای این افکتها از یه پلن جلوی دوربین اسفتاده کنی که الفاش تغییر میکنه یا بزرگ میشه و ... یا... بهش فکنم بگن hud camera

parvizamd
02-08-2013, 13:05
fadeing کاری نکرده اما فقط کافیه دو تصویر با آلفا ممتم هم نشون بدی .

مثال :(این کد همینچا نوشته شده )


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

Homunculus
02-08-2013, 15:38
خوبه همینطوری با اشتیاق ادامه بده
سعی کن برای این افکتها از یه پلن جلوی دوربین اسفتاده کنی که الفاش تغییر میکنه یا بزرگ میشه و ... یا... بهش فکنم بگن hud camera
مرسی. دلیلشم تو بودی... :n01:

اما جالبه که آلفا واسه بعضی از آبجکتا عمل نمی کنه. یعنی باس همه شون Alpha Mask داشته باشن ؟ یه بار سعی کردم که آلفا Skybox و یا خیلی چیزای دیگه رو تغییر بدم اما نشد...

راستی کلی هم به آواتارت خندیدم.


fadeing کاری نکرده اما فقط کافیه دو تصویر با آلفا ممتم هم نشون بدی .

مثال :(این کد همینچا نوشته شده )


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

کد رو به محضی که وارد کردم خطا داد...

Assets/_Scripts/Fade.js(10,1): BCE0005: Unknown identifier: 'Destory'.
Assets/_Scripts/Fade.js(18,23): BCE0005: Unknown identifier: 'alpha'.
Assets/_Scripts/Fade.js(19,87): BCE0005: Unknown identifier: 'Tex'.
Assets/_Scripts/Fade.js(20,25): BCE0005: Unknown identifier: 'alpha'.
Assets/_Scripts/Fade.js(21,87): BCE0005: Unknown identifier: 'Tex2'.


البته دقیقا متوجه نشدم که مثالی که زدی رو باس به کجا اعمال کرد اما کدی رو که تو پست قبل گذاشتم با ورود کاراکتر به BoxCollider از LoadLevel 0 به LoadLevel 1 فید میشه.

الان کدی که برای شروع بازی با کلیک روی New Game دارم ازش استفاده می کنم اینه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته همونطوری که خودت می دونی این کد جاواست و قبلیه سی شارپ بودش.
فرمانی که من میخوام اینه که با OnMouseEnter بتونم اسکریپت AutoFade رو اجراش کنم تا به Level بعدی Crossfade شه. البته این حالت کلیک کردن روی گزینه های منو بودش. اینکه قبل اون چجوری بخواد فید شه رو هیچ نظری ندارم!!!

ممنون میشم راهنمایی کنی. بدون فید هیچ جذابیتی نداره. الان یه هفته س دارم یوتوبو شخم میزنم و از سایت یونیتی سوال می پرسم. یا آموزشاشون مشکل داره و فقط برای یه مدل یا یه قسمت خاص کار می کنه (مثل همون قضیه Footstep) و یا اینکه سایت یونیتی تخصیصی جواب میدن و کم پیش میاد برات کد آماده بذارن.
الان این یه هفته ای که صرف شد شاید کار نیم ساعت یه برنامه نویس بود. واقعا کاری که دارم می کنم احمقانه س و آب در هاون کوببیدنه. ممکنه بتونی محیط های تری دی زیبایی خلق کنی اما رنگ و لعاب زدنشون بیشترش مربوط به برنامه نویسی میشه. امیدوارم زودی تمومش کنم چون واقعا دیگه دارم هنگ می کنم.

parvizamd
02-08-2013, 16:06
سلام این دو تا تکچستربه صورت fade نشون می ده


Assets/_Scripts/Fade.js(10,1): BCE0005: Unknown identifier: 'Destory'.
Assets/_Scripts/Fade.js(18,23): BCE0005: Unknown identifier: 'alpha'.
Assets/_Scripts/Fade.js(19,87): BCE0005: Unknown identifier: 'Tex'.
Assets/_Scripts/Fade.js(20,25): BCE0005: Unknown identifier: 'alpha'.
Assets/_Scripts/Fade.js(21,87): BCE0005: Unknown identifier: 'Tex2'.

این آرو فقط اشتباهی تایپی بود . گفتم که اینجا تایپ می کنم.

ehsan_wwe
02-08-2013, 20:47
مرسی. دلیلشم تو بودی... :n01:


اما جالبه که آلفا واسه بعضی از آبجکتا عمل نمی کنه. یعنی باس همه شون Alpha Mask داشته باشن ؟ یه بار سعی کردم که آلفا Skybox و یا خیلی چیزای دیگه رو تغییر بدم اما نشد...

راستی کلی هم به آواتارت خندیدم.

من چی کارم خودت همت داری

الفایی که جلوی دوربن باشه رو همه چی جواب میده اگه می خوای برات یه یونیتیشو میسازم
بفهمی چی میگم

Homunculus
03-08-2013, 03:25
یافتم. نمی دونم چرا خنگ بازی در می آوردم. دستورا رو می فهمیدم اما دستور اشتباه رو وارد می کردم.
من از دستور OnMouseEnter استفاده می کردم که مربوط به ورود موس هستش نه اجراش. فقط کافی بود که OnMouseUp رو جایگزین OnTriggerEnter کنم. همین: :n01:

LoadLevel:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



حالا چند تا مشکل دیگه:

1. میشه به کد بالا دستور OnMouseEnter و OnMouseExit رو اضافه کرد ؟
آخه می خوام وقتی موس رو میبرم رو گزینه ها رنگشون عوض شه. اه... کاشکی کدش جاوا بود اونوقت این دستورو هم اضافه می کردمو دیگه مشکلی وجود نداشت:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

همین الان سرچ کردمو یه نمونه تغییر رنگ رو به زبون C# پیدا کردم:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما نمی دونم چرا وقتی اد می کنم با پیغام خطا مواجه میشم. پرویز جان ببین دارم درست ترکیبشون می کنم یا نه:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید



2. موسیقی پشت زمینه بعد کلیک فید نمیشه. کدشو پیدا کردم و به Audio هم اضافه کردم و درست هم فید می کنه

AudioFade:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما چطور وقتی کلیک کنم این کار هم زمان با فید شدن صحنه اتفاق بیافته ؟ این کارو کردم نشد:

AutoFade.AudioFade. LoadLevel(1 ,3,1,Color.black




من چی کارم خودت همت داری

الفایی که جلوی دوربن باشه رو همه چی جواب میده اگه می خوای برات یه یونیتیشو میسازم
بفهمی چی میگم
اگه کمکت نبود مطمئنا سمتش نمی رفتم.

در مورد آلفای دوربین هم سرچ کردم و کدش هم پیدا کردم و درست هم کار می کنه اما من نمی خوام دوربین طی یه محدوده زمانی Crossfade کنه. جدا از اینکه این فقط محدود به یه تکسچر میشه. من می خوام کل صحنه فید شه.
شاید این کار واسه Logo اول بازی مناسب باشه. یعنی لوگو رو با فید این و آوت نشون بده. درست می گم ؟

ehsan_wwe
03-08-2013, 08:54
مثل اینکه منوجه نشدی چی میگم
الان با دو سه خط کد برات حاظرش میکنم
موفق باشی
( دو سه مین دیگه میزارمش اینجا)

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

یک سری قانون تو برنامه نویسی هست که احساس کردم بلد نیستی
زیر ایف اگه یک خط کد داشتی میتونی از {} استفاده نکنی اما اگه بیشتر بود و تو از اونیارو گیومه استفاده نکردی فقط خط زیر ایف حساب طبق شرط اجرا میشه

میتونی برای کد رنگ فید شدنت تو اسکریپت همونی باشه که تو یونیتی وارد میکنی از این روش استفاده کنی


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حالا کد همون رنگی که تو یونیتی زدی رو تو اسکریپتت فرا خانی کردی

اون اف و اون انیمیشنی که گذاشتم برای خوشکلی کاره و حالت اموزشیو به درد بخور نداره ( کلا من کار زشت نمیدم نت )

Homunculus
04-08-2013, 00:46
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

راستش همونطوری که گفتم من کد نویسی بلد نیستم و فقط می تونم بخونم و تا حدودی سر در بیارم. کدی که دادی رو امتحان کردم اما بازم ارور داد. می تونی اینو به اسکریپت پایین اضافه ش کنی ؟ شاید دارم اشتباه اضافه ش می کنم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


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

ایول احسان. جالب بود. پسر تو برنامه نویسی هم بلدی ؟ پس همه کاره ای دیگه. :n01:
می خوام از این کدت واسه لوگوی اول بازی استفاده کنم که با fade in شروع شه و با fade out هم تموم. میشه به کدت fade out هم اضافه کنی که time هم داشته باشه ؟ مثلا ظرف 5 ثانیه لوگو crossfade شه.

ehsan_wwe
04-08-2013, 00:53
تو کد یه جایی گفتم که تایم اضافه بشه اون =+ اینو تبدیل کن به =- بعد عدد اولیه تایم رو هم تغییر بده به 1 بعد یکمم ایف رو تغییر بده
اگه حرفه ای تر می خوای کار کنی رنگارو تغییر بده دیگه برات بگم ممم.... از رندرتوتکسچر برای ذخیره آخرین صحنه از سکانس قبل و به صورت فید مخلوط شدن با صحنه جدید استفاده کنی

در مورد اسکریپت بالا من به این اسکریپتا میگم قرتی بازی خوشمم نمیاد ازشون :دی
ارور کد من هم احتمالا به دلیل رعایت نکردن حروف کوچیک و بزرگه معمولا با زدن کلید ctrl+space وقتی که یه کلیک کردی رو کد کد رو غلط گیری میکنه

Homunculus
04-08-2013, 06:15
تو کد یه جایی گفتم که تایم اضافه بشه اون =+ اینو تبدیل کن به =- بعد عدد اولیه تایم رو هم تغییر بده به 1 بعد یکمم ایف رو تغییر بده
اگه حرفه ای تر می خوای کار کنی رنگارو تغییر بده دیگه برات بگم ممم.... از رندرتوتکسچر برای ذخیره آخرین صحنه از سکانس قبل و به صورت فید مخلوط شدن با صحنه جدید استفاده کنی

در مورد اسکریپت بالا من به این اسکریپتا میگم قرتی بازی خوشمم نمیاد ازشون :دی
ارور کد من هم احتمالا به دلیل رعایت نکردن حروف کوچیک و بزرگه معمولا با زدن کلید ctrl+space وقتی که یه کلیک کردی رو کد کد رو غلط گیری میکنه

در مورد سمپلی که دادی دقیقا اسکریپتی رو که گفتم به همین صورت عمل می کنه. با این تفاوت که دیگه لازم نیست که plane رو به صورت دستی بسازی.
یه عکس مشکی کوچیک میسازی و میندازی تو قسمت texture ش و صحنه به راحتی fade-in میشه.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اما من فقط نمی خوام فید این بشه. می خوام بعد چند ثانیه فید آوت بشه و بعدش Level مورد نظرمو لود کنه. تو یاهو زحمت این کارو کشیدی اما به level بعدی لود نمیشه.

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

Homunculus
05-08-2013, 16:34
خب رسیدم به مرحله حساس کار که خیلی برام حائز اهمیته... :n01:

بحث Lightmapping و OcclusionCulling ...

از دوستان اگه کسی اطلاعات تخصصی تو این زمینه داره لطفا راهنمایی کنه.

در مورد Lightmapping:

1. بعد از Lightmapping یه تکسچر می گیری که حاوی اطلاعات map شده دور و نزدیکه (البته اگه Dual Lights رو از گزینه انتخاب کرده باشین) نکته ای که نمی گیرم این هستش که این تکسچر چجوری به مش های مربوطه کانکت میشه ؟ مثلا وقتی می خوایم یه تکسچری رو به آبجکتی اضافه کنیم از طریق متریال این پیوند برقرار میشه. در مورد Lightmap چطور عمل می کنه ؟ تو همون تب Maps ؟ آخه بدیش اینه که با انتخاب آبجکت ها نمیشه به صورت Selective قسمت های مپ شده رو دید.

2. بهترین و بهینه ترین راه برای Lightmap کردن چیه ؟ مثلا فرض کنین یه ساختمون 5 طبقه داریم و تو هر طبقه ش آبجکت های فراوونی وجود داره. اینکه بخوایم بذاریم همه شونو Lightmap کنه مطمئنا کار زمانبریه. حدس خودم اینه که بیایم مثلا هر طبقه رو انتخاب کنیم و Selective Bake کنیم و بعدش با Lock Atlas مابقی فضای کارو به صورت index اضافه کنیم. درسته ؟

3. تو فضاهایی که Realtime Light های زیادی وجود داره چطور میشه بهترین output رو گرفت بدون حذف سایه ها ؟ حدس خودم اینه که اول بیایم اجسام static رو bake کنیم و بعدش بیایم light مربوطه رو فقط به layer شخصیت بازی یا هر جسم dynamic لینک کنیم. اما بدی این کار اینه که مثلا سایه شخصیت رو آبجکت های اطراف cast نمیشه. گمون نکنم راه بهتری باشه. مگه اینکه Occlusion Culling تنها راه حل باشه!

4. درسته که Lightmapping با تنظیمات خاص می تونه فضای کار رو واقعی تر و طبیعی تر کنه اما وقتی من محیط رو با Light نورپردازی کردم و ازش راضی هستم به نظرم خیلی بی معنیه که بخوام مقادیر رو اونقدر بالا و پایینش کنم تا به مورد خاصی برسم. به نظرم اونجایی که از Light و یا deffered Rendering استفاده نمی کنیم اونوقت Lightmapping در نوع خودش بی نظیر میشه. درست می گم ؟ پس حالا که من صحنه رو نورپردازی کردم چند تا تست می کنم تا به نورپردازی همین صحنه خلق شده برسم و فراتر از اون نرم و زودی رندر شه. درست می گم ؟

در مورد Occlusion Culling ...

این مورد هم مثل Light Mapping ه. به نظرم بسته به زاویه و دید دوربین بهتره که فضای اطراف رو occlude کنیم. حدس خودم اینه که این کار طبقه به طبقه صورت بگیره تا اتاق به اتاق...

منتظر پیشنهاداتون هستم.

ehsan_wwe
05-08-2013, 17:14
به نظر من بازم استفاده از این لایتمپو گزینه های یونیتی قرطی بازیه
لایت مپو تو 3dmax بگیر برا خودت کیفیتو همه چیش بالا تره سرعتشم بیشتره کنترلشم دست خودته

parvizamd
05-08-2013, 18:26
سامان تا اونجایی که من می دونم ouicllcing culling که ربطی به نور پردازی نداره . کار این ابزار که برای ما رایگان کار نیست . اینکه یک جدول bsp ایجاد می کنه (خیلی معلوم تو حالت producen طول میشه ) تا اینکه کار کنه اجسام پشت دیوار رندر نشن البته تنظیماتی داره که دیوار ها هم باید static بشن . کلا بدرد محیط های بسته می خوره .

Homunculus
06-08-2013, 03:55
احسان
من شایدبیش از 10 بار بخوام تست کنم تا به نتیجه موردنظرم برسم. تمام نورها هم تو یونیتی تنظیم شده. چطور ممکنه بتونم تو تری دی مکس همچین کاریو بکنم ؟ من چهار تا نور میذارم تو تری دی مکس کلهم هنگ می کنه. واسه کار با تری دی مکس حتما سیستمت باس 64 بیتی باشه و سرعتشم بالا. به نظر من تری دی مکس اصلا user friendly نیست.

پرویز درسته...
یه لحظه حواسم پرت شد. نباس occlusion culling رو با Lightmaping مقایسه می کردم چون اصلا ربطی به هم ندارن. من یه لحظه فکر کردم که خب اجسام کمتری رندر بشه مسلما نور کمتری هم تو اون زاویه دوربین رندر میشه در صورتی که occlusion culling نور رو رندر نمی کنه. اما راه حل مناسبی واسه Lightmapping وجود داره و اونم استفاده از Shadow Distance ه...

در مورد اینکه برای ما رایگان نیست خود همین light mapping گزینه Dual Map ش هم رایگان نیست. Deffered Rendering و خیلی چیزای دیگه شم رایگان نیست. مگه شما یونیتی رو خریداری کردین ؟ :n04:
خیلی گرون میشه ها! یعنی حدود 5.250.000 تومن. :n02:

Lightmapping و Occlusion از همین الان شروع میشه. حلالم کنید :n02:

Homunculus
06-08-2013, 04:00
بچه ها دو تا سوال دیگه که یادم رفت بپرسم.

1. چطور باس از Collider ها به صورت بهینه استفاده کنم. تو بحث Collider هم باس محتاط باشیم چون نمیشه برای همه آبجکتها بخوایم از mesh collider استفاده کنیم. رو سرعت تاثیر میذاره. یعنی کلا باس به صورت دستی Box Collider درست کنم و گزینه Mesh renderer رو بردارم و تو تمام سطح کار ازش استفاده کنم ؟ تو Angry bot که یه همچین کاریو کرده.

2. چرا نمی تونم یه آینه ساده درست کنم ؟ میام از Mirror Reflection استفاده می کنم اما فقط رو plane خود یونیتی جواب میده. رو plane ی که با تری دی مکس ساخته شده خوب عمل نمی کنه. جدا از اون دو تا ضعف بزرگ وجود داره. یکی اینکه نمیشه بیشتر از یه آینه تو صحنه داشت چون کلا قاطی می کنه و دیگه اینکه وقتی از جلوش رد میشی کل صحنه کند میشه (کیفیت نرمالشم رو 1024 ه). راه دیگه ای وجود نداره ؟

ehsan_wwe
06-08-2013, 07:31
من شایدبیش از 10 بار بخوام تست کنم تا به نتیجه موردنظرم برسم. تمام نورها هم تو یونیتی تنظیم شده. چطور ممکنه بتونم تو تری دی مکس همچین کاریو بکنم ؟ من چهار تا نور میذارم تو تری دی مکس کلهم هنگ می کنه. واسه کار با تری دی مکس حتما سیستمت باس 64 بیتی باشه و سرعتشم بالا. به نظر من تری دی مکس اصلا user friendly نیست.

جوک می قرمایید ؟ حالت ویو پرتتو عوض کن تا هنگ نکنه ( 3ds max خیلی خیلی سبک تر از یونیتیه )مثل عکس زیر عمل کن کلا هرچی نورپردازی کردی تو یونیتی رو از نظر من نگه دار اما شبیهشو تو مکس بزن بعد نوراتو بزار رو حالت اوتوماتیک تا کاراکترت که راه میره نور رو بدنش باشه ( به هر لامپی که نزدیک شی روشن میشه - این روشن شدن تو محیط تاثییر نداره )
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Homunculus
06-08-2013, 18:26
اکی...

در مورد کلایدر و آینه نظری نداری ؟

parvizamd
06-08-2013, 19:54
آینه چیزی بیشتر از یک rendertotextrue نیست .

Homunculus
06-08-2013, 20:28
من فکر می کردم که rendertotextrue فقط به درد نماهای ثابتی مثل security camera می خوره. مگه میشه باهاش آینه هم درست کرد ؟ یادمه کلی تو این زمینه تحقیق کرده بودمو همه هم mirror reflection رو پیشنهاد می دادن. کسی حرفی در مورد RTT نمیزد. کمی توضیح لطفا.

parvizamd
06-08-2013, 20:57
خوب بهترین حالت relelection mrror هست ولی آگر یک plane بزاری و یک دوربین بزاری جلوش و تصویری بزاری تکچستر آن معکب میشه . رندر تکسچتر خیلی کاربرد داره.

ehsan_wwe
07-08-2013, 10:43
ازین گزینه ای که پروزیز گفت خبر ندارم شاید تو ورژن جدید اومده
اما رفلکت آینه یکسری محاسبات داره که دوربین باید از مهور عمودی عکس شما چرخش داشته باشه و باید fOV یش با توجه به سایز آینه تغییر کنه کلا کار سختیه میرور راحت تره
اگه اینی که پرویز میگه یه اشتباه کوچیک باشه حق با شماس میرور برای
نماهای ثابتی مثل security camera می خوره
اگه که تو 6 محور رندر تو تکستچر تلقیق شده میده دیگه اسون تر از این نمیشه فقط یه رفلکت خالی کافیه

Homunculus
07-08-2013, 14:19
والا من اصلا متوجه منظورتون نمیشم. من می خوام دو تا آینه به محیط کارم اضافه کنم اما با Mirror Reflection n دو تاش قاطی می کنه اما یه دونه ش مشکلی نداره سوای اینکه به خاطر سنگینی محیط کار تیک هم میزنه. RTT هم که ایفکت آینه ای نمیده.

سمپل زیرو واستون آماده کردم. همه چیز به خوبی توضیح داده شده: (ریفلکشن کف fake هستش که فقط واسه زیبایی کاره)

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


Download the Sample ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])

parvizamd
07-08-2013, 16:40
چیزی که گفتم یک نما ثابت هست برای شیشه کروی چندان جالب در نمی آد منظور شیدراش بود .

ehsan_wwe
07-08-2013, 19:20
امید وارم یک مقدار درک کنید رفلکت یعنی چی
براتو سه تا عکس ساختم آخرین آموزش مفهومی برای چیزای پیش پا افتاده است ( لطفا اطلاعاتتونو ببرین بالا )
دوربین بدون تحرک رو یک پلن ساف چطوری آینه میده آخه ؟

عکسارو ببینید !

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

Homunculus
07-08-2013, 19:51
وای احسان من یه سوال ساده می یپرسم و تو هم هی بستش میدی به جای دیگه. نمی دونم الان داری با تری دی مکس کار می کنی یا یونیتی ؟
من می خوام دو تا آینه ساده تو یونیتی بسازم. با Mirror Reflection امتحان کردم نشد. کسی هم دلیلشو توضیح نداد که چرا Mirror Reflection با دو تا آینه مشکل داره.

والا من دیگه هنگ کردم. اگه راه ساده ای وجود داره راهنمایی پلیز و اگه نه وقتتو نمی گیرم... تا همینجاش مرسی.

راستی با Cubemap رو سطح صاف امتحان کردم نتیجه کار رضایت بخش بود اما حیف که نمیشه آبجکت های دینامیک رو هم داشت!

متاسفانه بعد از سالها تلاش نه اینجا و نه تو سایت یونیتی نتونستم دو تا آینه ساده درست کنم.

Tooooo Baaaaaaaaaaad :n03:

ehsan_wwe
07-08-2013, 22:24
خو این که مسخره ترین راهو داره و. خنده دار
دوتا ابجکتو تو مکس یکی کن بیار تو یونیتی درست میشه
یونیتی فقط میتونه به یک ابجکت میرور بده گرفتی ؟

اون آموزشم برای پرویز بود که میگفت با یک دوربین معمولی و پلن صاف میشه اینه ساخت ( اون قانونه اینه ساختنه فقط اسکریپتشو نداشت )

parvizamd
08-08-2013, 04:27
احسان آینه ساده گفتم . منظور کلا این بود( این آموزش های قدیمی هستن ) دیگه یوینیتی پرو ندارم.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

ehsan_wwe
08-08-2013, 07:53
پرویز عجب آموزش قشنگیه ایول داره خدایی
فقط حیف که وقت نشده اسکریپتشم یاد بده
دمش گرم هرکی اآموزشو ساخته

Homunculus
08-08-2013, 11:55
حاج بنی.. چه نگاه مظلومانه ای داری :n02:

احسان جان دو تا Plane رو هم تو تری دی ترکیب کردم بازم همون آشه و همون بنلادن :n02:

اما اومدم از یه ترفند بهتر استفاده کردم که اینبار کاملا جواب داد. از اونجایی که تو صحنه ای که می خوام آینه رو به کار ببرم، آبجکتای زیادی قابل رویت هستن پس Realtime بودنش کارامد نیست. اومدم یه Cube ایجاد کردم و عمقشو باریک کردم تا شبیه آینه شه و با استفاده از پلاگین Cubemap Maker ، مپ مورد نظرو درست کردم و دادم به Cube و نتیجه کار بی نظیر از آب دراومد. اما فقط دینامیک نیستش. به بزرگواری خودت ببخش :n01: آینه رو هم یه نمه کج کردم تا زوایه ای تقریبا رو به بالا داشته باشه و شخصیت هم قابل رویت نباشه. من که راضیم و دم خودم گرم.



اما خداییش تا حالا نشده که بخوام اسکریپتی پیدا کنم و بتونه نیاز مورد نظرو برطرف کنه. همه شون خلاصه یه نقصی دارن. مشکلی که الان با اسکریپتم دارم اینه که وقتی وارد Collider میشی Light روشن میشه اما وقتی خارج میشی خاموش نمیشه:



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

حدسم اینه که این کار باس توسط یه else statement و یا OnTriggerExit انجام بشه. اومدم این خطو زیرش اضافه کردم نشد:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

ehsan_wwe
08-08-2013, 13:34
بجای ست اکتیو نور لایتو کم کن یا زیاد کن شاید جواب داد
یونیتی از این قلقا زیاد داره

Homunculus
08-08-2013, 14:28
یافتم احسان WOW :n04:
دوباره پیغام خطاشو نیگا کردم متوجه شدم. مشکل نبستن کد با این دو تا بودش:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

میگم بهتره برم کد نویسی یاد بگیرم استعدادشو دارما. نه بنی جون :n02:

parvizamd
08-08-2013, 16:39
خوب این آموزش آینه ها مشکل داره اگر کسی باهاش گمراه شد ببخشید البته فکر کنم به دوربین lookat کنه بهتر دربیاد .

ehsan_wwe
08-08-2013, 19:29
به صورت معکوس اگه بشه درست میشه پرویز جان ( اللیطه باید تو محور x ,y هم تغییر وضعیت بده )

Homunculus
08-08-2013, 23:15
راستی میشه دوربین ثانویه با زاویه محدود به 45 درجه دوربین اولیه رو با تصویر -180 درجه دنبال کنه ؟ اگه اینجوری بشه می تونیم به ایفکت آینه ای برسیم.

ehsan_wwe
08-08-2013, 23:46
زاویه شو رو باید منیهای 360 کرد حالا تو دوتا محور یا یکی
جابجاییشم
تو مخور پخ شده آینه همراهیت کنه
فقط با این تفاوت که معکوس باشه نصبت بهت جابجاییش یعنی تو اگه دو متر بالا تر باشی
موقعیت دوربن دوم دو متر زیر زمین باشه

lord arthas
09-08-2013, 00:03
یعنی دلیل ویرایشت تو حلقم =)))))))))))

Homunculus
09-08-2013, 00:15
زاویه شو رو باید منیهای 360 کرد حالا تو دوتا محور یا یکی
جابجاییشم
تو مخور پخ شده آینه همراهیت کنه
فقط با این تفاوت که معکوس باشه نصبت بهت جابجاییش یعنی تو اگه دو متر بالا تر باشی
موقعیت دوربن دوم دو متر زیر زمین باشه
جالب بود احسان. مطمئنا نیاز به کد نویسی هم داره درسته ؟ آموزشش جایی هست ؟ سعی می کنم تو You-tube پیداش کنم و لینکشو اینجا بذارم.

ehsan_wwe
09-08-2013, 00:44
unity melato soosool karde
ba script bayad khodet daresh biari
age tehrani
biar barat radifesh konam

Homunculus
09-08-2013, 10:31
مرسی احسان لطف داری. بالاخره با راهنمایی ت پیداش کردم.

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]