Maxscript

3dsmax ile maxscript programlama girişi eğitimi, 3dsmax ile script yazarak işlerinizi kolaylaştırabilirsiniz.

MaxScripte Giriş
Max´ ı kullanırken menülerden tıkladığınız herşey aslında maxscripte dayanır.
Siz bir tuşa bastığınızda yada bir değeri değiştirdiğinizde yaptığınız işlemi yerine getiren bir iç komutu devreye sokarsınız.Bu bölümde devam edeceğimiz maxscript dersleri ile yaptığımız işlemlerin görmediğimiz yüzünü öğreneceğiz.


MaxScript Nasıl Açılır?
Maxscripte işlem yapabilmeye erişmek için iki seçeneğiniz var Bunlardan birincisi;

Help menusunun hemen yanında bulunan Max script menusune basmak.Yada menulerde modifier IK gibi menulerin yanında bulunan iconuna basarak en aşşağıdan Maxscript menusunu seçmek
Burda seçeneklerimiz şu şekilde ;
1. Open Listener
2.Newscript
3.OpenScript
4.Run Script
Birinci menu Listener dediğimiz yazdığımız maxscriptleri daha iyi bir şekilde izlemek yada menulere basarken aslında hangi komutların gönderildiğini görmek için kullanacağımız menudur.
NewScript: Boş halde maxscript editörünü açar.Böylece yeni bir maxscript oluşturmaya başlayabiliriz
OpenScript: Daha önceden oluşturduğunuz bir maxscripti düzenleme yada test etme amacı ile açmaya yarar
RunScript: Daha önceden yazdığınız maxscripti çağırır ve çalıştırır.Direk kaynak kodun sonucunu görürsünüz.

Maxscript Listener
Yazdığınız maxscripti izlemek için kullanılır.Scripti çalıştırdığınızda bir hata ile karşılaşırsanız hatanın nerde olduğunu ne olduğunu direk buradan öğrenebilirsiniz.MacroRecorder menüsünden Enable yi aktif ederseniz hemen koyu renkli olan sekmede max menulerinden işlem yaparken aslında görmediğiniz içten gönderilen komutları görebilirsiniz
New Script yada Open script dediğinizde önünüze aynı editör açılacaktır. Bu editör sayesinde scriptleri yazabilir.düzenleyebilir direk burdan çalıştırabilirsiniz
File Menusunde New: Yeni bir proje açar.Open ile daha önceki çalışmalarınızı açabilirsiniz.Close ile açık projenizi kapatabilirsiniz.
Save projenizdeki değişiklikleri kaydetmeye yarar. Save as ise çalışmanızı farklı kaydetmeye yarar
Bunlar her programda olan menuler :))
Bunlar içerisinde File menusunde farklı olan Evalute All var kısa yolu ile Ctrl+E tuşu
Bunun ile yazdığınız max scriptin sonucunu görebilirsiniz
Edit menusunde de;
Undo (Geri Alma)
Cut (Kesme)
Copy (Kopyalama)
Paste (Yapıştırma)
Delete (Silme)
Select All (Tümünü Seçme)
Bu menulere de herhangi bir programdan aşina olmuşsunuzdur zaten.
Bu iki menu ileriye yani maxscript olayını ileri düzey öğrendiğimizde gerekli olacak menuler
Menuler genel itibari ile maxta kullandığınız menuler formlar gibi objeleri oluşturmaya yarıyor.
Eger yeni bir görünüm oluşturuyorsak bunu New Rollout menusunden yapıyoruz.Ama daha önceden yaptığımız bir menu varsa bunu Edit Rollout menusunden yapıyoruz
Rollout menusu başlı başına bir konu.Bir visual basic yada bir Delphi gibi visual tabanlı uygulamaları oluşturmada yarıyor yalnız bu programlardan farkı oluşturduğumuz uygulamalar sadece maxta çalışması.
Herhangi bir maxscript uygulaması oluşturduğumuzu düşünürsek ilk önce simgesine oradan Maxscript sekmesine basıp oradanda New Script dedikten sonra kodlarımızı yazıp Edit menusunden Evulate All diyerek çalıştırabiliriz.Yada save menusunden u çalışmamızı kaydederek yine MaxScript menusunden Run Script diyerek kaydettiğimiz dosyayı seçebiliriz...

 

