بسم الله الرحمن الرحيم والصلاة والسلام على رسولنا الكريم محمد بن عبدالله سيد الخلق اجمعين
اليوم اكتب فى موضوع مختلف قليلا عن مواضيعى السابقة وهذا الموضوع هو تقرير عن برنامج Quest3D والامكانيات التى اكتشفتها فيه حتى الان
الان نبدأ ولا داعى لبعثرة كلمات لا طائل منها سوى زيادة حجم الموضوع ولن تفيد احدا
فكرة البرنامج:
عندما تفتح هذا البرنامج فانك ستجد قوائم كثيرة واشياء عجيبة....ما كل هذه الاشياء؟؟؟
انظر الى هذه الصورة
تعتمد فكرة البرنامج على خاصية جذب ووضع الملفات المسماه templates فى الChannel Graph
او ما تسمى باللغة الانجليزية خاصية Drag and drop....... الملفات الموجودة على اليسار
تسمى templates عندما تكون مفردة اما لو تم وضعها فى الChannel Graph فانها تسمى Channel...ومجموعات الChannels المتصلة ببعضها تسمى Channel Group
كيف يتم توصيل الTemplates ببعضها لتكوين Channel؟؟؟
من خلال هذه الصورة يمكن ان نتعرف على شكل الChannel
كما نرى فى هذه الصورة فان القنوات يمكن ان تتصل ببعضها من خلال المربعات الموجودة....طبعا القنوات المتصلة لابد ان تكون متلائمة مع بعضها يعنى ليس كل القنوات تستطيع الاتصال ببعضها وهذا سنتطرق اليه فى دروس قادمة باذن الله.......بقى ان اقول فقط ان القنوات العالية التى يخرج الخط منها(Channel linking) من المربع السفلى يسمىParent او الاب مجازا اما القناة الموجودة بالاسفل فتسمى Child او الطفل (يعنى التشبيه مثل شجرة العائلة كل طفل فيها له اب جاء به الى الدنيا).....انظر الصورة
انسيابية البرنامج (Program flow):
المقصود بهذا المصطلح هو كيف يسير البرنامج او كيف تتم قراءة القنوات من قبل البرنامج.
لو اننا فحصنا هذا الكود الصغير للC++
Int number
Cout<<"Write a number"
Cin>>number
يقوم الCompiler هنا بحجز متغير فى الذاكرة يسمى number ثم يخرج الجملة التى تطلب منك رقم وبعدها يطلب منك ادخاله (اى ان القراءة تتم من اعلى الى اسفل فى الغالب)
وهنا يأتى السؤال....هل يقوم برنامجنا بقراءة قنواته بهذه الطريقة؟؟.....نعم لكن البداية انت من يحددها وليس البرنامج فاذا اردت البداية من اى قناة من القنوات المتصلة فانك تضغط بزر الفأرة الايمن وتختار من القائمة المنسدلة set as start channel وعندها سيقوم البرنامج بالقراءة من هذا الموضع...
فكرة عمل منظر ثلاثى الابعاد:
اذا اردت ان تقوم بتصوير فيلم فانك اولا تبتاع كاميرا ثم تذهب الى الحجرة المطلوب التصوير فيها وتضبط الاضاءة ثم تجلب الاشخاص الذين ستصورهم او ما نسميهم بلغة مصممى الالعاب Objects او الكائنات
وهذه ابسط المتطلبات التى تؤهلك لعمل مشهد ثلاثى الابعاد بسيط.....فأنت تحتاج لتحديد كاميرا وجذب الTemplate المسئولة عن الاضائة (والاضائة لها ثلاثة انواع Direction light و Spot light و Point light ) ثم تجذب الTemplate المسئولة عن وجود اجسام ثلاثية الابعاد وتصل الثلاثة ب Template تسمى Render متصلة هذه بTemplate مسماه Start 3d scene.......بسيطة اليس كذلك؟؟
لا اعرف هل خاصية عمل مشهد بسيط كهذا متاح للمحركات الاخرى ام انهم يستعملوا فيها تقنيات اخرى مختلفة غير الاضاءة و الكاميرا و..و...
انواع الكاميرات المتاحة:
هناك انواع كثيرة متاحة منها
- Inspection camera وهى تستخدم لتفحص المجسم عن طريق تمكينك من تدويره حول محوره بضغط الزر الايمن من الماوس مع تحريكه فى اى اتجاه
-Third person camera وهى تستخدم لعمل العاب مثل Max payne وغيرها
-Walkthrough camera لكن وظيفتها مجهولة بالنسبة لى لكنها كاميرا متحركة على اى حال
-Basic camera وهى كاميرا عادية تماما توضع لتصوير شىء معين فقط دون تأثيرات
وانواع اخرى لم اتطرق لها حاليا
-Animation camera: تقوم تلقائيا بالدوران حول المجسم المستعمل وقد تفيد فى عمل فيلم فيديو للعبتك
خاصية التحريك (Animation):
طبعا من الاجزاء الحيوية فى البرنامج وهى ان تجعل المجسم يتحرك
هناك نوعين منها.....نوع بسيط وهو الذى يستخدم الFrames او بالعربية تسمى بالاطارات كما فى برنامج Flash
الاطارات هنا ذكية...فلو انك وضعت فى الاطار الاولى الجسم المستعمل فى مكان معين ثم غيرت مكانه فى الاطار الخامس فان الكرة ستتحرك فى الاطارات الاربع التى تفصل بين الاثنين حتى تصل الى الموقع الجديد فى الاطار رقم خمسة.....وطبعا يمكن ان تفعلها فى برنامج الفلاش لكن بعد تضبيط خواص معينة
النوع الثانى وهو نوع معقد قليلا يستخدم للالعاب المتقدمة وهو المسئول عن تغير حركات الشخصية التى تلعب بها من الوقوف الى المشى او الركض....و هذا يصعب شرحه قليلا
المجسمات التى يستوعبها البرنامج:
تسطيع تحميل مجمسات بصيغة .x , .3ds , .ls , .cgr , .mot , .lwo
طبعا يتوقف دورى عند سرد انواع الملفات....اما البرامج التى تنتجها فلا اعرفها
(ملحوظة: .cgr هو الملف التطبيقى الذى تخزن به مشاريعك بهذا البرنامج فتستطيع بتحميل ملف بهذه الصيغة ادخال مشروعين معا وتسمى هذه الخاصية Merging كما فى الجيم ميكر)
الاكساء(Texturing):
خاصية الاكساء هنا تمكنك من تغطية مجسماتك اما مسطحة على محورx او محور y او z او تكون فى شكل مكعب او كرة او..او..لكنها غير مريحة قليلا فى التعامل معها خاصة اذا حاولت اكساء شجرة بالاوراق
رسم الطبيعة(Nature painting):
خاصية موجودة بالبرنامج تمكنك من توزيع مجسماتك فى البيئة التى صممتها بتحديد المكان والضغط على زر الماوس (يعنى مثل توزيع الTiles فى الجيم ميكر)
طبعا كل المصادر التى تحتاجها موجودة بال Templates
لكن هناك طرق لوضعها ستكون باذن موضحة فى دروس سأكتبها لاحقا باذن الله حين اكون مهيأ لذلك
هنا يأتى السؤال....هل البرنامج يسير بخاصية الDrag and Drop فقط؟؟
والاجابة لا..فالبرنامج لم ينسك وينسى محبى البرمجة وكتابة الاكواد.ففى البرنامج ممكن ان تستعمل ما يسمى بLua script وهى لغة برمجية مصنوعة من C++ وDirectX
لكنى حاليا لا اعرف مدى امكانيتها..وهل هى مثل GML بها دوال للحركة والسرعة و..و..و...الى اخره ام لا...
الى هنا ينتهى التقرير البدائى الذى لا يهدف الا الى تعريف البرنامج على حسب ما وصلت اليه خبرتى به (بالرغم من وجود امكانيات اخرى به اكتشفتها لكن ذكرها هنا سيجعل الامور معقدة قليلا)… ارجو ان يكون هذا الموضوع مفيد حتى يتسنى لكم معرفة معلومات عن هذا المحرك ......فى انتظار اى سؤال او استفسار وان شاء الله اجيب عنه بما يفتح الله به على لأنى مازلت مبتدىء يتحسس طريقه فى البرنامج يكتشف كل يوم ان لديه الكثير من الجهد حتى يصبح محترفا
و السلام عليكم ورحمة الله وبركاته