Bir animasyon kütüphanesi (IK ve FK) yazmak için gerekli know-how nedir? [kapalı]


9

Animasyon için iyi bir kütüphane bulamıyorum, bulduğumlar gerçekten eski ve durdurulanlar, ancak kütüphanelerin nispeten küçük olduğunu fark ettim, bu yüzden kendi kendime kodlamayı düşünüyorum: nereden başlamalıyım? ? Bunun temelleri nelerdir? Bununla ilgili bir kitap var mı?

Animasyon için iyi bir dosya formatı hakkında daha fazla not da takdir edilmektedir.

C ++ kullanıyorum.

Yanıtlar:



7

İleri kinematik, genel olarak ters kinematik için sadece bir ön koşuldur.

İleri kinematik için, dönüşüm zincirleri hakkında bilgi sahibi olmalısınız (örneğin bir sahne grafiğinin anlamı). Örnek olarak, başlamak için iyi bir nokta Denavit-Hartenberg konvansiyonudur. Ters kinematik için, Döngüsel Koordinat İniş (CCD), Jacobian Ters, Jacobian transpozisyon ve yalancı ters çözümler . Bu kavramlar ve algoritmalar, matematiğin ve kısmen bu alanın fiziğinin ne olduğuna dair iyi bir genel bakış sunar. Eğer sihrin ardında ne olduğunu anlamak istiyorsanız, kütüphane, programlama dili veya dosya formatları asla anahtar unsur değildir .

Üzerinde çalıştığınız bazı uygulamalar için hızlı bir çözüme veya bileşene ihtiyacınız varsa, buradaki diğer yanıtlarda verilen kitaplıklardan bazılarına göz atın. Robotik yapıyorsanız, OpenRAVE bahsetmeye değer bir canavar. Ayrıca, bir Matlab Robotik Araç Kutusu var (konunun bu tür mühendislik tarafına girmeniz koşuluyla).

Tüm kavramlar, en sevdiğiniz arama motorunuzda alakalı sonuçların bir kamyon yükünü verir, bu nedenle güzel malzemelere birçok bağlantı göndermediğiniz için özür dileriz.


1

Orijinal Makale: Ters Kinematik hakkında bilmem gerekenler nelerdir?

Muhtemelen Ters Kinematiği duymuşsunuzdur. IK, Unity ve bilgisayar grafiklerinde popüler bir araçtır, ancak ilk kez Ters Kinematik sistemini oluşturmaya veya kullanmaya çalışıyorsanız, daha fazla ayrıntı isteyebilirsiniz. IK'nin ne olduğunu açıklayacağım, kelimeleri tanımlayacağım ve kullanımlarını gözden geçireceğim. TK'yi anlamak için gerekli kelime hazinesi nedir?

IK'nin kalbine girmeden önce, IK ile ilgili bazı kelimeleri tanımlamamız gerekir. IK, mafsallı bir vücuda uygulanan bir yöntemdir. Mafsallı gövde nedir?

Mafsallı Gövde

Mafsallı bir gövde, iskeletler olan insanlar ve hayvanlar gibi çoğu animasyonlu vücudu temsil edebilir. Basitçe söylemek gerekirse, mafsallı bir gövde bağlı zincirlerin bir ağacıdır. Bağlı zincirler, bir bağın sert bir silindir olduğu eklemlerden ve bağlantılardan oluşur.

resim açıklamasını buraya girin

Derz Çeşitleri

Eklemlere gelince, iki tür vardır. İlk eklem türü, döner bir eklemdir. Etrafında dönen bir bağlantıya bağlıdır.

Döner bir eklem, bir saatin merkez pimine çok benzer - bir saat eli bağlantı olarak.

resim açıklamasını buraya girin

Prizmatik bir eklem, bağlı bağlantının bağlantıyı uzatmak / kısaltmak için eklemden çevrileceği şekilde bir eklemdir.

resim açıklamasını buraya girin

Prizmatik bir eklem, bagajınızdaki geri çekilebilir kolun uzunluğunu uzatmak / geri çekmek gibi davranır. Yakından bakarsanız, geri çekilebilir bir bagaj kolunda 4 prizmatik eklem vardır. 2 prizmatik mafsal sapın yarısından aşağı ve 2 prizmatik mafsal da bagajın üst kısmındaki saptan aşağıya doğru.

Prizmatik eklemlerle karıştırılırsanız endişelenmeyin. Ters Kinematikte sıklıkla kullanılmazlar ve söyleyebileceğiniz gibi, hiçbir insanın prizmatik eklemleri yoktur - sadece döner eklemler.

Hiyerarşik yapı

Mafsallı bir gövdenin kök eklemi vardır. Kök eklem yapının temelidir. Bir insansı için kök eklem genellikle kalçaların merkezidir. Mafsallı gövde, kök ekleminden başlayarak bir eklemler ve bağlantılar ağacından oluşur. Yeni bir eklem ve bağlantı, ağaçtaki yeni bir şubeye benzer. Bir iç bağlantı / eklem, verilen eklem / bağlantı ile ilgili olduğu için, mafsallı gövdenin ağaç hiyerarşisi içindeki kök eklemine daha yakın olan bir bağlantı / eklemdir. Dıştan takmalı bağlantı / mafsal, mafsallı gövdenin ağaç hiyerarşisindeki kök mafsaldan daha uzakta olan bir bağlantı / mafsaldır.

