PDA

View Full Version : نحوه استفاده از Object های سه بعدی در بازی ...



Mahmood_M
چهارشنبه 15 شهریور 1385, 13:03 عصر
سلام
من می خواستم بدونم که چه طوری باید از Object های سه بعدی که توی مثلا 3DMax یا Poser درست کردم توی بازی استفاده کنم ؟؟ !
مثلا من یه آدم توی Poser درست کردم ، حالا چه طور مثلا می تونم اون رو توی بازیم به کار ببرم ؟ مثلا با ++C ... ( حرکتش بدم یا ... )
راستش نمی خوام که بهم کد بدید فقط می خوام با کلیات کار آشنا بشم ...
اگه یه نفر یه توضیحی بده ممنون می شم ...
با تشکر
موفق باشید ...

shobair
چهارشنبه 15 شهریور 1385, 13:49 عصر
سلام
من می خواستم بدونم که چه طوری باید از Object های سه بعدی که توی مثلا 3DMax یا Poser درست کردم توی بازی استفاده کنم ؟؟ !
مثلا من یه آدم توی Poser درست کردم ، حالا چه طور مثلا می تونم اون رو توی بازیم به کار ببرم ؟ مثلا با ++C ... ( حرکتش بدم یا ... )
راستش نمی خوام که بهم کد بدید فقط می خوام با کلیات کار آشنا بشم ...
اگه یه نفر یه توضیحی بده ممنون می شم ...
با تشکر
موفق باشید ...

سلام
معمولا موتورهای سه بعدی ابزار این کار رو دارند. مثلا برای 3D Studio ابزار تبدیل به فرمت مورد قبول انجین را دارند.

شبیر

kochol
چهارشنبه 15 شهریور 1385, 19:29 عصر
سلام
برای این کار باید از فرمت فایل های سه بعدی سر در بیاری که مشخصات نقطه ها و تکستچر ها و یا انیمیشن ها رو بخونی و ازش رندر بگیری.
از این هم دیگه کلی تر شکل های سع بعدی چیزی جز یه سری مثلث نیستند.

kochol
دوشنبه 10 مهر 1385, 11:35 صبح
سلام
من بالاخره اولین Mesh Loader ام را برای انجینم نوشتم که فایل های MS3D که با برنامه ی Milk Shape 3D ساخته می شوند رو لود می کنه حالا تجربیاتم در این زمینه بیشتر شده ولی هنوز رو انیمیشنش کار نکردم که تا آخر این هفته امیدوارم اون رو هم بسازم.
http://kochol.persiangig.com/kge/ms3dMesh.jpg

siavashr
دوشنبه 10 مهر 1385, 16:32 عصر
سلام.
خیلی عالیه .
میشه به ما هم یاد بدی یا راه نداره؟ من نمیخواهم بازی درست کنم اما دنبال فهمیدن یک سری چیزا هستم اگر بتونی کمک کنی ممنون میشم.
سیاوش راد

kochol
دوشنبه 10 مهر 1385, 19:18 عصر
سلام
خیلی ممنون.
می تونم راهنماییتان کنم ولی اینکه یه مقاله کامل بنویسم نمی تونم راستش من خودم از هر کسی بیشتر به کمک نیاز دارم چون همه می دونن که یه گیم انجین رو نمی شه تنهایی ساخت حداقل نتونستم یه تیمه دو نفره درست کنم به خاطر همین هم نمی تونم مقاله بنویسم یعنی وقت کم دارم من خودم نحوه ساخت رو از کتاب focus on 3d models یاد گرفتم و حالا توضیحاتی می دم که بیشتر بتونیم با این فرمت اشنا بشیم.

1. فایل رو لود می کنیم
2. 10 بایت اول باید MS3D000000 باشد مگر نه فایل در فرمت MS3D نیست.
3. 4 بایت بعدی ورژن فایل هست که ما فقط از 3 و 4 پشتیبانی می کنیم.
4. 2 بایت بعدی تعداد نقاط هست که بر اساس اون نقاط مدل رو می خونیم برای هر نقطه 15 بایت اطلاعات هست که استراکت زیر ترتیب اونها رو نشون می ده.

// MS3D Vertex Struct
struct ms3dVertex
{
u8 m_ucFlags; //Editor flags, unused for the loader
Vertex3 m_vVert; //X,Y,Z coordinates
char m_cBone; //Bone ID (-1 = no bone)
u8 m_ucUnused;
}; // ms3dVertex


که اولی برای استفاده ادیتور یعنی خود میلک شیپ هست که اگه 0 بود یعنی انتخاب نشده 1 بود یعنی انتخاب هست 2 یعنی مخی و 3 هم یعنی هم انتخاب شده و هم مخفی.
5. دو بایت بعدی تعداد مثلث ها هست.
که باید بر حسب اون تمام مثلث ها رو بخونید که اون هم از روی استراکت زیر می تونید بخونید.

// MS3D Triangle data structure
struct ms3dTriangle
{
u16 m_usFlags; //Editor flags
u16 m_usVertIndices[3]; //Vertex indexes
Vertex3 m_vNormals[3]; //Vertex normals;
float m_fTexCoords[2][3]; //Texture coordinates
u8 m_ucSmoothing; //Smoothing group
u8 m_ucGroup; //Group index
};

