المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : درس - مقدمة إلى الـ Constrains


Abdulhady
11th April 2008, 10:19 PM
مقدمة إلى الـ Constrains
http://www.xsiarabia.com/vb/imagehosting/54947ffb5ce8d39a.gif

في هذه المشاركة سأتحدث عن الـ Constrains في برنامج الـ XSI والتي تستخدم في ربط الأجسام ببعضها مما يفيد في جعل عملية التحريك سهلة أكثر ويعطي خيارات أوسع ويفيد أيضاً في عمل الـ Riging

الـ Constrains هي قيود يتم من خلالها ربط خصائص عنصر ما من الـ Rotation أو الـ Scaling أو الـ Translation بعنصر ثاني بحيث يمكن التحكم بها عن طريق هذا العنصر الثاني .

http://www.xsiarabia.com/vb/imagehosting/54947ffb52794395.gif

طريقة عمل الـ Constrains هي بتحديد العنصر الذي تريده أن يتأثر بالعنصر الثاني ثم تختار نوع الـ Constrains من القائمة ثم تحدد العنصر الثاني .


وتجد في القائمة الأوامر التالية
Position وهو للتحكم بمكان الشكل بغض النظر عن الـ Rotation أو Scaling

و يمكن تفادي انجذاب العنصر إلى مركز العنصر الثاني عن طريق تفعيل الأمر ConsComp ، فيتم ربطه بالعنصر الثاني لكن مع الحفاظ على مكانه ، ويمكن استخدام هذا الأمر أيضاً لتعديل مكان العنصر حتى بعد عمل الـ Constrain
لكن لا تنسى إزالة تفعيله بعد استخدامه مباشرة

http://www.xsiarabia.com/vb/imagehosting/54947ffb58344880.gif

كما يمكن إضافة قيم المسافة أيضاً من الحقول التالية من نافذة خواص الـ Constrain التي تظهر لك .

http://www.xsiarabia.com/vb/imagehosting/54947ffb58f22667.gif

وفي حال قمت بإغلاق هذه النافذة يمكن أن تجدها عن طريق نافئة الـ Explorer كما هو موضح في الصورة

http://www.xsiarabia.com/vb/imagehosting/54947ffb598a3094.gif

Orientation وهو للتحكم بالـ Rotation بحيث لو قمت بعمل تدوير للعنصر الثاني يأخذ نفس خصائصه ويمكنك استخدام ConsComp للحفاظ على زاوية دورانه الحالية أو بإدخال قيم محدد في نافذة خواص الـ Constrain مع العلم أن الأمرين يعطيان نفس النتيجة

http://www.xsiarabia.com/vb/imagehosting/54947ffb5a2508a1.gif

Direction وهو للتحكم بدوران الشكل أو الـRotation مثل النوع الذي قبله ولكن الذي يتحكم في دورانه هو الـ Translation للعنصر الثاني وليس الـRotation فكأن العنصر ينظر للثاني كلما غير مكانه ، وهو نفسه يستخدم مع الكامير في تحديد أي اتجاه تنظر إليه ، وكذلك مع العيون أيضاً لتحديد جهة النظر بإضافة Null وعمل Direction Constrain لها مع الـ Null

http://www.xsiarabia.com/vb/imagehosting/54947ffb5ad27770.jpg

Pose وهو لربط الخواص الثلاثة Rotation أو الـ Scaling أو الـ Translation تماماً كما لو أنك قمت بعمل Parent لكن ثمة اختلافات عنه في عمل الـ Riging


Distance بحيث يمكنك تحريك العنصر بكل الاتجاهات ولكن مع الحفاظ على المسافة بين العنصرين وفي حال تحريك العنصر الثاني فإن الأول المرتبط به سيلحقه مع الحفاظ على المسافة أيضاً
إذا استخدمته بدون تفعيل الأمر ConsComp فقد تحصل على نتيجة شبيه بالنوع Position Constrain ولكن أبق مسافة بين العنصرين وفعل الـ ConsComp .


scaling بسيط جداً لربط الحجم أو الـ Scale بالعنصر الثاني

كما يمكن تطبيق أكثر من Constrain والمزج بينهما عن طريق إضافة مفاتيح حركة على Blend Weight وتغيير القيمة بين 1 و 0

http://www.xsiarabia.com/vb/imagehosting/54947ffb5b7de289.gif