MaxScript Box Objesi´nin Genel Özellikleri

Normalde menulerle yapabileceğiniz herşeyi ve daha fazlasını maxscriptle yapabilirsiniz.

Box nesnesini eklemek için menulere girdiğinizde box un özelliklerini Görürsünüz
Bunlar şöyle;

Lenght
Box nesnenizin uzunluğunu temsil eder.Max scriptte kullanım için erişmeki istediğinizde
.length
şeklinde erişebilirsiniz. Bir box oluşturduğunuzda eğer herhangi bir değer vermezseniz ilk değeri otomatik olarak 25.0 olarak atanacaktır.

Width
Box Nesnenizin genişliğini temsim eder.Bir Box nesnesinin genişliğini değiştirmek istediğinizde
.width
şeklinde erişirsiniz. Uzunlukta olduğu gibi herhangi bir değer verilmezse ilk degeri 25.0 olarak atanacaktır

Height
.height
Şeklinde uzunluğuna erişebilirsiniz bunun da ilk değeri 25.0 dır.

Lengthsegs
Bir box nesnesini uzunluğunu oluşturan tel çizgilerin sayısıdır.Kullanımı;
.lengthsegs
Herhangi bir değer verilmezse 1 olarak otomatik atanır.

Widthsegs
Bir box nesnesini genişliğini oluşturan tel çizgilerin sayısıdır.Kullanımı;
.widthsegs
Herhangi bir değer verilmezse 1 olarak otomatik atanır.

Heightsegs
Bir box nesnesini yüksekliğini oluşturan tel çizgilerin sayısıdır.Kullanımı;
.heightsegs
Herhangi bir değer verilmezse 1 olarak otomatik atanır.

Generate Mapping Coords
Sadece doğru yada yanlış değerlerini alır.Zaten menulerdede dikkat etmişseniz ya seçilidir yada seçili değildir,Kullanımı
.mapcoords
.Herhangi bir değer verilmediğinde ilk değeri yanlış yani seçili değildir.

WireColor
Box nesnemizin rengine erişmek için kullanılır.
.wireColor
İlk değer olarak her zaman farklı renklerde oluşacaktır.

Pos
Box nesnemizin o anki konumunu değiştirmek için uygulanır.
.pos

Örnek Uygulamalar
Bir max script açarak aşşağıdaki uygulamaları denerseniz sanirim daha açıklayıcı olacaktır.Kalın olarak belirtilen değerleri olduğundan farklı girerek değişimleri daha rahat gözlemleyebilirsiniz;

kutum=box() --sahnede bir kutu oluşturur
kutum.name="Deneme Kutusu"
kutum.wirecolor = (color 255 0 255)
kutum.length=50
kutum.width=50
kutum.height=50
kutum.pos=[20,-75,50]
kutum.lengthsegs=3
kutum.widthsegs=3
kutum.heightsegs=3

Kutu oluşturmayı öğrendiğimize göre kod yazmanın avantajını kullanarak sahnemize birbirinden 70 birim uzakta 100 tane kutu çizelim. aşağıdaki kodu olduğu gibi max scripte kaydedip Run ile çalıştırabilirsiniz.

kutum=#() --dizi tanımlama
for y = 1 to 100 do --
(
kutum[y]=box()
kutum[y].length=50
kutum[y].width=50
kutum[y].height=50
kutum[y].pos=[0 , y*70 , 0]
)

 

Ekleyen: darkman

DMCA.com
Teşekkürler
hasahin1257harun Sahin

emeğine sağlık hocam


2012-02-02 13:44:54
  • Offline
  • Erkek
insanlara teşekur etmeyen Allah şüktetmez.
eminogluidris solmazAvatar

ellinıze saglık teşekkurker.yaptıgınız çalışmalar insanların ihtiyacı için çeşme yaptırmış bırı mısalı.karşılıgı yaratıcıya kalmış.


2014-08-06 12:41:38
  • Offline
  • Erkek