Sunday, August 25, 2013

3D ტექსტის ავტომატური ანიმირება სკრიპტის დახმარებით






ამ გაკვეთილში გავეცნობით 3D Max-ის ფუნქცია Script-ებთან მუშაობას და მისი მეშვეობით  შევქმნით ანიმაციას და ასევე გავეცნობით რამდენიმე საჭირო ფუნქციას, რომელიც მომავალში აუცილებლად გამოგვადგება, ან კიდევ სულაც შეიძლება ვინმეს გამოადგეს რამეში აქ აღწერილი გაკვეთილი. ნუ შეგაშინებთ Script-ბი, რადგან არაა აუცილებელი მათი დაზეპირება საჭირო. შეგიძლიათ უბრალოდ txt დოკუმენტში ჩააკოპიროთ და შეინახოთ კომპიუტერში, ხოლო როცა დაგჭირდებათ კონკრეტულ ადგილას გამოიყენოთ. მე მაგალითად მასე ვიქცევი. Script-ბის მეშვეობით იქმნება ისეთი ფუნქციები 3D Max-ისთვის რომელიც მას საერთოდ არ გააჩნია. არიან ხალხი რომლებიც წერენ Script-ს და ძალიან საჭირო ფუნქციები ემატება პროგრამას მათი მეშვეობით. მათი ფართო არჩევანი შეგიძლიათ იხილოთ ამ საიტზე Scriptspot.com - ეწვიეთ და გადაავლეთ თვალი, ხოლო თუ რამე სასარგებლოს ნახავთ თქვენთვის, გადმოწეროთ და გამოიყენოთ. შემდეგში დავწერ კიდე რამდენიმე გაკვეთილს ამ თემაზე და უფრო კარგად გაერკვევით თუ რა არის Script-ბი. ეხლა კი გადავიდეთ გაკვეთილზე.

სცენაზე გავაკეთოთ კუბი პარამეტრებით როგორც სურათზეა:


თავში დაუსვათ  Shape ობიექტი Text-ი:


შემდეგ მივანიჭოთ Text  ობიექტს მოდიფიკატორი Edit Poly და გაუკეთოთ Extrude 3 სანტიმეტრი:


შემდეგ ვიძახებთ მენიუდან Graph Editors > Track View - Curve Editor... და მოვნახავთ ობიექტ Text-ის პარამეტრს Leading-ს როგორც სურათზეა:


მოვნიშნავთ Leading-ს და მარჯვენა კლიკით გამოვიძახებთ Quad Menu-ს და ვნახულობთ პუნქტს Assign Controller (კონტროლერის მინიჭება).  ვირჩევთ სიიდან საჭირო კონტროლეს Float Script და ვუკლიკებთ OK-ს.


შემდეგ გამოსულ ფანჯარაში ჩაუწეროთ სკრიპტი ყველაზე მარტივი მნიშვნელობა ჯერ:

$Text001.text = F as string 0


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


ახლა ჩვენ გვინდა რომ ეს ტექსტი იცვლებოდეს არა სლაიდერის გადაადგილების დროს, არამედ Z ღერძზე მოზრაობის დროს ანუ ზევით და ქვევით. ვაკეთებთ ახალ მნიშვნელობას - ჩემს შემთხვევაში ეს იქნება dd.

ეს უნდა შევქმნათ შემდეგნაირად  სკრიპტის პარამეტრ  Create Variable ჩაუწეროთ სახელი Name-ში dd და დაულიკოთ პნოპკა Create-ს. 


შემდეგ დაბლა ვუკლიკებთ ღილაკს Assign Track-ს და გამოსულ ფანჯარაში მოვანხოთ და მივამაგრებთ Z Position : Bezier Float ობიექტს  Text001 ანუ ჩვენი ტექსტს.


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

$Text001.text = dd as string 0

დაუკლიკოთ Evaluate-ს.

გავამოძრაოთ ტექსტი Z პოზიციაზე Move ინსტრუმენტით და დავინახავთ სკრიპტის შედეგს.

შემდეგი გადავიდეთ  კუბზე. რათა მივაბათ ჩვენი კუბი ტექსტზე, კუბის ზედა წერტილებს მივანიჭოთ მოდიფიკატორი Linked XForm (როგორ მივანიჭთ: კუბზე გავააქტიუროთ Edit Poly - Vertex Mode და მოვნიშნოთ მარტო ზედა წერტილები, შემდეგ მივანიჭოთ მოდიფიკატორი Linked XForm) და Control Object-ში ავირჩიოთ ჩვენი ტექსტი.


შემდეგ გვინდა ჩვენმა ტექსტმა იმოძრაოს თავისით ზემოთ და ქვევმოთ. ეს ხელით რომ არ გავაკეთოთ ვაკეთებთ შემდეგნაირად (ხოლო თუ გინდათ ხელით შეგიძიათ გააკეთოთ ხელითაც) Z პოზიციაზე ტექსტს ვანიჭებთ კონტროლერს  Noise Float-ს შემდეგი პარამეტრებით:


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

ეს იმიტომ რომ ციფრის მნიშვნელობა გაიზარდოს 4 ჯერ რაც არის არსებული, ანუ გამრავლდება 4-ჯერ:



$Text001.text = ((dd*4) as integer) as string 0

შემდეგ თუ გაუშვებთ ანიამციას დავინახავთ რომ ანიმაცია მზადაა - რა თქმა უნდა თუ სწორედ გაავკეთეთ ყველაფერი.

ხოლო თუ დავაკოპირებთ ამ შემთხვევაში სახელი გადაერქმევა ობიექტს Text002 და დაკოპირებული არ იმუშავებს.


იმიტომ რომ სკრიპტში მითითებულ მაგალითში აღნიშნულია Text001. ამიტომ სკირპტი ვერ გაიგებს Text002-ის ფუნქციას (დაკოპირების დროს გადაერქვა სახელი ავტომატურად Техт002). ამისათვის რომ გაიგოს და ამუშავდეს უნდა შევცვალოთ მაგალითში Text002-ით.

მოვნიშნავთ და ვიძახებთ ობიექტის Text002-ის  Graph Editors > Track View - Curve Editor... და შეუცვლით Text001-ს Text002-ად:


შემდეგ არ დავხურავთ Curve Editor-ს და Z პოზიციაზე Noise პარამეტრშიც შევცვლით პარამეტრ Seed-ს:


Seed პარამეტრი იმიტომ შევცვალეთ რომ არ აურიოს დროში Noise კონტროლერის ზემოქმედება და ერთნაირად არ გააკეთოს ობიექტმა მოძრაობა Z პოზიციაზე.

მოკლედ ასე გავაკეთებთ ყველას რომელთაც დავაკოპირებთ.


აი დაახლოებით ასეთი ანიმაცია გამოვიდა: 



თუ რამეს ვერ გაიგებთ, დაწერეთ კომენტარებში, წარმატებები !

წყარო: 3dyuriki.com

No comments:

Post a Comment