ولحذف أي Constrain حدد العنصر المتَحكم به ثم من قائمة Constrain اختر الأمر Remove Constraint وفي حال وجود أكثر من واحد فاحتر الأمر Remove All Constraint

http://www.xsiarabia.com/vb/imagehosting/54947ffb5c3de5d8.gif

k H a L i D
11th April 2008, 11:52 PM
شكراً عالدرس عبد الهادي .. يعطيك العافية

Nour Almasri
12th April 2008, 12:00 AM
درس رائع ومفيد .. شكراً لجهودك أخ عبد الهادي ... وقد تم إضافة الدرس الى مكتبة الدروس ...

Night_Walker
12th April 2008, 11:25 AM
السلام عليكم ...
شكرا لك على الدرس ...
ولكن لي سؤال أرجو ان أجد له جواب ...؟؟؟

وهي عن Multi-Directional constraint دون ان يتكون عندي Error Cyclic ... كيف يمكن عملها ...؟؟؟
مثال : عندي obj A و عندي obj B .... أريد ان اعمل constraint A parent to B ومن ثم اعمل constraint B parent to A ، حيث ييمكنن ان اتحكم بأي أحد منهما اذا حركت او دورت او غيرت الحجم في اي احد منهما، ان يؤثر على الاخر .... ؟؟؟ فكيف يمكنني ان اعمل مثل هذا النوع ؟؟؟

Osama
12th April 2008, 12:45 PM
درس مفيد أخ عبد الهادي بتوفيق أن شاء الله

zinar
12th April 2008, 03:58 PM
درس بسيط الله يعطيك العافيه

bill
14th April 2008, 01:27 AM
أريد ان اعمل constraint A parent to B ومن ثم اعمل constraint B parent to A

السلام عليكم
في هذه الحالة لا بد من ظهور رسالة الـ Cycle وسيكون هناك مشاكل عديدة في نتائج التحريك.

ولكن إذا كنت مضطرا لمثل هذه الحالة فالحل هو استخدام كل Constrain في مجال زمني منفصل عن الآخر أي أنه يجب عليك الأعتماد عل فصل أحد الـ Constrains عن طريق الـ Active أو عن طريق الـ Blend Weight بالزمن المناسب ثم عكس العملية عندما تريد التحكم بالعكس أي عن ةطريق العنصر الثاني.

بالنهاية يجب أن يكون أحد العنصرين هو المتحكم الرئيسي بالآخر

Night_Walker
14th April 2008, 06:48 AM
السلام عليكم ...
شكرا يا بلال ... ولكن كنت اسمع ان هنالك شيئ softConstraint يحل هذه المشكله ، وهو ثنائي الاتجاه ... فهل عندكم معلومات عن هذا ال constraint ?

bill
14th April 2008, 06:35 PM
السلام عليكم
أظن أن المقصود بالـ SoftConstrain هو استخدام الـ Blend Weight في الـ PPG الخاص بكل Constrain

sherif.nagib
14th April 2008, 07:07 PM
شكرأ لك أخي عبد الهادي.

Abdulhady
16th April 2008, 01:36 AM
مشكورين على اهتمامكم بالموضوع

بالنسبة لعمل Cycle في الـ Constrains فكل ما أعرفه أنه يسبب مشاكل في التحريك كما قال الأخ bill

لكن ما هي طبيعة هذه المشاكل فهذا ما لا أعرفه

يمكنك التحقق من وجود Cycle من هذا النوع عن طريق استخدام التعليمة
cyclechecking "scene_root" في الـ Script editor

وملاحظة أخرى أخي bill وهي أن مشكلة الـ Cycle تبقى حتى في حالة وضع قيمة صفر للـ Blend Weight لأي من الـ Constrain
وأما بالنسبة لوضع مفاتيح على الـ Active فأظن أنه يمكن أن يحل المشكلة

bill
20th April 2008, 12:18 AM
وملاحظة أخرى أخي bill وهي أن مشكلة الـ Cycle تبقى حتى في حالة وضع قيمة صفر للـ Blend Weight لأي من الـ Constrain
وأما بالنسبة لوضع مفاتيح على الـ Active فأظن أنه يمكن أن يحل المشكلة

السلام عليكم
بالتأكيد أخ عبد إن حالة الـ Cycle ستبقى حتى في حالة وضع قيمة صفر للـ Blend Weight ولكن لن تظهر أي مشكلة في التحريك إلا إذا كان هناك تداخل في الزمن