PDA

نسخه کامل مشاهده نسخه کامل : اموزش عوض کردن کارکتر پیش فرض در UDK



silsin
31-10-2011, 16:04
سلام

بیکار نشسته بودیم گفتیم یه اموزشی هم از خودمون در و کنیم . :31:


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


خب خب واسه اینکه این کار رو شروع کنیم اول یه توضیح کوچیک باید بدم .
من واسه شروع می خوام ساده ترین ساختار واسه این اموزش رو بهتون بگم .
ما توی این اموزش از ساختار انریل تورنومنت استفاده خواهیم کرد .
خب شروع کنید
ما به سه کلاس نیاز داریم
1-کلاس مربوط به بازی
2-کلاس کنترل کننده کارکتر
3-کلاس سازنده کارکتر


شروع کنید به ساختن !!!!

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


Class MyGame Extends UTGame

defaultProperties
}

PlayerControllerClass= class ' '
defaultPawnClass=Class' '

{

خب فکر نکنم این دو خط نیازی به تعریف داشته باشن . میریم بعدی


خب حالا کلاس مربوط به کنترل پلایرمون رو می سازیم

Class MyPlayerCo Extends UTPlayerController;


defaultProperties
}


{

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



میریم سراغ بعدی


var MyPawn Extends UTPawn;

var SkeletalMesh defaultMesh;
var AnimTree defaultAnimTree;
var array<AnimSet> defaultAnimSet;
var PhysicsAsset defaultPhysicsAsset;

simulated function SetCharacterClassFromInfo(class<UTFamilyInfo> Info)
{
Mesh.SetSkeletalMesh(defaultMesh);
Mesh.SetMaterial(0,defaultMaterial0);
Mesh.SetPhysicsAsset(defaultPhysicsAsset);
Mesh.AnimSets=defaultAnimSet;
Mesh.SetAnimTreeTemplate(defaultAnimTree);

}


defaultproperties
{
defaultMesh=SkeletalMesh'CH_IronGuard_Male.Mesh.SK _CH_IronGuard_MaleA'
defaultAnimTree=AnimTree'CH_AnimHuman_Tree.AT_CH_H uman'
defaultAnimSet(0)=AnimSet'CH_AnimHuman.Anims.K_Ani mHuman_BaseMale'
defaultPhysicsAsset=PhysicsAsset'CH_AnimCorrupt.Me sh.SK_CH_Corrupt_Male_Physics'

}

خب اینجا چند تا مسئله می مونه که باید توضیح داد:



simulated function SetCharacterClassFromInfo(class<UTFamilyInfo> Info)
{
Mesh.SetSkeletalMesh(defaultMesh);
Mesh.SetMaterial(0,defaultMaterial0);
Mesh.SetPhysicsAsset(defaultPhysicsAsset);
Mesh.AnimSets=defaultAnimSet;
Mesh.SetAnimTreeTemplate(defaultAnimTree);

}
این خطوط باعث میشه که متغییر هایی که ما بتونیم مقادیر خودمون رو توی کلاس UTFamilyInfo جایگزین کنیم





این خطوط پایینی هم باعث میشه که متغییر هایی که ما بالا برای جایگیزینی توی کلاس UTFamilyInfo انتخاب کردیم مقدار دهی بشن
defaultMesh=SkeletalMesh'CH_IronGuard_Male.Mesh.SK _CH_IronGuard_MaleA'
defaultAnimTree=AnimTree'CH_AnimHuman_Tree.AT_CH_H uman'
defaultAnimSet(0)=AnimSet'CH_AnimHuman.Anims.K_Ani mHuman_BaseMale'
defaultPhysicsAsset=PhysicsAsset'CH_AnimCorrupt.Me sh.SK_CH_Corrupt_Male_Physics'


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

best regard :31:
حسن فخاری

ACmaster
31-10-2011, 17:52
ممنون Silsin جان فکر کنم شما که انقدر آموزش از UDK ساختید همش را گرداوری کنید یه جا بزارید خیلی خوب بشه :46:

Reza Azimy_RW
31-10-2011, 21:23
ايول داداش دمت گرم همين روزا دنباله اين اموزش بودم . مردي .اونوقت يه سوال: مهم نيست اسکلت بندي چي باشه ؟ يا اسم بونها ؟ يعني بقيه کارها برنامه نويسي اضافي يا ... نداره ديگه ؟
اونوقت کامپايل کدها تو نسخه جديد مثه اينکه اتومات شده ؟ يعني نميخاد اون فايلاي ini رو تعقير بديم ؟

silsin
31-10-2011, 21:28
ايول داداش دمت گرم همين روزا دنباله اين اموزش بودم . مردي .اونوقت يه سوال: مهم نيست اسکلت بندي چي باشه ؟ يا اسم بونها ؟ يعني بقيه کارها برنامه نويسي اضافي يا ... نداره ديگه ؟
اونوقت کامپايل کدها تو نسخه جديد مثه اينکه اتومات شده ؟ يعني نميخاد اون فايلاي ini رو تعقير بديم ؟

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

نه برنامه نویسی اضافه نداره . همینطور که گفتم این ساده ترین حالتشه که خیلی زود به نتیجه می رسه . تازه تا حدودی دستت واسه هر کاری بازه . بهتره یه سر کلاس های UTFamily info رو ببینی که توش چی داره . از ساخت دست توی حالت اول شخص بگیر تا پایین . اما این حالت یه سری محدودیت ها داره که نمی گم :31: میزارم خودتون بفهمین :27:

در مورد اخری هم راستش خبر ندارم چون 3 4 نسخه عقبم . واقعا شده ؟ این که خیلی خوبه:8:

silsin
31-10-2011, 23:40
ممنون Silsin جان فکر کنم شما که انقدر آموزش از UDK ساختید همش را گرداوری کنید یه جا بزارید خیلی خوب بشه :46:

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

Reza Azimy_RW
02-11-2011, 19:48
قربونت حسن قشنگ جواب این سوالمو بده :
برای مثال اون کدهایی که تو واسه بازیمون بهم دادی . من ریختم scr تو پوشه RW الان باید چیکار کنم کامپایل شه ؟ تو انجین که میرم اولا" که اصلاBuld نمیکنه اسکریپتا رو بعدم که اصلا اثری از FunGame یا یه چیز جدید تو Actor Class نبود . چه کنم این کدها اعمال شه ؟

silsin
02-11-2011, 19:53
رضا جان عزیزم . شما خجالت نمی کشی / ؟ :31: انتظار هر سوالی رو داشتم غیر این. یعنی اصلا انتظار این سوال رو از هرکسی داشتم غیر تو . اصلا حالا که اینجوری شد اصلا جوابت رو نمیدم تا خودت بری بگردی پیداش کنی . :13: ابروی ما رو بردی تو :13:

Reza Azimy_RW
02-11-2011, 19:57
راستی تنظیکات دوربین نمیخاد ؟ کد برای تنظیم دوربین ؟ دوربین از کجا میفهمه باید کجا وایسه ؟

---------- Post added at 09:57 PM ---------- Previous post was at 09:55 PM ----------

حسن تو خجالت نمیکشی ؟:دی
خوب خره من تا حالا مد نویسی نکردم یعنی اینجوریشو نکردم . یعنی یه چزایی در مورد ini ها و ... میدونم .تست کردم مثه اینکه جواب نمیده

AMIR REZAs
02-11-2011, 20:04
برای مثال اون کدهایی که تو واسه بازیمون بهم دادی . من ریختم scr تو پوشه RW الان باید چیکار کنم کامپایل شه ؟ تو انجین که میرم اولا" که اصلاBuld نمیکنه اسکریپتا رو بعدم که اصلا اثری از FunGame یا یه چیز جدید تو Actor Class نبود . چه کنم این کدها اعمال شه ؟ باید از طریق UnrealFrontend / script / full recompile
کل اسکریپت ها رو کامپایل کنی
یه راه دیگه هم داره که واسه بعضی کدها جواب میده ، وقتی Udk.exe باز میکنی سوال میکنه میخوای کدها رو کامپایل کنی ok میکنی بعد از اینکه کامل کامپایل شد دوباره udk.exe باز میکنی
راه اصولیش همون اولیه هست فکر کنم همونم بدردت بخوره:46:


راستی تنظیکات دوربین نمیخاد ؟ کد برای تنظیم دوربین ؟ دوربین از کجا میفهمه باید کجا وایسه ؟

واسه دوربین میشه از کدهای پیش فرض استفاده کرد ، بهتره واسه تست کاراکتر از سوم شخص استفاده کنیم کدهای آماده سوم شخص تو تاپیک "کدهای آماده Unreal scrip " خود حسن آقا هست/
واسه تنظیمات دوربین باید یه GameInfo جدید ایجاد کرد که فکر کنم این کلاسی باشه که حسن آقا نوشته



Class MyGame Extends UTGame

defaultProperties
}

