Wiring در حالت Local

esisb

New Member
با سلام
میخواستم بدونم چطور میشه یک آبجکت رو در حالت Local وایر کرد؟ یعنی اینکه مثلا میخوام با حرکت دادن آبجکت یک در محور X در حالت local روی یه آبجکت دیگه تاثیر بذارم. ظاهرا قفط بر اساس World کار میکنه.
البته چند تا تست با Expose transform زدم جواب نداده
پیشاپیش ممنون:rose:
 

nc_hamid

Member
سلام دوست عزیز
توی نرم افزار های 3d محاسبات موقعیت جابجایی و اسکیل اجسام ( یا همون ترنسفورم ) بر اساس مختصات Parent محاسبه می شه (نه بر حسب مختصات جهانی یا Local جسم)
چون جسم شما هیچ Parent ی نداره ( به جسمی لینک نشده) بر حسب مختصات جهانی محاسبات انجام می شه . بنابر این کنترلر های شما با مختصات جهانی سنجیده می شن .
اگه شما می خوای حرکتت بر حسب مختصات Local جسمت بشه بهترین راه اینه که یه جسم واسط مثل Point رو با جسمت Position & Orientation Align کنی (Alt+A) بعد جسمت رو بهش لینک کنی . اونوقت عملیات Wire رو انجام بده . برای تست مطلبی که من می گم بعد از Wire جسمت رو از حالت لینک در بیار بعد Wire رو تست کن .
Expose Transform هم ابزار خیلی خیلی خوبیه که البته برای این کار شما کارایی نداره .
موفق باشی
 

esisb

New Member
ممنون از توجهتون.یه حالت والد و بچه برا قضیه درست کردم جواب داد منتها اول باید والد رو مثلا بچرخونم و بعد بچه رو که یکی از محور هاش رو وایر کردم در اون محور خاص حرکت میدم به صورت لوکال عمل میکنه.میخام جوری در بیارم که همه چیز روی خود بچه اعمال بشه. مثلا اگر بچه رو path conatrain کردم روی یک مسیر وقتی داره مثلا در محور x ها حرکت میکنه تاثیر خودش رو بذاره.ببینید اصل قضیه از این قراره:
یه کاراکتر درست کردم با biped یه walk cycle درست کردم و این حرکت رو point cache کردم روی اون mesh...با حالت pc2 کش گرفتم
حالا میتونم با استقاده از گراف تا بینهایت راه رفتن داشته باشم. منتها یه dummy رو لینک کردم به کاراکتر حالا میخام وقتی dummy رو به روبرو(محور X) حرکت میدم بسته به سرعت حرکت dummy وایر بشه به اون گراف حرکتی کاراکتر. اینطوری اگه dummy سریع حرکت کنه اون walkcycle هم با دور سریعتری اجرا میشه و اگه دامی سرعت کمتری داشته باشه سیکل راه رفتن هم کند تر میشه.البته دستی نمیتونم انیمیت کنم چون حدود 200 تا کاراکتر تو صحنه هست و از crowd helper و delegate استفاده کردم.کم و زیاد کردن سرعت کاراکتر ها به صورت دستی واقعا زمابر میشه.
باتشکر
 

esisb

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

esisb

New Member
دادش نشد:sad:
وقتی اول لینک میکنم حله منتها همونطوری که گفتم اول باید والد رو بچرخونم بعد بچه رو حرکت بدم که وایر داره.....وقتی میزنم unlink انگاری دوباره میره زیر مجموعه همون world لعنتی....چند هفته س که هنگم....کار خیلی ساده ای باید باشه بخدا نمیدونم چرا اینطوری میشه...به هر حال ممنون
 

nc_hamid

Member
سلام
من منظورت رو درست متوجه نشدم !
dummy قراره به چی Wire بشه ؟
اگه یه Path Constraint می خوای ایجاد کنی و بعد نیاز داری جهت حرکت همواره محور X حرکتیت باشه ، یه dummy دیگه بساز و Dummy قبلی رو بهش Link کن . حالا Dummy اول ر و Path Constraint بده . اینطوری Dummy که Child ه محور X ش همواره روی Path قرار داره .
البته من درست منظورت رو متوجه نشدم . اگه می خوای نرخ سرعت حرکت رو روی خط محاسبه کنی تا با استفاده از اون ریت حرکت رو زیاد و کم کنی نیاز به Script داری .
 

esisb

New Member
سلام
path constrain رو همینطوری مثال زدم. البته کلا یه کم در هم بر هم نوشتم شرمنده.بذار اینطور بگم:
فرض کن یه mesh داریم مثلا یه باکس....مادیفایر bend رو انداختم روش، حالا میتونم اون جسم رو خم کنم برا اینکار باید برم به زیر مجموعه ی bend و با گزینه هاش کار کنم
یه راه دیگه هم هست که یه جسم دیگه رو مثلا یه dummy رو بهش wire کنم مثلا حرکت در راستای x دامی رو به bend باکس ...حالا هر وقت اون دامی رو در راستای X حرکت میدم اون باکسی که داشتم خم میشه
البته باکس من به دامی لینک هم هست..دامی دو تا وظیفه داره یکی به عنوان والد عمل میکنه یکی هم باعث تغییر در bend میشه. یعنی عملا به عنوان یه کنترلر هم باکس من رو تکون میده هم اونو خم میکنه.
همه چیز درست عمل میکنه منتها هر وقت دامی در وضعیت جهانی حرکت در راستای X داره اون باکس هم خم میشه من میخام حرکت لوکال X اون باعث خم شدن باکس بشه.البته فک کنم همونطور که شما اشاره کردید تنها راه اسکریپت باشه.
ممنون
 
آخرین ویرایش:

nc_hamid

Member
با همین مثالی که زدی توضیح می دم .
شما می خوای وقتی Dummy رو می چرخونی جهت X_Position ش با چرخش تغییر کنه . ( همون در راستای Local باشه) این نشدنیه . چون نمی شه Transform جسم در خودش ضرب بشه . حتما باید بر اساس یک Transform مرجع بشه ( جسمی که بهش لینکه)
تو این مثال باید برای Dummy یک Parent اختصاص داد و عمل چرخش رو با اون انجام داد تا راستای X تنظیم شه .
برای Path هم من یه نمونه دیدم که با استفاده از دستورات Path ها جهت چرخش رو محاسبه می کنن و اون رو روی تغییرات X_Position و Y_Position اعمال می کنن . در واقع همزمان X و Y با هم کنترل می شن.
نمی تونی به جای Wire دادن X_Position از Percent خود Path Constraint استفاده کنی ؟
 

esisb

New Member
اصلا از path استفاده نکردم تو پروژه م همینطوری یه مثال زدم...کلیت کار رو با Crowd و delegate کار کردم. حدود 200 تا کاراکتر هست تو یه خیابون دارن راه میرن که میخوستم سرعت delegate ها در سرعت walkcycle کاراکتر ها تاثیر بذاره.جاهایی که تند میرن رو سیکل حرکتی سریع و حاهای کند سیکل کند! ولی ظاهرا این کار از طریق وایر کردن نشدنیه...به همه باید یه سرعت ثابت بدم و انمیتشونشون رو بینهایت کنم و لینکشون کنم به اون delegate ها...بهرحال ممنون از توجهت.موفق باشی دادا :rose:
 

جدیدترین ارسال ها

بالا