סקריפט עבור אנימציה של כלי טיס

yoavb

New member
סקריפט עבור אנימציה של כלי טיס

שלום, אני מעוניין ליצור אנימציה של טיסה של שני כלי טיס במקס באופן הבא: האנימציה מבוססת על מודל פיזיקלי - אוירודינמי שמורץ בתוכנה נוספת (במקרה זה - matlab). הפלט של התוכנה, שהוא גם הקלט עבור מקס, יהיה קובץ המכיל קואורדינטות ונתוני אוריינטצייה מרחבית (למשל, ע"י זוייות אויילר) בפרקי זמן קבועים (למשל - כל שניה). משך האנימציה הכולל הוא בין שלושים לשישים שניות. בשלב זה, שני המודלים של כלי הטיס בנויים (קובץ מצורף), ומה שנותר הוא ליצור את האנימציה. כאן מתחילות הבעיות. מעיון זריז בפורום ברור לי כי לצורך העניין דרוש לכתוב סקריפט שמבצע זאת (כלומר את תרגום המידע המגיע מ matlab לפריימים במקס). כיוון שאין לי כל רקע ב maxscript, ניסיתי לראות מה מידת המורכבות של העניין וגיליתי כי אני מתקשה בדברים טריוויאליים כמו למשל איך לזהות אובייקטים מסוג GROUP על פי שמם ב maxscript. מסקנה: אני זקוק למעט הדרכה. אודה לכל מי שיוכל לסייע לי במשימה או להפנות אותי למקור שממנו ניתן ללמוד maxscript ברמה בסיסית.
 

roli

New member
maxscript

ב cgtalk יש פורום שלם בנושא, בין היתר יש בו שרשור שנוגע לאתרים ומקורות לימוד נוספים. בדקת את ההלפ? הוא די מפורט. לפורום ב cgtalk : http://forums.cgsociety.org/forumdisplay.php?f=98
 

stamz

New member
הסברים מצויינים נמצאים בדוקיומנטציה של התוכנה

יש MaxScript Reference בתפריט ה-Help של מקס.
 

yoavb

New member
באופן יותר ספציפי

או קי, אני מבין ששאלתי שאלה רחבה מדי, אז אני אהיה יותר ממוקד. עבור המיקום של אובייקט כלשהו, ראיתי שניתן להגדיר מיקום אבסולוטי (ע"י המאפיין pos) או להגדיר אינקרימנט של הזזה (ע"י move). באותו אופן, האם ניתן להגדיר אוריינטציה מרחבית ע"י זויות אויילר מוחלטות (כלומר, האם זהו אחד מן ה properties של האובייקט) או שניתן לשנות את האוריינטציה רק באמצעות אינקרימנטים של זוית (ע"י eulerangles)? תודה.
 
אתה רוצה להגדיר אורינטציה מרחבית? או שאתה

רוצה לשנות אורינטציה מרחבית? כשאתה מדבר על מוחלטות מה הכוונה? יש לך שני קונטרולרים שקשורים ל eular אחד הוא eular XYZ והשני local eular XYZ. הproperties שלהם קצת שונים. בצורה הכי פרימטיבית בלי להכנס לרקורסיות, צור מערך של זוויות איולר ומערך של של שניות ותפעיל אותם עם לולאת while פשוטה. אני חייב לאמר שאני לא בטוח שזאת הדרך שהייתי בוחר ליצור את האנימציה הזאת, יש למקס כלים פיזיקלים די מדויקים בשביל הסוג הזה של עבודה.
 

yoavb

New member
המשך

לגבי אופן יצירת האנימציה - המודל שאני משתמש בו הוא מודל אוירודינמי מורכב שבוודאי לא נמצא במקס. לגבי האוריינטציה המרחבית - אכן הכוונה הייתה למה שמוגדר באמצעות הקונטרולר euler XYZ (לא הכרתי אותו קודם - תודה על הטיפ). אני לא מצליח להגיע למצב שבו אני מגדיר לאובייקט (GROUP בשם UAV_1) סדר סיבוב רצוי (ZYX) וערכים מתאימים של זויות אויילר בזמן נתון (למשל: 45 30 0 בזמן 0). אודה לך אם תוכל לרשום את שורת הקוד המתאימה. ובאופן כללי יותר: איך אני יכול לדעת מהם המאפיינים (properties) המשוייכים לאובייקט מסויים. תודה.
 

asaf am

New member
אתה יכול להתחיל מזה

maxops.setDefaultTangentType #linear #linear with animate on ( at time 0 $UAV_1.controller.rotation=eulerAngles 20 30 40 at time 5 $UAV_1.controller.rotation=eulerAngles 20 80 40 . . . ) אני מקווה שזה עוזר
 

yoavb

New member
עובד למחצה

זה עובד כאשר אני משמיט את השורה הראשונה (מגדיר אינטרפולציה לינארית?) הודעה השגיאה שאני מקבל: MAXScript FileIn Exception: -- Unknown property: "setDefaultTangentType" in <Interface:maxOps> << תודה.
 
למעלה