Behöver hjälp med script för rotation av axelskydd

Hellspawned
Inlägg: 393
Blev medlem: 2004-maj-26 22:34
Ort: Stockholm
Kontakt:

Behöver hjälp med script för rotation av axelskydd

Inläggav Hellspawned » 2010-apr-25 22:30

Jag har ett projekt på gång, en space marine i full rustning, som ska animeras. Jag är mitt upp i skinningen just nu, och jag har fått problem. Axelskydden styrs på följande vis: Geometrin ligger i en grupp, med en pivot centrerad på jointen som ska styra den (axel -> armbåge-jointen), för att kontrollera rörelsen framåt och bakåt. Sen har jag satt den gruppen i ytterligare en grupp, som har sin pivot satt vid mitten av överkanten på axelskyddet, där den ska rotera när armen sträcks ut åt sidan. Men nu har jag problem. Scripten jag använder fungerar, men jag måste ha ett sätt att begränsa dem. Speciellt tydligt blir detta med det script som styr den andra gruppen. När överarmen pekar framåt och inåt, mot mitten av kroppen, så ska axelskyddets pivot låsas vid utgångsläget. Dess rotateZ ska bara styras av jointens rotateZ-värde när den är över 0, så att säga. Hur begränsar jag mitt script så att det bara fungerar inom ett visst vinkel-spann?

hierarkin + scripten:

shoulderpad_pivot_up_group (script: Shoulderpad_pivot_up_group.rotateZ = joint16.rotateZ)

shoulderpad_pivot_mid_group (script: shoulderpad_pivot_mid_group.rotateX = joint16.rotateX)

mesh
When life gives you lemons... BLOOD FOR THE BLOOD GOD!!!

pirate_lord
Inlägg: 45
Blev medlem: 2006-okt-04 19:54

Re: Behöver hjälp med script för rotation av axelskydd

Inläggav pirate_lord » 2010-maj-26 10:18

Det är nog enklare att ge ett svar om man får se och gräva lite i riggen.
Sen tycker jag att du ska undvika scripts(expressions) som hela tiden måste testas när man jobbar med riggen, scripts tar mycket mer kraft än att använda de noder som redan finns i Maya.

Du kanske kan lösa det hela med en ifsats, nåt sånt här:

if(shoulderjoint > 0 && shoulderjoint < 60)
{
script: Shoulderpad_pivot_up_group.rotateZ = joint16.rotateZ;
}
else if (shoulderjoint < 0)
{
Shoulderpad_pivot_up_group.rotateZ = 0;
}
else
{
Shoulderpad_pivot_up_group.rotateZ = 60;
}

Men som sagt riggen blir nog rätt tung om den ska evaluera den hela tiden. Använder du dig av directconnections och en clamp uppnår du nog samma resultat men det kommer gå mycket snabbare att jobba med riggen.
2D/3D frilans: cgjoker.com


Återgå till "Mel/Python-script"

Vilka är online

Användare som besöker denna kategori: 0 och 0 gäster