Son Efektör

Bir uç efektör en dıştan takmalı motor bağlantısının en fazla dıştan takmalı pozisyonundaki bir konumdur. Alternatif eklemler ve bağlantılar zincirinin serbest ucudur. Son efektör bir eklem değildir. Uç efektör yalnızca mafsallı bir gövdenin ucundaki konumdur. Mafsallı bir gövdede, tıpkı bir ikili ağacın birden fazla yaprakları olabileceği gibi, birden fazla uç efektörü olabilir.

resim açıklamasını buraya girin

Son Efektör burada yeşil bir daire olarak tasvir edilmiştir.

Artikülasyonlar ve Pozlar

Bir eklem, bağlı bir bağlantıyı hareket ettiren bir eklemin dönüşü / çevirisidir. Öte yandan, bir poz eklemli gövdenin konumlandırılmasıyla sonuçlanan bir dizi eklem eklemidir. Başka bir deyişle, poz, skaler değer yerine bir vektör değeridir.

İleri Kinematik nedir?

Ters Kinematiğin ne olduğuna girmeden önce İleri Kinematiğin ne olduğunu bulmamız gerekir. İleri Kinematik fonksiyonu / algoritması giriş olarak poz alır ve uç efektörün çıkış olarak konumunu hesaplar. İleri Kinematik, Ters Kinematik'in ters fonksiyonudur. İleri Kinematik ile, fonksiyon / algoritmaya poz girişi sağlamak için eklemli bir cismin tüm pozunu tanımlamanız gerekir. Bu, eklemli gövdedeki her eklemin eklemini tanımlamanız gerektiği anlamına gelir. Az sayıda ekleminiz varsa bu iyi olabilir, ancak çok sayıda eklemle bu sıkıcı olabilir.

Ters Kinematik nedir?

Şimdi, mafsallı vücudunuzun uç efektörünün belirli bir hedef konuma ulaşmasını isteyip istemediğinizi düşünün. Bu, hedeflemek istediğiniz son efektör pozisyonunu bildiğiniz anlamına gelir, ancak uç efektörün bu hedef pozisyona ulaşması için mafsallı gövdenin pozunun ne olması gerektiğini bilmiyorsunuz demektir. Ters Kinematik burada parlıyor!

resim açıklamasını buraya girin

Ters Kinematik, İleri Kinematik'in ters fonksiyonu / algoritmasıdır. İleri Kinematik fonksiyonu / algoritması giriş olarak bir hedef pozisyon alır ve uç efektörün hedef pozisyona ulaşması için gereken pozu hesaplar - poz çıktıdır.

Gördüğünüz gibi, giriş ve çıkış FK ve IK arasında değişiyor. Ters Kinematik ile, eklemli bir gövdenin tüm pozunu tanımlamanız gerekmez - bu sizin için IK algoritması ile hesaplanır. IK ile, yalnızca bir konumu giriş olarak tanımlamanız gerekir.

Ters Kinematik, pozun ne olduğunu hesaplamak için tüm zorlu hesaplama çalışmalarını yapar. Önceki Devlet'te, bilinen bazı pozlara sahip mafsallı bir beden var. Uç efektörün ulaşmaya çalışacağı bir hedef pozisyon tanımlar. IK algoritması mafsallı gövdeye uygulandığında, After State'e ulaştık. Son Durum yeni bir pozun hesaplandığını gösterir, böylece uç efektör şimdi hedef pozisyonda olur.

IK, hangi rahatsızlıklar için kullanılır?

Bu noktada, IK'nın mafsallı bir vücuda uygulandığını, mafsallı bir vücudun nelerden oluştuğunu biliyoruz ve IK ile FK arasındaki farkı biliyoruz. Şu ana kadar IK hakkında iyi bir genel bakışa sahibiz, ancak IK'nin bazı iyi kullanım örnekleriyle de bunu tamamlayalım. Gördüğümüz gibi IK, insansı bir kolun bir nesneye / hedefe ulaşması için kullanılabilir. IK, ayak basamağı için de kullanılabilir, böylece ayağa nereye adım atılacağını söyleriz ve IK, bacak eklemlerini nasıl yapılandıracağını anlar. IK genellikle bir animasyonun kendisi (bir nesneye ulaşmak için) olarak değil, daha çok bir animasyon aracı olarak kullanılır. Dolayısıyla, bir yürüyüş döngüsü uyguluyorsanız, TK aracını kullanarak bazı önemli kareleri konumlandırabilirsiniz.

resim açıklamasını buraya girin

TK ile ilgili bir diğer önemli nokta, hedefinizin / hedefinizin yalnızca konumla sınırlı olmamasıdır - hedefiniz bir rotasyon olarak tanımlanabilir. Örneğin, ayaklarınızın engebeli araziye göre dönmesi gerekiyorsa, TK dönme hedefiniz zeminin normaline göre tanımlanabilir. Bu şekilde ayaklarınız yere eğilir, örneğin bir yokuş yukarı yürürken. Kafanızın (hatta gözlerinizin) belirli bir yöne bakması için IK'yi de kullanabileceğinizi unutmayın. Kafanızın bir nesneyi takip etmesini istiyorsanız, kafanın etrafındaki nesneyi takip etmesi için IK kullanabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.