السلام عليكم ورحمة الله
اردت ان اسألكم عن ال mesh ما هو؟ وكيف يتم تصميمه؟وهل حركة الشخصية تتعلق به؟
ارجو الاجابه عن هذا السؤال بسرعه لاني بدأت بتصميم لعبتي الخاصه واحتاج لمعلومات اضافيه.
ولكم مني خالص الدعاء والشكر
السلام عليكم ورحمة الله
اردت ان اسألكم عن ال mesh ما هو؟ وكيف يتم تصميمه؟وهل حركة الشخصية تتعلق به؟
ارجو الاجابه عن هذا السؤال بسرعه لاني بدأت بتصميم لعبتي الخاصه واحتاج لمعلومات اضافيه.
ولكم مني خالص الدعاء والشكر
If Games Are Fun.....So Making Games Making Fun
السلام عليك
الله يوفقك الى الامام لا تياس
الترجمة الحرفية " للميش " هي الشبكة لكن ليس المقصود بها الشبكة بل يقصد بها المجسم لان المجسم في اصله مثلثات وعند رؤيته بطريقة العرض الشبكية اذا كنت تعرف برامج التصميم يضهر على شكل شبكة
الميش هو ملف من برنامج التصميم الثلاثي الابعاد يتم استيراده و له انواع مختلفة و لكل تقنية في الاعاب النوع الذي تعامل معه
و عملية استيراد المجسم او الميش لها شكلان فالاول ان تكون مجسم صلب واحد معروف او ان تكون عددة اطر او عدة فرامات و هذه الاخيرة مع بعضها تشكل مشهد في كل فرام يتغير المجسم او الميش اللي شكل و تحجيم و تموقع و استدارة معينة و طبعا هناك عدد للفرامات او الاطر و ليس تلقائيا
و يتم عرض هذه الاطر حسب متطلبات اللعبة
ارجو ان اكون افدتك و وضح لي اين يكمن الغموض في كلامي لاني اضن انه لي تعبير ركييك نوعا ما
لا ما شا ءالله عليك كلامك مفيد للغايه :-)
لكن اريد ان فهم اكثر:انا اعمل حالياً على برنامج اسمه cinema 4d هل هو جيد لعمل ميش للعبة ما؟وكيف يمكنني ان اجعل
الشخصيه التي صممتها ملائمه للعبة التي ابرمجها؟
وشكراً لك
تم تعديل هذه المشاركة بواسطة ame5r في 13 أغسطس 2008 في 14:58
If Games Are Fun.....So Making Games Making Fun
السلام عليكم اخي الكريم
يمكنك استخدام اي برامج تصميم للمجسمات بحيث انك تنشئ المجسمات التي تريدها ومن ثم حفظها بصيغة مناسبة للعرض والاستخدام داخل كود اللعبة
وفي الاغلب هناك ادوات يمكنها تحويل صيغ المجسمات
كما ان معظم برامج التصميم الاحترافية هذه الايام تتيح لك حفظ المجسمات بأكثر من صيغة
ويمكنك طبعا ان تكتب ال parser الخاص بك لقراءة اي نوع من المجسمات
وكل هذا يعتمد علي كود اللعبة الذي تكتبه
فلو كنت تستخدم مثلا DX فان مكتبة الدايركت اكس تتعامله تلقائيا مع ملفات من نوع X
فلو كان برنامج التصميم الذي تستخدمه يدعم اخرج الملفات التي صممتها ويحفظها كنوع x file
فيمكنك بسهولة تحميل واستخدام هذا النوع من الملفات بسهولة وهو نوعه مشهور للاستخدام البسيط ويدعم animation and skinning
ولكنه غير مناسب للاعمال الكبيرة جدا
فلذلك نجد الالعاب الكبيرة تستخدم it's own custom model formats and parser inside it's game engine
بالنسبة لبرنامج cinema4d فبصراحة لم اعمل عليه لكنه ان كان يتيح اخراج الملفات بصيغة 3ds علي الاقل فيمكنك تحويلها بسهولة
لصيغة ملفات اكس ببعض اداوات التحويل المتوفرة
ارجو ان اكون قد افدت ولو بالقليل
والسلام عليكم
Ahmed Ezz
Software Engineer
انما عمرك بأعمالك ، فكم تريد أن تعيش؟
شكراً جزيلاًُ لك لكن سؤالي الرئيسي هو: كيفية جعل الشخصيه تتحرك كما اريد انا , اي ان ترفع يدها او رجلها او تحرك رأسها, ومثل هذه الحركات؟
وشكراً سلفاً.
If Games Are Fun.....So Making Games Making Fun
اخي الكريم
هناك العديد من اساليب التحريك للمجسمات
احدي هذه الطرق هي ما تسمي بال KeyFrame Animation
والتي تعتمد ان يكون تصميم الشخصية المراد تحريكها كاملة او اجزاء منها عبارة عن سلسلة من الاطارات frame hierarchy
حيث يقوم مصمم الشخصيات برسمها وتكون عبارة عن عدة اجزاء منفصلة ومترابطة مع بعضها
ثم يقوم مصمم الحركة animator بانشاء تسلسل ترابطي بين كل جزء من الشخصية المراد تحريكها
ويقوم بانشاء عنصر حركة key frame يتم وضعه كأحد عناصر الحركة التابعة لمجموعة حركة معينة Animation Set
ومجموعات الحركة ببساطة عبارة container لعدد معين من عناصر الحركة التي تصف توضعات جزء معين من الشخصية
تبعا لاسلوب حركة نريد تطبيقه علي الشخصية
مثلا: يمكننا تخيل الشخصية وهي تتحرك في عدة انماط
مثل حركتها وهي تمشي او تجري او تطلق نيران سلاح ما او تقاتل او تقفز او .....
كل من هذه الحركات يتم وصف توضعات كل جزء من اجزاء الشخصية تبعا لنوع الحركة في ال animation set الخاصة بها
فيمكن مثلا عمل animation set خاصة لحركة الجري واخري للمشي وهكذا
يتم حفظ ملف المجسم وهو يحتوي علي بيانات المجسم نفسه مع بيانات مجموعات الحركة المناسبة للعبة
ثم في الكود يتم استخدام نظام تحريك يقدم خدمات للتحريك مثل عمل play-back لاي من مجموعات الحركة المخزنة مع الشخصية مسبقا
بالطبع الموضوع اعقد مما نصفه هنا
حيث يمكننا عمل blending لمجموعات الحركة مع بعضها وكذلك لاتاحة تشغيل جزء من الحركة مع طلب المستخدم بالضغط علي زر ما
كل هذه الامور تحتاج لنظام مرن لادارة هذه الامور
بالرغم من ال D3DX Animation System يقدم الدعم لكثير من هذه الامور
بل ويتيح لنا تخصيص احد اجزاء نظام الحركة بما يناسبنا
فانه يعد قاصرا في بعض الحالات
لكنه يوفر
طريقة سهلة جدا لتشغيل الحركة البسيطة لملفات اكس التي يدعمها بشكل كامل
وهي ملفات مرنة لحفظ الكثير من البيانات
اسف ان لم يكن الشرح واضح
لكن الموضوع اعقد من يتم شرحه ببساطة هكذا لان هناك كتب متخصصة في الحركة
ونحن هنا لم نشر الا لنوع الحركة keyframe animation
والسلام عليكم
Ahmed Ezz
Software Engineer
انما عمرك بأعمالك ، فكم تريد أن تعيش؟
اولاً: شكراً جزيلاً لك اخي :thumb_up:
وثانياً:خلاصة الموضوع هو انه اسهل طريقه لتحريك الشخصيه هو ان يقوم المصمم بتجزئتها ويقوم بتحريك كل جزء في الوقت الذي يريده هو,
(صححني ارجوك اذا اخطأت) ولكن هل يجب ان اقوم بتسجيل حركة اجزاء الشخصيه من برنامج التصميم او عن طريق البرمجه؟
( :happy: اسف لاني اتعبتك معي ولكني مبتدأ في برمجة الالعاب وتحريك الشخصيه هو الشيء الوحيد الذي لم افهمه)
وشكراً.
تم تعديل هذه المشاركة بواسطة ame5r في 13 أغسطس 2008 في 19:02
If Games Are Fun.....So Making Games Making Fun
انت لست لست مخطأ لكنها ليست الطريقة الأسهل
فأنا شخصيا أرى طريقة عرض الفرامات الجاهزة من برنامج التصميم أسهل
حيت لا تكسر رأسك أبدا في أمر الحركة الذي لا تعنيك
ame5r كتب:(صححني ارجوك اذا اخطأت) ولكن هل يجب ان اقوم بتسجيل حركة اجزاء الشخصيه من برنامج التصميم او عن طريق البرمجه؟
الحركة لا تسجل
الذي أعرفه هو أن الحركة تدرس برمجا و إلتسهيل التعامل معها
يتم وضعها في ملفات كملفات الاعدادات هذه الملفات يفهمها محرك اللعبة أو كود لعبتك
تم تعديل هذه المشاركة بواسطة Farhat في 13 أغسطس 2008 في 22:44
شكراً جزيلاُ لك اخي farhat لكن ماذا لو اردت ان تتحرك الشخصيه حسب رغبة المستخدم(اي ان يحركها هو بالاسهم على لوحة المفاتيح مثلا
او عن طريق الفأره)؟
If Games Are Fun.....So Making Games Making Fun
السلام عليكم
اخي الكريم
يمكنك بالطبع ان تنشأ الحركة بالكود ولكن هذا غير منطقي لانه سيكون مرهق جدا ولا يصلح للمجسمات الكبيرة
فالافضل هو ان تقوم بتصميم الحركة داخل برنامج التصميم ويتم تخزين هذه الحركة داخل ملف المجسم علي هيئة قيم تبين كيفية التوضعات الجديدة لكل جزء من الشخصية
مثلا انت لما تصمم حركة القدمين لشخصية وهي تمشي فأنت داخل برنامج التصميم تضع مثلا عدة اطارات للحركة وفي كل اطار توضع توضع جديد لمكان القدمين بعمل translation
ويتم تخزين هذه البيانات علي هيئة مصفوفة للحركة او مجموعة قيم SRT (Scale - Rotation - Translation )
وتتم قراءة هذه البيانات داخل الكود تلقائيا في الاغلب مع امكانية اتاحة التعديل عليها من الكود يدويا او حتي الغاؤها واضافة غيرها لو اردت
طبعا ستحتاج لبعض الخبرة في كود التعامل مع نظام التحريك الذي تستخدمه لتتيح لنفسك امكانية تشغيل اجزاء معينة من الحركة في اوقات معينة
او تبعا للاستجابة من اللاعب
مثلا لجعل الشخصية تقوم بتشغيل مجموعة الحركة الخاصة بالقفز اذا قام اللاعب بالضغط علي الزر المحدد للقفز ( المسافة مثلا )
اولا يجب ان تكون مجموعة الحركة الخاصة بالقفز تم تخزينها مسبقا من قبل المصمم ولها اسم محدد animation set name
ثم يجب عليك ان تراعي عدة اشياء اخري اذا كانت جميع مجموعة الحركة تم تخزينها في مجموعة واحدة
all animations are stored in single animation Set
كما هو الحال مع اغلب ال exporters الموجودة مع برامج التصميم
حيث ستضطر لنقل مكان ال animation timeline position بالكود وبالتالي يجب عليك معرفة هذه القيم من المصمم
بالطبع فانني اعتقد ان الامور اعقد من ذلك بكثير
الا انه في الالعاب التي تتم في الشركات الكبيرة فأعتقد انه يتم تصميم نظام حركة كجزء من ال game engine يوفر لهم كل ما يحتاجونه
وكذلك يكون لديهم custom exporters for any models
كلمة اخيرة
يمكنك الاستفادة من المثال الذي مع الدايركت اكس
والخاص بالتحريك والمسمي SkinnedMesh
اعتقد انه فيه كل ما كنت تسأل عنه
وهو يستخدم ملف شخصية اسمها tiny.x
ويمكننا ان نتناقش في الكود معا لنتعلم ( مع العلم انني لم ادرس هذا المثال بعد )
هو بالطبع فيه كود اضافي لعملية ال skinning لكن يمكننا تجاهله
كما يمكنك فتح ملفات اكس الخاصة بالدايركت اكس باي برامج تحرير ملفات الكتابة
لتتعرف علي الهيكلية التي يتم بها تخزين الملف الان انك ستحتاج لفهم ال X file templates
بالتوفيق
والسلام عليكم
Ahmed Ezz
Software Engineer
انما عمرك بأعمالك ، فكم تريد أن تعيش؟
ان الحركة في اللعبة محددة و مدروسة
فمثلا لتحريك شخصية نوفر الاطر او ما يقال عنهم فرامات الحركة اللازمة
و ليكن منها اربعة اطر للمشي الى الامام و اطر اخرى للخلف و اخرى لتوهيم الاستدارة و هذا يرجع لذكائك انت
و الان في برمجة لعبتك كل ما عليك هو ان تطلب (تستدعي) الفرامات اللازمة في كل حدث يقوم به اللاعب
تم تعديل هذه المشاركة بواسطة Farhat في 13 أغسطس 2008 في 22:51
Farhat كتب:ان الحركة في اللعبة محددة و مدروسةفمثلا لتحريك شخصية نوفر الاطر او ما يقال عنهم فرامات الحركة اللازمة
و ليكن منها اربعة اطر للمشي الى الامام و اطر اخرى للخلف و اخرى لتوهيم الاستدارة و هذا يرجع لذكائك انت
و الان في برمجة لعبتك كل ما عليك هو ان تطلب (تستدعي) الفرامات اللازمة في كل حدث يقوم به اللاعب
تمام كلامك اخي Farhat
وبالطبع سيحتاج لمعرفة اماكن هذه الاطارات تحديدا ليقوم بطلب تشغيلها لكل حدث يقوم به اللاعب
لكن هل تطبيق هذا الكلام في الكود سيكون صعب؟
وماذا لو كانت كل اطارات الحركة مخزنة ضمن مجموعة واحدة كما هو الحال اذا تم استخدام ملفات اكس مع اغلب ادوات تصدير المجمسات؟
Ahmed Ezz
Software Engineer
انما عمرك بأعمالك ، فكم تريد أن تعيش؟
aeamg2005 كتب:وبالطبع سيحتاج لمعرفة اماكن هذه الاطارات تحديدا ليقوم بطلب تشغيلها لكل حدث يقوم به اللاعبلكن هل تطبيق هذا الكلام في الكود سيكون صعب؟
وماذا لو كانت كل اطارات الحركة مخزنة ضمن مجموعة واحدة كما هو الحال اذا تم استخدام ملفات اكس مع اغلب ادوات تصدير المجمسات؟
أنا من ناحيتى الشخصية أرى أن هذه هي أمرن طريقة في عمل الحركة
عندما قلت ماذا لون انه اطر الحركة كانت في ملف واحد فكرتني
بملفات حركة المقاتل في لعبة مصارع الشوارع التى تكون في ملف واحد
و في كل مرة يتم قتصاص اللقطة المناسبة بطريقة الركات
هذا الكلام تماما ينطبق على برمجة العاب الثلاثية الابعاد
لذلك ترى ان معظم محترفي برمجة الالعاب ينصحوننا بتعلم برمجة الالعاب الثناية الابعاد اولا
و المعظم لا يراعي هذا الكلام
لذا ان انصح دوما بهذا الاسوب لان هذا الاسلوب طريقة مضمونة و سيقودك الى الاحسن بأذن الخالق
تم تعديل هذه المشاركة بواسطة Farhat في 14 أغسطس 2008 في 11:36
اشكركم جزيل الشكر بالنسبه للاخaeamg2005 فقد كان شرحك مفصل تفصيل تام وواضح كوضوح الشمس واما الاخ farhat فكان شرحك مختصر ومفيد عاملاً بالمثل" خير الكلام ما قل ودل" , والان استطيع ان ابدأ ببرمجة لعبتنا الخاصه بعد ان توفرت لدي المعلومات اللازمه.
(على فكره انا استخدم محرك irrlicht لانه سهل وسوف اقوم باستبداله للدايركت اكس او الاوبن جي ال بعد ان افهم تماماً ميكانيكية برمجة الالعاب)
وشكراً جزيلا.ً
تم تعديل هذه المشاركة بواسطة ame5r في 14 أغسطس 2008 في 11:09
If Games Are Fun.....So Making Games Making Fun