PlayerControllerClass= class ' '
defaultPawnClass=Class' '

{

silsin
02-11-2011, 20:48
سلام .
اون رو که امیر رضا لطف کرد جواب داد. اما در مورد دوربین من دوربین رو داخل خود Pawn نوشتم واسه همین نیازی به یه کلاس جدا نداشت

Reza Azimy_RW
02-11-2011, 21:22
باید از طریق UnrealFrontend / script / full recompile
کل اسکریپت ها رو کامپایل کنی
یه راه دیگه هم داره که واسه بعضی کدها جواب میده ، وقتی Udk.exe باز میکنی سوال میکنه میخوای کدها رو کامپایل کنی ok میکنی بعد از اینکه کامل کامپایل شد دوباره udk.exe باز میکنی
راه اصولیش همون اولیه هست فکر کنم همونم بدردت بخوره[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

اخه من الان این کدها رو ریختم کامپایل هم کرده بودم ولی فکر کردم از توی Actor Class باید ایجادش کرد .... که همونجا هم که گفتی باز چیزی نمیاد. نمیدونم چرا . اخرش نشد . البته من تو این فایلای ini تعقیر ندادم ؟


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

parvizamd
02-11-2011, 22:19
خدا خیرت بده رضا جون
فایل INI رو تغییر ندادی....:31:اصلاش همونس که تو گزینه توش باید عوض کنی که آنریل کلاس های کنترل بشانسه هر وقت فرق کرد تغییر بده
(اینو مال خیلی وقت پیش هاس که با UDK کار می کردم).

حالا رضا میگه:
یه کلمه از ننه عروس:31:

Reza Azimy_RW
02-11-2011, 23:10
اخه اصلا تو نسخه جدید اینا تعقیر کرده الان نمیدونم اتومات شده یا روشش فرق کرده . مثلا من طبق این اموزش :

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اصلا نمیشه پیش برم چون اصلا فایلا عوض شده . تو نسخه های قبل میشد طبق این پیش رفت ولی الان نه

NINJA0098
03-11-2011, 00:09
رضا الان میخوای دقیقا چیو بدونی؟
من قبلا یه اموزش برای وارد کردن کلاس گذاشته بودم همونو بخونی میفهمی چجوریه ...
بعد از کامپایل هم باید بری توی view و world info وgame pie یا همون play in editor رو کلاس خودت انتهاب کنی تا نتیجه رو ببینی ...
موقع خروجی گرفتن برای بازی باید توی فایل ini تغییر ایجاد کنی تا کلاس هاتو به عنوان کلاسای پیش فرض انجین بشناسه ....
اینم همون اموزشیه که قبلا گذاشته بودم ...

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

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

Reza Azimy_RW
03-11-2011, 00:32
بعد از کامپایل هم باید بری توی view و world info وgame pie یا همون play in editor رو کلاس خودت انتهاب کنی تا نتیجه رو ببینی ...
اخه اینجا کلاس خودمو نمسبینم من ! مثلا این کدهایی که حسن داده اینجا نمیاد .


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

NINJA0098
03-11-2011, 00:50
یعنی فقط موقع خروجی گرفتن باید این کارو بکنی و برای تست تو ادیتور لازم نیست ؟
برای کامپایل کلاست باید اول پوشه رو توی development و src بسازی ....بعد تو اون پوشه یه پوشه به اسم classes میسازی و کلاسا رو میریزی تو اون پوشه .....
بعد میری UDKGame\Config و فایل DefaultEngine رو باز میکنی و توی قسمت [UnrealEd.EditorEngine] می نویسی =edit package+ و جلوش اسم اون پوشه ی کلاسا که توی src ساختی رو مینویسی ....بعد سیو میکنی و می بندیش ...
حالا ادیتور رو اجرا میکنی که یه پیام میده که میگه اسکریپتا رو کامپایل کنم؟ و تو yes رو میزنیو صبر میکنی تا کد کامپایل بشه ...
بعد از کامپایل شدن کد ... ادیتور رو دوباره اجرا کن و برو تو قسمت game pie و کلاس خودت رو انتخاب کن ... یا اگه کلاس خاصی مثل کاور هست برو تو actor class و ببینش ....
همین ...
موقع خروجی گرفتن برای بازی یه ری کارای دیگه باید تو فایل ini باید بکنی که حسش نیست بگم .....

silsin
03-11-2011, 06:22
رضا الان میخوای دقیقا چیو بدونی؟
من قبلا یه اموزش برای وارد کردن کلاس گذاشته بودم همونو بخونی میفهمی چجوریه ...
بعد از کامپایل هم باید بری توی view و world info وgame pie یا همون play in editor رو کلاس خودت انتهاب کنی تا نتیجه رو ببینی ...
موقع خروجی گرفتن برای بازی باید توی فایل ini تغییر ایجاد کنی تا کلاس هاتو به عنوان کلاسای پیش فرض انجین بشناسه ....
اینم همون اموزشیه که قبلا گذاشته بودم ...

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

نه رضا این خیلی قدیمیه درواقع بری ادیتور انریل تورنومنت هست ... تو این آموزش هم داره یه mutator مینویسه ...
برای وارد و کامپایل کردن کد باید همون روشی که بالا گذاشتمو بری ....

اخه داداش من این کجاش Mutator اه؟ :31:

Reza Azimy_RW
03-11-2011, 09:37
ایول داداش دمت گرم . حسین خیلی میخامت . من گیره همین بودم :دی

NINJA0098
03-11-2011, 20:47
اخه داداش من این کجاش Mutator اه؟
توی این موزش که رضا لینک داد یه موتاتور هم مینویسه ....
توی toturial 2.4
...

ایول داداش دمت گرم . حسین خیلی میخامت . من گیره همین بودم
نوکرم ....

راستی حسن داداش ندونستن عیب نیست نپرسیدن عیبه ... :46: اگه قرار باشه یه چیزو که نمیدونیم خجالت بکشیم و نپرسیم که اصلا چیزی یاد نمی گیریم .... نه؟

silsin
05-11-2011, 13:37
نه : دی .
اتفاقا واسه رضا شدیدا عیبه . درضمن من کنایه زدم نگفتم که عیبه سوال کردن

Reza Azimy_RW
05-11-2011, 14:09
نه : دی .
اتفاقا واسه رضا شدیدا عیبه . درضمن من کنایه زدم نگفتم که عیبه سوال کردن
اخه یکی این حرفو میزنه که خودش همه چی تموم باشه . تو خودت هنوز دو زار مدلسازی بلد نیستی . نگو چه ربطی به بازیسازی داره که منم میگم لول دیزاین چه ربطی به برنامه نویسی داره . دوما" میگن شوخی که از حد گذر کنه احمق خیال بد کنه همینه

NINJA0098
05-11-2011, 14:35
اتفاقا واسه رضا شدیدا عیبه . درضمن من کنایه زدم نگفتم که عیبه سوال کردن

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

silsin
05-11-2011, 19:08
اخه یکی این حرفو میزنه که خودش همه چی تموم باشه . تو خودت هنوز دو زار مدلسازی بلد نیستی . نگو چه ربطی به بازیسازی داره که منم میگم لول دیزاین چه ربطی به برنامه نویسی داره . دوما" میگن شوخی که از حد گذر کنه احمق خیال بد کنه همینه

مثل اینکه بدجور بهت برخورده ها .
من هیچ وقت نگفتم همه چی تمومم که تو داری اینجوری می گی.
درضمن من به هیچ وجح شوخی نکردم کنایه زدم و فکر نکنم معنی اش شوخی باشه
تو هم از این به بعد هر وقت می خوای با کسی صحبت کنی اول دو سه تا نفس عمیق بکش . یه لیوان اب بخور که با عصبانیت نیای جلو
درضمن کی گفته من مدل سازی بلد نیستم ؟ ها ؟
درضمن یکمی روحیاتت رو بهتر کن که بهت بر نخوره اوکی؟

NINJA0098
05-11-2011, 23:08
میگم بیخیال شین دیگه .. به هردتونو یه چیز میگما ... ای بابا ....