MAXScript/ყუთის მოდიფიკაცია

ვიკიწიგნებიდან

3Ds Max - ის ყველა ობიექტს აქვს პარამეტრები, ყუთისათვის - სიგრძე, სიგანე და სიმაღლე, ან წრისათვის - რადიუსი. ამ ობიექტებს ასევე აქვთ გარდაქმნის თვისებები : მასშტაბირება, ტრიალი, პოზიცირება და გენერალური თვისებები : სახელი, ფერი და ა.შ.

ობიექტის თვისებების შეცვლა[რედაქტირება]

ობიექტის სახელი[რედაქტირება]

თუკი არ მოგვწონს ობიექტის სტანდარტული სახელი Box01, ჩვენ შეგვიძლია მისი შეცვლა. MAXScript - ის ფანჯარაში შევიყვანოთ ოპერატორი :

mybox.name = "BlueBox"


ამის შემდეგ პროგრამა ობიექტს შეუცვლის სახელს.
მოდიფიკაციის ჩანართში ობიექტის სახელის ველში ჩვენ დავინახავთ, ობიექტის ახალ სახელს.

ფერი პროგრამა ობიექტების შექმნისას, მათ აძლევს შემთხვევით ფერებს. ამიტომ შექმნილი ყუთის ფერი არ არის აუცილებლად ლურჯი. ამ შემთხვევაში სახელი Bluebox არ არის შესაფერისი სახელი. იმისათვის, რომ სახელი იყოს სათანადო, ჩვენ შეგვიძლია შევცვალოთ ყუთის ფერი.
შევიყვანოთ ოპერატორი :

mybox.wireColor = blue


ამის შემდეგ პროექტირების ფანჯარაში ჩვენ დავინახავთ რომ ყუთმა მიიღო ლურჯი ფერი.
ლურჯი ფერი არის განსაზღვრული ფერის მუდმივობა MAXScript - ში და მისი RGB მნიშვნელობა არის (0, 0, 255). სხვა განსაზღვრული ფერებია წითელი, მწვანე, თეთრი, შავი, ნარინჯისფერი, ყვითელი და ყავისფერი. ნაცვლად იმისა, რომ გამოვიყენოთ განსაზღვრული ფერები, ჩვენ შეგვიძლია მივუთითოთ RGB მნიშვნელობები. მაგალითად :

mybox.wireColor = (color 255 0 255)


პოზიცია[რედაქტირება]

შესაძლებელია ყუთის პოზიციის შეცვლა, ყუთის პოზიციის თვისებების შეცვლით. ყუთის პოზიციის თვისებების მიმართვა შესაძლებელია mybox.pos ოპერატორით. პოზიცია დაყოფილია x, y და z კოორდინატებით. მაგალითისათვის [0, -75, 0] . შევიყვანოთ ოპერატორი :

mybox.pos = [0,-75,0]


და შევხედოთ როგორ შეიცვლება ყუთის პოზიცია.

ზომა[რედაქტირება]

იმისათვის რომ ყუთი გახდეს ზომაში დიდი, შევცვალოთ მისი მასშტაბირების თვისებები. შევიყვანოთ ოპერატორი :

mybox.scale = [1.5,1.5,1.5]


ამ ოპერატორმა ყუთს შეუცვლა ზომა თითოეული x. y და z ღერძებისათვის, ანუ სიგრძე, სიგანე და სიმაღლე. ჩვენ შეგვიძლია არ შევცვალოთ რომელიმე მათგანის ზომა.

იმისათვის თუ გვსურს, რომ შეიცვალოს ყუთის მხოლოდ სიგრძე და სიგანე, შევიყვანოთ ოპერატორი :
მაგალითისათვის :

mybox.scale = [1,3,2]


თუკი ყუთის მასშტაბი არის, მაგალითად [20, 20, 20], მასშტაბირების შემდეგ მოდიფიკაციის ჩანართში ყუთის პარამეტრებში ჩვენ დავინახავთ, რომ ყუთის მასშტაბის პარამეტრები კვლავ არის [20, 20, 20].

