Gönderen Konu: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)  (Okunma sayısı 5549 defa)

0 Üye ve 2 Ziyaretçi konuyu incelemekte.

Çevrimdışı kastaniga

  • Üye
  • **
  • İleti: 62
    • Profili Görüntüle
    • www.mcihanayaz.com
Kontrol noktasını veya herhangi bir objeyi cv'ye bağlamak istiyorum.

Bu işlem, rivet (perçin) diye isimlendiriliyor.
creativecrash sitesinde revit işlemi ile ilgili mel scriptler mevcut; "http://www.creativecrash.com/maya/downloads/scripts-plugins/c/search?search=rivet&x=0&y=0" fakat onlar benim istediğim işlemi gerçekleştirmiyorlar. Polygon objenin vertexine veya nurbs objenin control pointine bağlıyorlar.

Ben ekteki resimde görünen sarı objeyi (aslında onun üst grubunu) seçili olan cv ile (clusterin altında görünen) kontrol edebilmek istiyorum.

Chad Vernon böyle birşey yapmış. http://www.chadvernon.com/blog/resources/cvrivet/
Fakat O da paylaşmıyor.

hair follicles'ı cv'ye bağlayabilir miyim? Bu da benim için bir çözüm olabilir.

Not: Aslında şu expression ile olması gerekiyordu fakat olmadı: "
//lips_cDrv.cv[1]
float $lip_cv1[] = `xform -q -ws -t lips_cDrv.cv[1]`;
L_upperLipA_ctrl_0.tx = $lip_cv1[0];
L_upperLipA_ctrl_0.ty = $lip_cv1[1];
L_upperLipA_ctrl_0.tz = $lip_cv1[2];
"

Teşekkürler.
« Son Düzenleme: Temmuz 28, 2012, 14:46:46 ÖS Gönderen: kastaniga »



Çevrimdışı levent Bilgin

  • Üye
  • **
  • İleti: 216
    • Profili Görüntüle
    • character animator /director
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #1 : Temmuz 28, 2012, 14:37:37 ÖS »
wire deformer ?

Çevrimdışı VerteX

  • Üye
  • **
  • İleti: 811
    • Profili Görüntüle
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #2 : Temmuz 28, 2012, 19:07:42 ÖS »
Şöyle ufak bir pointOnSurface denemesinde bulundum.



Ardından mesajımı atmadan bir de pointOnCurve deneyip ikisini birlikte atayım dedim.



Verdiğin videolardaki sonuçlara yaklaştım gibi. Tabi bahsettiğimiz adam Chad Vernon :)

Bu arada farkettiğiniz gibi ilk videoda cv leri anime etmek için cluster kullandım. İkinci videoda ise bunu kullanmadım. Tam cluster curve yapmaya gidiyordum ki yıl 2012 olmuş acaba yapmışlarmıdır diye bir denedim, hobaa :) cv leri anime edebiliyormuşuz artık. Ne zamandır bu böyle acaba bilen var mı :) ?

Çevrimdışı kastaniga

  • Üye
  • **
  • İleti: 62
    • Profili Görüntüle
    • www.mcihanayaz.com
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #3 : Temmuz 28, 2012, 19:12:40 ÖS »
Sanırım wire deformer benim işime yaramıyor.

Fakat add influence yerine wire deformer alternatifi kullanılabilir.
Bunu bilmiyordum öğrenmiş oldum, teşekkürler.

"  //Global Update - Lips (for the movement of the corner lip controls)
$globalUpdate_L_X = L_cornerLip_ctrl.tx;
$globalUpdate_L_Y = L_cornerLip_ctrl.ty;
$globalUpdate_L_Z = L_cornerLip_ctrl.tz;

$globalUpdate_R_X = R_cornerLip_ctrl.tx;
$globalUpdate_R_Y = R_cornerLip_ctrl.ty;
$globalUpdate_R_Z = R_cornerLip_ctrl.tz;


//lips_cDrv.cv[1]
float $lip_cv1[] = `xform -q -ws -t lips_cDrv.cv[1]`;
L_upperLipA_ctrl_0.tx = $lip_cv1[0];
L_upperLipA_ctrl_0.ty = $lip_cv1[1];
L_upperLipA_ctrl_0.tz = $lip_cv1[2];  "

