Bu rehberde karakter rig'inde IK ve FK arasında temiz geçiş yapan bir kurulumu adım adım anlatmaya çalışacağım. Aşağıdaki yaklaşım jenerik bir 3D animasyon yazılımında uygulanabilir, marka adı vermeyeceğim. Adım 1: Üç paralel kemik zinciri oluşturma Kol için tek bir kemik zinciri yerine üç paralel zincir kurun. Birincisi 'driver' zinciri, animatörün doğrudan kontrol etmediği temel zincirdir. İkincisi 'FK' zinciri, FK kontrollerinin döndüğü zincirdir. Üçüncüsü 'IK' zinciridir ve IK solver buraya uygulanır. Üç zincirin de eklem sayısı, joint orientation değerleri ve uzunlukları birbirinin aynı olmalıdır. Aksi durumda blend sırasında snap olur. Adım 2: Blend constraint kurulumu Driver zincirine FK ve IK zincirinden parent constraint veya orient constraint uygulayın. Constraint'in iki target'ı olur: FK ve IK. Bu constraint'in 'blend' değeri 0 ile 1 arasında çalışır. 0 olduğunda driver tamamen FK'yı takip eder, 1 olduğunda IK'yı. Bu değeri animatöre custom attribute olarak açın, böylece kontrol panelinden tek slider ile geçiş yapılır. Adım 3: Pole vector ve IK handle yerleşimi IK zincirinin son eklemine IK handle yerleştirin ve pole vector hedefini dirsek arkasında, gövdeden yeterince uzak bir noktaya koyun. Çok yakın koyarsanız animator sahnede karakteri döndürdüğünde dirsek flip yapar. Mesafeyi karakterin boy ölçeğine göre belirleyin, küçük rig'lerde 5 birim, büyüklerde 20 birime kadar çıkabilir. Adım 4: Switch sırasında snap IK'dan FK'ya geçiş anında pozisyon kaybı yaşamamak için 'IK to FK snap' ve 'FK to IK snap' scriptleri yazılmalıdır. Snap işlemi mevcut karedeki driver pozisyonunu okur, hedef zincire kopyalar ve sonra blend değerini değiştirir. Manuel yapıldığında animatör her geçişte iki kareyi karşılaştırmak zorunda kalır, üretimde bu hata kaynağıdır. Adım 5: Stretch ve squash katmanı Kemiklerin uzayabilir olması istiyorsanız stretch katmanını IK çıktısının üstüne koyun. IK handle ile kök kemik arasındaki mesafeyi ölçen bir distance node kurun, bu mesafeyi normal kol uzunluğuna bölün ve çıkan oranı kemiklerin scale değerine bağlayın. Threshold koyun, kol uzunluğunun 1.5 katından öteye stretch açılmasın, aksi durumda silüet bozulur. Adım 6: Visibility kontrolleri FK kontrolleri ve IK kontrolleri farklı renklerde olmalı ve switch attribute'una göre görünürlükleri değişmeli. Animatör hangi modda olduğunu anında görmeli. Karışıklık olduğunda yanlış kontrole poz vermek üretim kaybıdır. Adım 7: Test ve bake Kurulumu bitirdikten sonra her geçişi 12 fps ve 24 fps'te test edin. Bake from IK to FK ile çıkan keyframe'lerin temiz, yumuşak interpolasyona sahip olduğunu kontrol edin. Ekstra key oluşuyorsa bake adımındaki sample rate'i düşürün. Kısa notlar - IK çözücüsü olarak rotate plane solver bacak için, single chain solver ise basit kol için daha öngörülebilir sonuç verir. - Pole vector için ayrı bir locator kullanmak, doğrudan world space bir nokta seçmekten çok daha yönetilebilirdir. - FK kontrollerini local orient pozisyonuna sıfırlayan bir 'reset to default' butonu animatöre büyük zaman kazandırır. - Switch attribute'unu mutlaka keyframable yapın, sahne içinde IK'dan FK'ya geçiş animasyonun parçası olabilir. Bu yapıyı bir kez kurduktan sonra her karaktere şablon olarak uygulayabilirsiniz. İlk kurulum uzun sürer ama üretimde geri dönüşü hızlıdır.