3dsmax Boolean script ile cisim patlatma

3dsmax Boolean mantığı ile script kullanarak object parçalama

Selam

Şimdi daha da illet bir parçalama metodu anlatacağım..Bundada Boleean mantığı kullanılmış..Yani bir parçayı içine geçen başka bir parçadan ayırmak şeklinde anlatabiliyorum ancak :)))

Şimdi arkadaşlar ilk önce bir tane teapot oluşturalım sanhemize ve ebatlarını kafanıza göre belirleyin..Bir tanede geosphere yapın ..Ebadı ise (benimkinden örnek vereyim teapot:30 geosphere:5) olsun..Bunun nedenini pflowda teapotu kaplayacağımız için ufak tercih ettim..Bu geosphere´e noise uygulayın..Benim ayarlar seed:0 scale:10 fractal:on x=2 y=5 z=5 aslında bu ayarların fazla bir önemi yok sadece girintili çıkıntılı olması için yaptım..Benim ayarları baz alarak daha rahat çözebilirsiniz..Ama Siz geneda keyfinize göre yapabilirsiniz ..

Bu da bitti ise teapotu kaplama kısmına gelelim..Particle view penceresini açıyoruz (Graph editors/Particle view veya 6´ya basın) Pencereyi açtıktan sonra içine sağ tıklayıp new/particle system/empty flow´u seçin bunu seçme nedenimiz standart flowdaki bazı özellikleri kullanmayacağız.Bu nedenle empty´i seçip kurgulamayı biz yapalım istedim..

-Yeni event olarak bir tane birth koyalım..Emit start=0 Emir stop=0 Amount=100 yapalım ..Parçacıkların doğumları 0.framede başlasın ve 0.framede bitmesini seçtik böylece 100 tane parçacığın 100´ü birden 0.framede görünecekler..(Bu event´ı pf source01 e bağlamayı unutmayın)
-Tepotu kaplamayı istediğimizden pflowa bu maddeyi tanıtmamız gerekiyor..O yüzdende maddeyi tanımlayan position object´i seçip birth´ün altına yerleştirelim..Sonrada teapotu position object´e ekleyin (add veya by list ten)
-Rotation ekleyelim.. Ayarları aynı kalabilir..Sebebi kullanacağımız geospherelerin duruşları birbirinin aynısı olmasın diye.
-Şimdi teapotu tanıttık ve onu kaplayacak geosphere´i tanıtmamız gerek..Bunun içinde Shape instance´ı ekliyoruz..None yazan butona tıklayıp geospheremizi seçelim..
-Birth´ü koyduğumuzda display de gelmiş olacağından Display tipinide geometry yaparsanız sahnenizdeki teapotun noise verdiğiniz geosphere lerle kaplandığını göreceksiniz...

Şimdi gördüğünüz gibi birbirleri arasında çok boşluk kalmış olmalı..Bunuda Position object´ye tıklayın ve Seperation´u işaretleyip distance değerini yükselterek değiştireceğiz..Seperation parçacıkların birbiri içine girme miktarlarını belirler 0 bırakırsanız istediği miktarda birbirlerinin içine girer..Ama distance ayarı ile bu değme miktarını arttırıp daha da rahatlatabilirsiniz.Yani 100 tane parçacık ,biz müdahele etmediğiniz için random olarak yerlerini kendi belirleyecek ama bu seperation ayarı 100 tane parçanın random olan doğum yerlerini bir şekilde kontrol etmenizi sağlayacak..Ben 25 yaptım...

Şimdi daha homojen yerleşmiş olması gerek ama hala boşluklar var..Bu boşluklarıda shape instance kısmına tıklayın.Ve scale ayarları ile oynayarak tamamen kaplayın teapotunuzu..Hiç boşluk görmeyeceksiniz arkadaşlar...Ben scale=291 yapınca tamamen kaplandı benim teapot..

Bu kaplama sizi tatmin etti ise..Command panele gidiyoruz..Standart primitive´ye basıp compound objeyi seçiyoruz..Oradan mesher´i seçin..Ve ekrana yerleştirin..Mesherin parametrelerine girip Pick object butonuna tıklayın ve pf sourceyi seçin..Ve böylece tepotu kapladığınız şekil ekranın herhangi biryerinde oluşmuş olması lazım..Şimdi bu mesheri teapotun üzerine yerleştirmemiz gerekiyor.