6. دو بایت بعدی هم تعداد گروه مش ها رو نشون می ده که هر کردوم یه قسمت از مدل هست مثلا یکی برای سر و یکی برای دست که البته این بستگی به سازنده مدل داره که چه طوری اونو ساخته باشه.

// Group of triangles in the ms3d file
struct ms3dGroup
{
u8 m_ucFlags; //Editor flags again
char m_cName[32]; //Name of the mesh
u16 m_usNumTris; //Number of triangles in the group
u16* m_uspIndices; //Triangle indexes
char m_cMaterial; //Material index, -1 = no material

//Let it clean up after itself like usual
ms3dGroup()
{
m_uspIndices = 0;
}

~ms3dGroup()
{
if(m_uspIndices)
{
delete [] m_uspIndices;
m_uspIndices = 0;
}
}
};

که تو این یکی باید اول تعداد مثلث ها رو بخونید بعد اندیس مثلث ها رو بخونید.
7. 2 بایت بعدی هم که تعداد متریال ها هست که استراکت اون هم این طوری هست.

// Material information for the mesh
struct ms3dMaterial
{
char m_cName[32]; //Material name
float m_fAmbient[4]; //Ambient values
float m_fDiffuse[4]; //Diffuse values
float m_fSpecular[4]; //Specular values
float m_fEmissive[4]; //Emissive values
float m_fShininess; //0 - 128
float m_fTransparency; //0 - 1
char m_cMode; //unused
char m_cTexture[128]; //Texture map file
char m_cAlpha[128]; //Alpha map file
};


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

siavashr
دوشنبه 10 مهر 1385, 20:12 عصر
سلام.
متشکرم بابت توضیحاتی که دادید.
میشه لطفا اگر این کتاب focus on 3d models رو دارید لینک دانلودش رو بفرمائید.
ممنونم
سیاوش راد

kochol
دوشنبه 10 مهر 1385, 23:54 عصر
سلام
من این کتاب را دارم ولی از emule دانلود کرده ام.
شما هم می تونید از emule دانلود کنید.

kochol
جمعه 14 مهر 1385, 11:16 صبح
سلام
تنها چیزی که می مونه که توضیح نداده ام اینه که این u16 و u32 چیه

/// A 32-bit unsigned int
typedef unsigned int u32;

/// A 32-bit signed int
typedef signed int s32;

/// A 32-bit unsigned integer = DWORD
typedef unsigned long ul32;

/// A 16-bit unsigned short
typedef unsigned short u16;

/// A 8-bit unsigned cahr
typedef unsigned char u8;

kochol
یک شنبه 16 مهر 1385, 10:42 صبح
سلام
این هم دو تا توتریال
ُSkeletal Animation with MS3D (http://rsn.gamedev.net/tutorials/ms3danim.asp)
Model Rendering Tutorial (http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=31)

kochol
شنبه 29 مهر 1385, 16:50 عصر
سلام
من اخر سر با هر سختی که بود تونستم انیمیشن مدل را هم کامل کنم می تونید دانلودش کنید و نگاهی بهش بندازید پس از دانلود فایل readme.txt رو بخونید و اگه سوالی بود بپرسید.

http://prdownloads.sourceforge.net/kge/NinjaAnimation.rar?download

kochol
یک شنبه 30 مهر 1385, 22:38 عصر
سلام
کسی این مثال رو دانلود نکرده خیلی مثال قشنگی شده ها.

Mahmood_M
دوشنبه 01 آبان 1385, 16:00 عصر
سلام
من دانلود کردم ...
ولی فایل KGE.h رو توش نذاشتی ! Error می ده ...
خیلی دوست دارم ببینمش ، می شه حد اقل یه فایل اجرایی ازش بزاری یا همون KGE.h رو بزاری ... ؟ واقعا بهت تبریک می گم ...
منتظرم
موفق باشی ...

kochol
دوشنبه 01 آبان 1385, 16:07 عصر
سلام
فایل exe که داخلش هست. MS3D.exe
در ضمن همین الان KGE 0.0.3 رو هم ریلیز کردم اگر می خواهی خودت کامپایلش کنی اون رو هم دریافت کن.

Mahmood_M
دوشنبه 01 آبان 1385, 23:24 عصر
سلام

فایل exe که داخلش هست. MS3D.exe
موقع لجرا Error می ده ...
می نویسه که فایل DevIL.DLL پیدا نشد ... !!
منتظرم ...
موفق باشی ...

kochol
سه شنبه 02 آبان 1385, 02:17 صبح
سلام
شما اگه یه لطفی بکنی readme.txt رو بخونی خیلی ممنونت می شم اونوقت اگه باز هم مشکلی بود در خدمتم.
خیلی ممنون که برنامه من رو داری تست می کنی این کار باعث دل گرمی من می شه.

Mahmood_M
چهارشنبه 03 آبان 1385, 00:27 صبح
سلام
ببخشید حواسم نبود ... !!
آقا عالی بود ...
فوق العاده بود ...
افتخار می کنم که یک ایرانی همچین کاری کرده ...
البته من خیلی مبتدی هستم ، امیدوارم دوستای حرفه ای ببینند و نظرشون رو بگن ...
موفق باشی ...

m_shirwani
شنبه 21 بهمن 1385, 21:12 عصر
عالی بود ممنون از کارتون اما حیف که ...