24 Ağustos 2022 Çarşamba

Blender 3D Rigging Notları(Inverse Kinematics'e Giriş)


     Sonunda o gün geldi çattı, ne yazık ki bu sınırlarda pek dolaşmak istemesem de kader ensemden yakaladığı gibi bu topraklara fırlattı beni. Konumuz Rigging, deli gibi tutorial izleyip onları tekrardan yapıp notlar hazırladım, bu kısımdaki bilgiler daha kapının eşiğiyle bile ifade edilemeyecek türden olsa da benim bayağı işime yaradı, konuyu uzatmadan notlara başlıyorum.

***Not: Bir kez daha hatırlatmakta fayda var, bu yazılarda kullandığım obje isimlerinin her ne kadar dilimizde Türkçe karşılığı olsa da kelimeleri programda kullanıldığı haliyle yazıyorum notlara, aksi takdirde üzerinden zaman geçince notlara bakarken daha hızlı aradığımı bulabilmem zorlaşıyor.

Armature sistemi ve Bone'lar Hakkında Genel Bilgiler

    Konu Rigging olunca en temel elemanımız Bone olarak adlandıracağımız kemik parçaları, Shıft+A --> Armature dediğimizde bir adet Single Bone ekrana düşecektir. Bu bone dediğimiz kemik parçalarından oluşturacağımız sisteme de Blender camiasında Armature diyoruz.  Editing Modu'nda kullandığımız Grabbing(G), Scaling(S) , Copying(SHIFT+D), Extruding(E) gibi komutlar armaturelerle çalışırken de aynı şekilde çalışıyor. Bir Armature'ü oluşturan Bone parçalarını düzenlemek,  ekleme –çıkarma yapmak için ise yine Armature üzerine sol tıklayıp TAB kısayolunu kullanarak eriştiğimiz  Editing Mode'u kullanıyoruz. Editing Mode içerisinde eğer bir Bone parçasının eklem yerine tıklayıp Extrude edersek aynı ekleme bağlı ikinci bir kemik elde etmiş oluruz, veya yine Editing Mode'da herhangi bir Bone'a tıklayıp kopyalarsak yine aynı Armature içinde ikinci bir kemik elde etmiş oluruz, buralar daha önce bahsettiğimiz gibi yine aynı şekilde çalışıyor. 

     Bone ve Armature ait öznitelik bilgilerine ulaşmak için de yine sağ tarafta yer alan menüleri kullanacağız, Object Data Properties içinde seçili armature sistemine ait özellikleri, Bone Properties ise bir Armature içindeki seçili Bone parçasına ait detayları barındırır. Herhangi iki bone parçasını ele alırsak bunlar arasında yine Parenting ilişkisi kurabilir ve birlikte hareket etmelerini sağlayabiliriz. Edit Mode’da öncelikle hiyerarşik olarak daha yukarıdaki (Parent) bone seçilir sonrasında hiyerarşide daha aşağıda olan Bone (Child) SHIFT+LMB yapılarak seçilir ve sonrasında CTRL+P---Keep Ofset denilerek parenting yapılır. Parenting yapılmış Bone parçası kopyalandığı takdirde aynı Parent'a bağlı ikinci bir bone parçası oluşturulur.

     Herhangi bir unsurla bone dediğimiz parçaları ilişkilendirmek için Object Mode’da önce obje seçilir, sonrasında yine Object Mode’da SHIFT+LMB yapılarak Armature seçilir ve ardından Pose Mode’a gelinir, ilişkilendirilecek olan Bone parçası SHIFT+LMB yapılarak seçilir ve ardından CTRL+P ----Bone seçilir ve bu şekilde ilişkilendirme yapılır.

     Bone sistemimizi hareket ettirmek için keyframeler atadığımızı varsayalım, sonrasında beğenmedik sildik veya boneların birbirine göre konumları ilk haline göre farklı bir yerde kaldıysa pozu sıfırlamak için: Pose Mode'da F3’e basılır ve arama çubuğuna Clear Pose Transforms yazılarak Enter yapılır ve obje ilk halini alır veya pozu resetlemek için ALT+G—ALT+R kullanarak pozu resetleyebiliriz.

     Herhangi bir simetrik Armature oluşturduğumuzu düşünelim, solda yer alan herhangi bir bone parçasını aynı şekilde sola da yapıştırmak istiyoruz. Bunun için sol veya sağdaki bone parçasına tıklayıp, Bone Properties’te Bone adını Bone01.L yapıyoruz, sonrasında Bone seçili haldeyken Edit Mode’da yukarı solda Armature—Symmetrize dediğimiz zaman seçili Bone’a mirror uygulanmış olur. 

          Edit Mode seçili haldeyken yukarı sağ kesimde Mirror işaretinin yanıdaki X sekmesi seçili hale getirilirse yaptığımız editlemeler simetri eksenine göre karşı taraf için de uygulanır.

Inverse Kinematics Üzerine

Tarih öncesi çağlarda Armature ait ait boneları hareket ettirmek için her bir parçayı tek tek rotate ve locate edip sonrasında keyframeler atamak durumundaydık, yani Armature'mizi bir kol gibi düşünürsek eli oynatmak için önce tek tek kol kemiklerini oynatıp sırayla ele geliyorduk, yıllar geçti ve VFX teknolojileri gelişti, birileri  Inverse Kinematics sistemini buldu. Bu sayede artık bir bone serisinde atayacağımız bir kontrol parçası ile tüm eklemleri birbirine göre hareket ettirebilir hale gelmiş olduk. Yani artık eli oynatmak için tek tek kol kemilerini oynatmamıza gerek kalmamış oldu, ele ait bone oynatıldığında kol parçaları da elle beraber hareket edebilir hale geldi.

     Nasıl oluşturacağımız konusu biraz karışık kullandıkça şekillenecek ama başlangıç olarak şunu söyleyebiliriz, önce hareket ettireceğimiz Armature sistemini oluşturmamız gerekiyor, yani örnek olarak bir kol vermek gerekirse omuz, dirsek ve bileğe doğru bone parçalarıyla sistemi kurduğumuzu varsayalım, sonrasında el olarak kullanacağımız bone da hazır olduğunda yapacağımız şey önce en uç bone yani eli, sonrasında ondan bir önceki bonu seçip CTRL+SHIT+C ile açılan Bone Constraint menüsünden Inverse Kinematics'i seçmek, bu şekilde artık eli hareket ettirdiğimizde el ile beraber diğer kemikler de hareket edecektir.

     Bu istemi bu şekilde kullanabileceğimiz gibi farklı uzmanlar farklı yöntemler uygulamışlar, onların da yöntemi bayağı kullanışlı duruyor hatta çok daha pratik diyebilirim. Video olmadan anlatmak zor olacak ama temelde sistem şu şekilde: Yukarıdaki örnekteki gibi veya az önceki örnekteki gibi bir kol sistemi düşünün, kolun en ucunda yine el olarak tarif edeceğimiz yukarıdaki örnekte en solda kalan bone parçasını normalde kontrol bonu olarak kullanacaktık, fakat onun yerine bu parçayı Edit Mode'da önce ALT+P--Clear Parents diyerek sistemden kopartıyoruz, yine aynı yerinde sabit haldeyken tam kol parçalarıyla birleşme yerinden el bonuna ait bir bone parçasını Extrude ediyoruz, yukarıdaki görselde seçili parça, şu anda el ve elden çıkan bone ile kolu oluşturan bonelar var elimizde ve bunlar aynı armature içinde. Sonra el kemiğini kontrol bone olarak kullanmak yerine yukarı doğru extrude edilmiş olan bona parçasını seçip sonrasında bu boneun devamında kola ait parçayı seçip CTRL+SHIFT+C--Inverse Kinematics diyerek bu eklem serisini IK haline getiriyoruz.

     Bu sayede eli ayrı biçimde kol eklemlerini ayrı biçimde bozulmadan aynı eklem üzerinden kontrol edebiliyoruz. Fazla bone olması bizi yanıltmasın, render alırken tamamı görünmeyecek. IK sistemine ait ayarlamaları yine sağ tarafta yer alan Bone Constraint Properties sekmesi altındaki ayarlardan yapacağız. Buradan zincirde kaç tane bone’un IK’ya dahil olacağına karar verebiliriz.(Chain Length sıfır olursa otomatik olarak zincirin tamamı IK’ya dahil olur)

     Uzun IK zincirlerini daha kontollü hareket ettirmek adına Target atamaları da yapabiliriz, yani kolu hareket ettirirken dirsek bölümünün kontrolden çıkmamasını istiyorsak dirsek hizasına Edit Mode'da dirseğin altına kendi başına bir Bone ekleyip (Clear Parents yapılmış olacak) ardından Bone Constraint Properties bölümünde IK ayarları altında Önce Pole Target'ı kullanacağımız  Armature’ü seçip sonrasında alt sekmedeki bone kısmından target bone’umuzu tanımlıyoruz.  (Önce pozu resetlemek için ALT+G—ALT+R yapmak gerekebilir eğer başka bir poseda kalmışsanız)






Hiç yorum yok:

Yorum Gönder