Bunun için pflowu açıp displayı none yapın ..böylece teapot ortaya çıkmış olması gerek.. Şimdi mesher seçili iken align tuşuna basıp çıkan menüde x,y ve z ´yi işaretleyip tam tepotun üzerine yerleştirin..Eğer yeri konusunda sıkıntı oluyorsa pflowda demin kapatmış olduğumuz displayı açıp yerlerini kontrol edebilirsiniz..(sonra displayı tekrar kapatın ama :))) )

Sonrada bu mesher object seçili iken üzerine sağ tuşla tıklayıp convert to ..kısmından editable meshi seçin..Artık Pflowla hazırladığımız malzemeler üzerinde oynanabilecek hale geldi..Şimdi editable meshin sub object kısmından elements´i seçip..Ctrl-A ya basıp ekrandaki bütün elementleri seçiyorsunuz...(hepsi kırmızı olacak) Aşağıdaki gibi..

Bu hale geldikten bu şekli hiç bozmadan editable mesh´in alt menülerinde bulunan explode kısmına gelip yandaki değeri 180 yapıp explode´ye tıklıyorsunuz...Açılacak "explode to object" kısmına asd ismini girin ...

Mesher object leri editable mesh olarak parçaladıktan sonra artık script kısmına gelmiş durumdayız...

Bu Obje lerin arasında kalmış olan teapotu bulup seçmek zorundasınız :)) Select by name butonuna tıklayıp oradan teapotu seçiyorsunuz..O seçili iken Max script kısmından new scripti açıyorsunuz..Açılan sayfaya size verdiğim scripti koyup çalışıtıracaksınız..sonra teapotunuz parçalanmış olacak

Kodu yollamaya çalışıyorum..Ama sanırsam yazmanız gerekecek..ben gene satır satır yollayacağım..Oradan kesip yapıştırıp resme göre ayarlarsınız artık..Bir hatadır oldu benden kaynaklı kusura bakmayın..:))

obj = selection[1]
pShapes = $asd* as array         ----asd yazan yere sizin "explode to object "kısmına girdiğiniz isim ne ise onu gireceksiniz---

for i in pShapes do
(
objCpy = copy obj
psBool = copy i
obj - psBool
psBool * objcpy
delete objCpy
update psBool
update obj
psBool.name = uniqueName (obj.name + "_Frag_")
)

delete pShapes

Birde bu scripti çalıştıramayacağınızı düşünerek onuda anlatayım...Scripti new script penceresine yerleştirdiniz ..İsmide değiştirdiniz..çalıştırmak içinde new script penceresinin file butonuna tıklayın evaluate all deyin..Böylece çalışmış olacak.Veya bu scipti masa üzerine notpad dökümanı olarak kaydedin ve maxscript´i açın ve run script´e tıklayıp bu notpad dosyasını seçin böylece çalışmış olacak..

eğer bu scriptle parçalanan teapotta bir parça kalmışsa (geosphere den)silin gitsin :))))

Şimdi gelelim neden editablemesh yapıp explode uyguladığımız parçaların isminin açıklamasına

pShapes = $asd* as array

Şu code´un içindeki "asd" bizim editable meshlere verdiğimiz isim olduğundan burada scripte hangi parçaları kullanacağını tanımlıyoruz arkadaşlar..Teapot seçili iken scripte girdiğimiz asd ismi..ekrandaki bütün asd isimli objeleri teapot üzerinde uygula demektir..Burası bu nedenle önemli...yani siz editable mesh ile parçalanmış objeye hangi ismi verirseniz kodun bu kısmına aynı ismi vermeniz gerek...($verdiğin isim* şeklinde olacak)

Tabiki bu parçalama olaylarının daha kolay yöntemleri de var ama temel olarak bunları bilirseniz ayrıntılara daha hakim olacağınızı düşünerek bu yolu tercih ettim...

Daha ilerde ,kısmetse anlatacağım derslerde bu parçalanmış teapot parçalarını birth script ile pflowa geçirip herhangi bir dış etkenden etkilenmesini anlatacağım...

Bu dersin videosunuda hazırladım..isterseniz indirip bakabilirsiniz..

Video link : http://rapidshare.com/files/238816294/proboolean.rar

Bu kıl dersde bana katıldığınızı umarak görüşmek üzere diyorum...Kolay gelsin..

Msty

 

 

Ekleyen: mustyercan32

Kapalı

Topic closed automatically because it`s been more than a year!