თუმცა ყუთის სიგრძისა და სიგანის თვისებების შეცვლით რეზულტატები არის ერთი და იგივე, ვიზუალურად, შემდეგი ორი ბრძანება არ არის ზემოთ მოყვანილი მასშტაბის მოდიფიკაციის ექვივალენტური :

mybox.height = 40 -- ორჯერ ზრდის ორიგინალ 20 ერთეულს


mybox.width = 60 -- სამჯერ ზრდის ორიგინალ 20 ერთეულს


ამის მიზეზი არის ის, რომ ყუთის სიგრძის თვისების შეცვლით, შეიცვლა შექმნილი ყუთის სიგრძის თვისება. მასშტაბირების თვისების გამოყენება ყუთის სიგრძის გარდაქმნისათვის არ არსებობს.
ისევ და ისევ, ორიდან ერთ-ერთი მათოდის გამოყენებით ვიზუალური ეფექტი არის ერთი და იგივე. თუ გვსურს მხარი დავუჭიროთ შექმნილი ობიექტის ორიგინალ პარამეტრებს, ყუთის ზომის მანიპულაციისათვის, უნდა გამოვიყენოთ მასშტაბირების თვისება და არა ინდივიდუალური თვისებები.

დამატებითი პარამეტრების მოძებნა[რედაქტირება]

პარამეტრების რგოლი გვიჩვენებს ყუთის ყველა პარამეტრს. ჩვენ შეგვიძლია მათი შეცვლა. თუ გვსურს, რომ შევცვალოთ სიგრძის, სიგანის და სიმაღლის სეგმენტების პარამეტრები, ან კოორდინატების რუკის პარამეტრები MAXScript - ში, საჭიროა ვიცოდეთ ამ პარამეტრების სინტაქსი. ყველა პარამეტრის კონფიგურაციის სინტაქსის მოსაძებნად, არსებობს ორი განსახვავებული ფუნქცია. მათ შორის პირველი არის Showclass().
Showclass() ფუნქცია ბეჭდავს ინფორმაციას 3Ds Max - ში განსაზღვრულ კლასსა და კლასებზე.
შევიყვანოთ:

showclass "box.*"


MAXScript აჩვენებს ყუთის ყველა პარამეტრს, რომლების პარამეტრების რგოლის ექვივალენტურნი არიან და ამატებს იმას თუ რომელ ობიექტების კლასს მიეკუთვენბა შექმნილი ყუთი და ასევე მონაცემთა ტიპს, რომელსაც მოითხოვს თითოეული პარამეტრი.

შენიშვნა: ჩვენ შეგვიძლია გამოვიყენოთ ”*” სიმბოლო, იმისათვის რომ ვნახოთ ყუთის ყველა პარამეტრი. თუკი შევიყვანთ showClass "box*.*,", MAXScript გვიჩვენებს ყუთის ყველა პარამეტრს და BoxGizmo კლასებს.
მაგალითები:

showClass "box*" -- ყველა 3ds max-ის კლასები, დაწყებული ‘box’-დან
showClass "box.*" -- ყველა ხელმისაწვდომი თვისება -- ყუთის კლასისათვის
showClass "*:mod*" -- მოდიფიკაციის ყველა კლასები
showClass "*.*rad*" -- ყველა კლასები თვისების სახელთან ერთად -- ‘rad’ შემცველობით

მეორე ფუნქცია არის showProperties(). ეს ფუნქცია გამოიყენება სპეციფიაური ობიექტების თვისებების გამოსასახავად. showClass()-ისგან განსხვავებით ამ ფუნქციას შეუძლია გამოსახოს დინამიკური თვისებები, რომლებიც შესაძლოა გააჩნდეს სცენაზე არსებულ ინდივიდუალურ ობიექტებს.