Benim bu expression'ı kullandığımda ağız köşe kontrol çizgisi ile cv'ye bağladığım kontrol objemi hareket ettirebilmem gerekiyor. Expression çalışıyor fakat cv'ye bağlanan kontrol objesi çok alakasız bir yere gidiyor.

Çok da expression yazmayla ile ilgili bilgim de yok; onun için pek fazla fikir de yürütemiyorum.

Ekte çalıştığım proje örneği mevcuttur. Benim yukarıda yazdığım expression'ı çalıştırdığımda L_cornerLip_ctrl "ağız sol kontrol çizgisi (kırmızı renkli ve haraketli)" L_upperLipA_ctrl_0'ı (kırmızı renkli ağız kontrol çizgisi) cv'nin olduğu yerde bulunması şartıyla hareket ettirmesi gerekiyor. Fakat expression'ı çalıştırdığımda yukarıda da söylediğim gibi alakasız uzak bir yere gidiyor L_upperLipA_ctrl_0.

Durum böyledir, umarım yardımcı olabilirsiniz.

Expression haricinde başka çözümlerde aradım fakat bulamadım.

Teşekkürler...

Not: Proje Maya 2011'de çalışılmıştır.

Çevrimdışı VerteX

  • Üye
  • **
  • İleti: 811
    • Profili Görüntüle
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #4 : Temmuz 28, 2012, 19:41:13 ÖS »
Sanırım ben yanlış anlamışım. Dosyayı indirip baktım da şu DT'nin mavi ucubesinin face rigini takip ediyorsun gibi geldi bana. Eğer öleyse zaten video derslerde anlatıyor bunun nasıl bağlanacağını ???

Sadece bu kırmızı kutuya cv leri bağlamakla kalmıyor, aynı zamanda eğer cv ler kendi local lerinde hareket ederlerse, localde oluşan offset değerini world space e yediriyordu yanlış hatırlamıyorsam.

Kabaca mantığını biliyorum ama tam olarak hakim değilim. Kolaylıklar...

Çevrimdışı kastaniga

  • Üye
  • **
  • İleti: 62
    • Profili Görüntüle
    • www.mcihanayaz.com
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #5 : Temmuz 30, 2012, 13:44:41 ÖS »
İlgin için teşekkürler Vertex.

Evet DT'nin mavi ucubesinin face rig tutorial'ini baz alarak yapıyorum rigi. Kontrol objesinin üst grubu CV ile birlikte hareket etmeli, aynı zamanda CV; kontrol objesiyle hareket ettirilebilmeli.

Tutorial de anlatılıyor, expression çalıştırarak CV ile eş zamanlı olarak kontrol objesi üst grubu kontrol ediliyor. Fakat ben de bu expression istenildiği gibi çalışmıyor.
İşte ben de tam olarak bunu çözmeye çalışıyorum.

Ben tutorial'ı birebir uygulamadım "kontrol objelerim ve isimlerim farklı". Benzer isimler ve kontrol objeleri ile de denedim fakat yine olmadı. Acaba neden olmadı ve nasıl olabilir?

Teşekkürler.

Çevrimdışı VerteX

  • Üye
  • **
  • İleti: 811
    • Profili Görüntüle
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #6 : Temmuz 30, 2012, 15:50:28 ÖS »
Dediğim gibi daha önce böyle bir şey yapmadım ama akşama bir göz atacağım tekrar.
Kafamda canlanan fikir şu şekilde;

Elimizde bir genel control objesi var ve bu objenin altında da bir kontrol objesi var. Genel kontrolü hareket ettirdiğimizde altındaki child objeler de hareket ediyorlar. Fakat child objeyi hareket ettirdikten sonra gidip genel kontrol objesini hareket ettirirsek, hop child obje eski konumuna geliyor.
parent child ilişkisinden doğan xform ile kontrol edilebilen bir değer var mı bilmiyorum, ona da bakmak gerek.

Ama genel kontrol objesine A, child objeye B dersek.
A objesinin translate değerleri + offset değeri = B objesi dersek, (yani parent yaparken işaretlediğimiz maintain offset seçeneğini yapmış olacağız) ve B objesinin ilk konumunu ve son konumunu geçici bir yerde tutar, birbirinden çıkartıp kalan değeri yukarıdaki offset e girersek olabilir gibi duruyor.

