Ne kadar kaçmaya çalışsam da sonunda yolum işin fizik simülasyonları kısmına düştü. 3D'de tam bir şeyler öğreniyorum derken öyle şeyler çıkıyor ki insanın karşısına o bir anlık çok şey öğrenmişsiniz hissini tokat gibi suratınızın ortasına savurabiliyor, en azından benim tecrübem böyle. Hala Ian Hubert'in tutorialleri üzerinden devam ediyorum. Son bir buçuk haftada o kadar basit sorunlar beni o kadar çok oyaladı ki buraya bazı notlar eklemenin iyi olacağını düşündüm. Yanımda sürekli defter taşımaktansa telefondan blogu açmak daha kolay geldiği için blogda tutuyorum notlarımı, belki birilerinin de işine yarar. Şimdi bu videoyu hazırlarken aşama aşama yaptıklarıma geçiyorum.
Öncelikle sahneyi kurgulamakta
yarar var, ben de burada Ian Hubert’in Hyperball’u gibi hareket halindeki bir
jet motoruvari objenin takla atarak savrulacağı bir sahne düşledim. İlk aşamada
fiziki simülasyonları gerçekleştireceğimiz çarpma vs. gibi hareketleri yapacak
olan ana objeye benzer temel bir şekil üzerinde denemeler yapacağız. O yüzden
ilk iş zemini ve dummy objemizi ekliyoruz. Objemizin zemine çarptığında daha
düzel savrulması için biraz topografyayı bozmak iyi olabilir.Bunun için Edit Mode’da
zemini tamamen seçip Subdivide dedikten sonra Subdivide Menüsü'nden Fractal
ayarını yükseltip topografyayı biraz bozuyoruz. Jet motoru yerine de bir adet aynı boyutlarda ve yakın şekilde elden geçirilmiş bir silindir kullanıyoruz.
Ana unsurlar hazır olduktan sonra
silindirin ve zeminin fiziksel özelliklerini tanımlamak için Physic Properties
kısmına geliyoruz. Önce zemini Physic Properties—Rigid Body yapıyoruz. Eğer
objemiz yerinde sabit bir Rigid Body olacaksa(Zemin, Duvar vs. Gibi) yapmamız
gereken Rigid Body Type’ını Passive olarak değiştirmek, çarpma testlerinde
kullanacağımız silindirin de Physic Properties kısmına gelip onu da Rigid Body
yapıyoruz, elbette bunun hareket etmesini istediğimiz için Ridig Body Type
kısmı Active olarak kalıyor.
Rigid Body olarak tanımladığımız
objeler normalde Play(Space) tuşuna basar basmaz yere düşüyor, bunları hareket
ettirebilmek için yine Physic Properties bölümünde Ridig Body sekmesi altında
Animated kısmına keyframe ekleyerek hareket ediyoruz. Objenin belli bir yere
kadar hareketini keyframeler ile tanımlayıp yapıp sonrasında fizik kurallarının
görevi devralmasını sağlıyoruz. Önce Animated sekmesi aktif haldeyken
keyframeleri yerleştirip sonrasında hareketin kesilip fizik kurallarının devreye
girmesini istediğimiz noktada Animated sekmesine keyframeler ekleyip bir yerden
sonra Animated olarak değil fizik kurallarıyla devam etmek istiyoruz.
Bu işlemleri yaparken silindirin
hız kazanmasını sağlamak için bayağı uzaktan gelmesi gerekiyordu ve çarpma, zıplama, savrulmalar esnasında obje kadrajdan sürekli çıkmak durumunda
kalıyordu. Bahsettiklerimi yaşamadan kamerayı objeye sabitleyip rahat rahat
çalışabiliriz, bunun için kameraya da Physic Properties’ten bir Object
Constraint eklememiz gerekiyor, bunun için Damp Track’i kullanıyoruz. Damp
Track ekledikten sonra damlacıkla silidiri seçip, eksenlerde gerekli
ayarlamaları yaparak kameramızı objemize sabitleyebiliyoruz.
Biraz geriden fırlatma, yüksekten
fırlatma, silindirin başını biraz aşağıya gömme derken istediğime yakın bir
savrulma elde ettikten sonra bu hareketi kaybetmemek adına sabitlemem
gerektiğini öğrendim. Sabitleme işlemi için tüm ayarlamalar yapılıp hareket
son haline geldikten sonra bir tam tur oynatıp Scene Properties—Current Cache
to Bake diyor ve sonrasında dosyayı kaydediyoruz. Blender'da sanırım her şeyi Bake edebiliyoruz, daha önce Normal Map'lere baking yapmıştık, burada da farklı türden baking işlemleri yaptık. Sanırım sırf Baking için oturup ayrıca çalışacağım bir ara. Bakeleyip hareketimizi
sabitledikten sonra yapmamız gereken şey artık asıl objeyi yani jet motorunu
sahneye almak(File-Append ile çağırabiliriz). (Eğer çağırdığımız bu obje
üzereinde keyframeler varsa temizlemekte yarar var) Herhangi bir objenin
lokasyon, rotasyon gibi özelliklerini başka bir objeye kopyalayabilmek için
öncelikle Preferences—Add-Ons kısmından Copy Attiributes Menu Add-Onn’unun açık
olması gerekiyor. Ardından CTRL+C ile Copy Location ve Copy Rotation yapabilir
hale geliyoruz. Yine Blender’da her zaman olduğu gibi önce özelliklerin
kopyalanacağı obje sonrasında da kopyalanacağı objeyi seçip CTRL+C diyoruz). Bunu yapmamızın sebebi iki objeyi de uzayda aynı yere ve rotasyona getirmek, çünkü birazdan yine bir parenting kuracağız. Önce sonradan eklediğimiz objeyi
önce seçip sonrasında dummymizi seçerek CTRL+P—Keep Transform diyerek iki
objeyi ilişkilendiriyoruz. Şu anda iki obje de aynı şekilde hareket edecek, jet motorumuz az önce test edip onayladığımız ve sonrasında hareketini sabitlediğimiz kukla silindirin hareketini taklit edecek.
Bu kısımda daha önce akıllarda
soru işareti bırakan Vertice’lere veya Face’lere keyframe atayabiliyor muyuz?
Sorusunun cevabı geliyor, evet atayabiliyormuşuz ve bunun başka bir adı varmış, o da Shape Keys. Shape Keys ile deformasyon efektini kendimiz yapabiliyoruz, bu
sayede objeye ait yüzeylerin belli bir anda belli şekil değişikliklerine ve hatta belli oranlarda maruz kalmasını sağlayabiliyoruz. Shape Keylerimizi Object Data
Properties—Shape Key bölümünden ekliyoruz.Shape Key eklerken mutlaka ilk olarak
Basis Shape Keys liste başında bulunmak zorunda çünkü bu bizim objemizin temel
biçimini ifade ediyor. Sonrasında adım adım her çarpma anı için oluşabilecek
deformasyonları Edit Mode(TAB) ile yapıp sonrasında Shape Key menüde Value
kısmından timeline üzerinde çarpmanın başlangıç ve bitiş anlarına keyframe
atayarak deformasyonu sağlıyoruz.
****Not:Propotional Editing yaparken sadece bağlı objeye ait unsurların editlenmesini istiyorsak Propotional Editing’e tıkladığımızda hemen altında yer alan Connected Only sekmesi aktif hale getirilmelidir.
Bu noktaya kadar yaptıklarımızı özetlemek gerekirse önce zemini ve kukla silindirimizi yaptık, bunlara fiziksel özellikler kazandırdık, ardından lokasyon-rotasyon değişimlerini keyframeler ile tanımladıktan sonra Object Constraint kısmından Animate kısmına da keyframeler atayarak bir noktadan sonra yer çekimi gibi fizik kanunlarının devreye girmesini sağladık ve istediğimiz çarpma-savrulmayı elde ettikten sonra ana objemizi çağırıp üzerinde shape key'ler ile deformasyonları oluşturarak süreci tamamladık. İkincil olarak sağa sola savrulan partikülleri
ve kıvılcımları ekleme işi var. Öncelikle savrulan parçaları yapabilmek için
ana objeyi kenara kopyalayıp üzerindeki her şeyi temizliyoruz. (Key frame,
Shape Frame, Parenting vs.). Sonra şarapnel gibi savrulacak parçalar elde
edebilmek adına ana objeden bazı şeyleri seçiyoruz ve devamında bunları
P---Selection yaparak ana objeden ayırıyoruz. Şimdi bu obje grubunu ayrı bir koleksiyona dahil
edip devamında her birinin ayrı birer obje olarak kalmasını sağlamak için Edit
Mode’da tekli objelere yaptığımız gibi P—By Loose Parts diyerek tamamını ayrı
parçalara ayırıyoruz, yanda koleksiyon altında bu parçaları görebilirsiniz. Bu koleksiyona karıştırmamak adına uygun bir isim vererek benim ulaşamadığım bir düzenlilik seviyesine ulaşabilirsiniz. Neyse sonrasında bir emitter object yapıp jet motorunun içine gömmemiz gerekiyor, savrulan motor parçalarımız bu emitter object'ten dağılacaklar. Bahsetiğimiz partikülleri
oluşturacak bir silindir oluşturup kabaca motorun içine gömüyoruz, daha önceki
gibi rotasyon ve lokasyon değerlerini kopyalıyoruz. Bahsedildiği gibi kabaca
silindiri şekillendirip CTRL+P yaparak ana objeyle Parenting kuruyoruz. Devamında particle systemi oluşturacağımız
silindir seçili haldeyken; Particle Properties—Add Particle System, sonrasında
Rotation aktif hale getirilir ve Render sekmesinin altından Render as
Collection ve onun altından partikül olarak dağılacak olan az önce yaptığımız
koleksiyon tanımlanır(Velocity—Object Velocity –1 yaptığımızda sanırım
ana objenin hızını taklit ediyor parçalar). Eğer fırlayan parçaların zeminle interaksiyona
girmesini istiyorsak, yani fırlayan parçaların zemine çarpıp dağılması gibi
işler peşindeysek zemine Object Constraint—Collision eklemek gerekiyor. Elbette
bunu yapmadan önce ana objenin hareketini bake’leyip sabitlemek gerekiyor yoksa
zemine dokunan silindirimiz de top gibi sekmeye başlıyor.
Çarpma, dağılma durumuna göre bu eklediğimiz Particle System’ları kopyalayıp zamanlamalarını değiştirip daha gerçekçi
parçalanma anları elde edebiliriz. Sonraki aşamamız fırlayan kıvılcımları ekleme
aşaması; yine Particle System’i kullanacağız. Önce kıvılcım parçalarına
dönüşecek olan minik partiküllerimizi yapıp sonra emitter object olarak
çalışacak olan silindir parçasını ana objemizin içine gömüyoruz. Yine bir önceki aşamadaki gibi kıvılcımları taklit edecek minik emissive objeler yapıp onları koleksiyona dahil edip tanımlıyoruz ve keyframeler ile hangi sahnelerde ne kadar miktarda saçılacaklarına karar veriyoruz. Bu noktada söylemekte yarar var eğer emitter objemizin görünmesini istemiyorsak ona göre bir materyal seçebilir veya show emitter sekmesini pasif hale getirebiliriz. Son olarak parçikılları nedense çat diye render almıyor,
frameleri falan ayarlayıp memnun olduktan sonra videoyu bir tam tur oynatıp
ardından yine bake dediğimizde ancak renderda çıkıyor fırlayan parçalar.
Zaman zaman aklınıza bu blogda neden görsellerin hıyar gibi ortaya konduğu konusunda bazı soru işaretleri beliriyordur, daha önce sayfada boşluk bırakmama konusunda ısrarcıydım, görsellerden boşta kalan alanları yazılarla doldururdum fakat Blogger'ın her güncellemesinden sonra görsellerin yerini tekrardan ayarlayıp, yazıları düzeltmekten bıktım ve sonunda bu şekilde kalmasının daha doğru olacağına karar verdim, bu bilgiyle artık ne istiyorsanız onu yapabilirsiniz dedikten sonra yeni postlarda görüşmek üzere sizlere veda ediyorum.
Hiç yorum yok:
Yorum Gönder