Çevrimdışı kastaniga

  • Üye
  • **
  • İleti: 62
    • Profili Görüntüle
    • www.mcihanayaz.com
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #7 : Temmuz 30, 2012, 17:19:30 ÖS »
Yazmış olduğum expression çalışıyor. Köşe kontrol çizgisi, kendisinin cluster ile bağlandığı curve'u esneterek hareket ettirdiğinde bu esneyen curve'ün CV'sine hareketi bağlanan kontrol objemizin üst grubu da onunla beraber hareket ediyor.

Tek sorun şu; bağlamak istediğimiz kontrol objemiz "dolayısıyla kontrol objemizin üst grubu" expression'ı çalıştırdığımız anda bulunduğu noktadan uzak bir noktaya kayıyor. Fakat orda çalışıyor.
Bu expression'ı çalıştırıp ağız kenarında da sabit kalmasını sağladığımızda "expression uygulandığında yerini koruduğunda" sorunu çözmüş oluyoruz.

Vertex:
- Yollamış olduğum proje dosyasında, yolladığım expression'ı çalıştırdığında; duruma belki daha kolay bir çözüm getirebilirsin.

"  //Global Update - Lips (for the movement of the corner lip controls)
$globalUpdate_L_X = L_cornerLip_ctrl.tx;
$globalUpdate_L_Y = L_cornerLip_ctrl.ty;
$globalUpdate_L_Z = L_cornerLip_ctrl.tz;

$globalUpdate_R_X = R_cornerLip_ctrl.tx;
$globalUpdate_R_Y = R_cornerLip_ctrl.ty;
$globalUpdate_R_Z = R_cornerLip_ctrl.tz;


//lips_cDrv.cv[1]
float $lip_cv1[] = `xform -q -ws -t lips_cDrv.cv[1]`;
L_upperLipA_ctrl_0.tx = $lip_cv1[0];
L_upperLipA_ctrl_0.ty = $lip_cv1[1];
L_upperLipA_ctrl_0.tz = $lip_cv1[2];  "

Çevrimdışı kastaniga

  • Üye
  • **
  • İleti: 62
    • Profili Görüntüle
    • www.mcihanayaz.com
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #8 : Temmuz 30, 2012, 20:19:33 ÖS »
Durumu izah etmek için video ekliyorum.

http://www.youtube.com/watch?v=Q7lzHE9aZpI&feature=youtu.be

Videonun birinci kısmı benim çalışmam, ikinci kısmı ise tutorial proje dosyasının expression uygulaması gösterimi; yani olmasını istediğim durum.

Benim çalışmamda expression'ı uyguladığımda expression'ın çalıştığı görülüyor. Kontrol noktası yerinden kayboluyor. Daha sonra kontrol noktasını buluyoruz ve köşe kontrol çizgisini hareket ettirerek kaybolan kontrol noktasının hareketini gözlemliyoruz. İstediğimiz şekilde curve'un CV'sine bağlı şekilde hareket ediyor fakat yerini koruyamamış, uçmuş gitmiş.

Videonun ikinci parçasında olması gerekeni görüyoruz.

Durumu izah etmeye çalıştıkça daha bir karmaşık hal alıyor gibi. Aslında yapılacak şey çok karmaşık değil. Fakat ne yapılacağını bilemiyorum.

Umarım durum anlaşılmıştır.

Çevrimdışı VerteX

  • Üye
  • **
  • İleti: 811
    • Profili Görüntüle
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #9 : Temmuz 30, 2012, 22:42:32 ÖS »

Çevrimdışı kastaniga

  • Üye
  • **
  • İleti: 62
    • Profili Görüntüle
    • www.mcihanayaz.com
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #10 : Temmuz 31, 2012, 00:27:34 ÖÖ »
Çok çok teşekkürler hallettim sayende...

Bu da öğrendiklerimi uygulamamın videosu:

http://www.youtube.com/watch?v=oTvjQySaQ4o&feature=youtu.be

Çok faydalı şeyler öğrendiğimi düşünüyorum, tekrardan sağol...

Çevrimdışı VerteX

  • Üye
  • **
  • İleti: 811
    • Profili Görüntüle
Ynt: Objeyi cv'ye "control vertex" nasıl bağlayabilirim? (Rivet to CV)
« Yanıtla #11 : Temmuz 31, 2012, 09:11:34 ÖÖ »
Rica ederim işine yaramasına sevindim. Genellikle kontrol objeleri için ufak offset grupları oluşturmak bu tip sorunlar için yararlı oluyor aklında bulunsun, kolaylıklar :)