Página 1 de 1

Lección 7 - Sesión P/R

Publicado: Dom Dic 05, 2010 2:34 am
por ikerJ
- El pincel de Skin sólo pesa a 1.
- Reflotar 'script' de huesos elásticos.
- Mostrar ejemplos de aplicaciones de huesos elásticos.
- Vídeo Morpher / MorphX2.
- Diferencia entre usar 'twists' o 'main' en Skin Morph.

Re: Lección 7 - Sesión P/R

Publicado: Dom Dic 05, 2010 2:43 am
por ikerJ
Script para crear huesos elásticos

Código: Seleccionar todo

--select two points or more points and run the code below for creating a 'stretchy' bone or a 'stretchy' chain fn makeNubBone lastBone = ( local pos = lastBone.transform[4] -- get the position of the last bone. local xDir = lastBone.transform[1] -- get the vector of the X point. local startPoint = pos + xDir * lastBone.length local endPoint = startPoint + xDir * lastBone.width local nubBone = boneSys.createBone startPoint endPoint lastBone.transform[3] -- create the bone. nubBone.width = lastBone.width nubBone.height = lastBone.height nubBone.wireColor = lastBone.wireColor nubBone.parent = lastBone nubBone.name = lastBone.name + "_Nub" return nubBone ) fn pointFilt o = (ClassOf o == Point) if selection.count == 2 do ( if classof selection[1] == Point and classof selection[2] == Point then ( thePoints = selection as array; theBone = boneSys.createBone thePoints[1].pos thePoints[2].pos thePoints[1].transform[3] theNub = makeNubBone theBone theBone.position.controller = Position_Constraint() theBone.position.controller.appendTarget thePoints[1] 100 theNub.position.controller = Position_Constraint() theNub.position.controller.appendTarget thePoints[2] 100 theBone.rotation.controller = LookAt_Constraint() theBone.rotation.controller.appendTarget thePoints[2] 100 theBone.rotation.controller.viewline_length_abs = false theBone.rotation.controller.upnode_world = false theBone.rotation.controller.pickUpnode = thePoints[1] theBone.rotation.controller.upnodeAxis = 2 theBone.rotation.controller.stoUpAxis = 2 ) else messageBox "Selected objects must be points" ) if selection.count > 2 do ( theCnts = #() theBones = #() for i = 1 to (selection.count-1) do ( -- if classof selection[1] == Point and classof selection[2] == Point then thePoints = selection as array theCnt = point transform:thePoints[i].transform box:on cross:off axisTripod:off size:1 theCnt.parent = thePoints[i] theBone = boneSys.createBone thePoints[i].pos thePoints[i+1].pos thePoints[i].transform[3] append theCnts theCnt append theBones theBone ) theNub = makeNubBone theBones[theBones.count] theNubCnt = point transform:theNub.transform box:on cross:off axisTripod:off size:2 append theBones theNub append theCnts theNubCnt theNub.position.controller = Position_Constraint() --theTarget = (pickObject prompt:"enter a point" filter:pointFilt) theNub.position.controller.appendTarget theCnts[TheCnts.count] 100 for i = 1 to theBones.count-1 do ( theBones[i].position.controller = Position_Constraint() theBones[i].position.controller.appendTarget theCnts[i] 100 theBones[i].rotation.controller = LookAt_Constraint() theBones[i].rotation.controller.appendTarget theCnts[i+1] 100 theBones[i].rotation.controller.viewline_length_abs = false theBones[i].rotation.controller.upnode_world = false theBones[i].rotation.controller.pickUpnode = theCnts[i] theBones[i].rotation.controller.upnodeAxis = 2 theBones[i].rotation.controller.stoUpAxis = 2 ) for i = 2 to theBones.count do ( theBones[i].parent = theBones[i-1] ) )
Aquí tenéis un hilo de CGTalk, muy reciente, en donde un usuario comparte una herramienta para facilitar la creación de este tipo de huesos:

http://forums.cgsociety.org/showthread.php?t=914485

Re: Lección 7 - Sesión P/R

Publicado: Dom Dic 05, 2010 3:20 am
por ikerJ
Huesos elásticos en cuerpos

Es una lástima que algunos de los vídeos e imágenes estén caídos, así que salvad lo que podáis:

http://forums.cgsociety.org/showthread. ... ge=1&pp=15
http://www.zbrushcentral.com/showthread ... ge=1&pp=15

Un hilo muy interesante en CGTalk sobre el tema:

http://forums.cgsociety.org/showthread.php?t=424923

En 'Planet 51' hacíamos un uso muy extensivo tanto de huesos elásticos como de huesos rígidos en las articulaciones (con un comportamiento similar al 'hueso-pincho' del codo). No dispongo de imágenes para mostraros, pero en los primeros segundos de la bobina de Diego López, un ex-compañero que trabajó también en esa película, podéis intuir algo relacionado con lo que nos interesa:

http://masterofrigging.com/demoreel/213%20/diego-lopez

En general, en esa página, hay un montón de 'reels' de 'rigging'. ¡Un lugar muy interesante para inspirarse!

Re: Lección 7 - Sesión P/R

Publicado: Dom Dic 05, 2010 3:29 am
por ikerJ
Vídeo Morpher/MorphX2

[swf]http://www.somosposmodernos.com/liveOnL ... roller.swf[/swf]

Para verlo a tamaño real (1280 x 720), aquí:

http://www.somosposmodernos.com/liveOnL ... roller.swf

Re: Lección 7 - Sesión P/R

Publicado: Dom Dic 05, 2010 10:34 am
por matancillas
Algunas de las imágenes que comenta Iker
SAlu2
Imagen
Imagen
Imagen
Imagen

Re: Lección 7 - Sesión P/R

Publicado: Sab Dic 11, 2010 5:31 am
por ikerJ
Me acabo de topar con una 'reel' en la que se usan huesos elásticos, y se ve bastante bien cómo funcionan :)


Re: Lección 7 - Sesión P/R

Publicado: Sab Dic 11, 2010 12:26 pm
por AlesDorado
Esta genial lo de los huesos elásticos. Pero... ¿porque nadie utiliza músculos en el tren inferior? Todos en los brazos o el tronco, ninguno en las piernas XD. Por ejemplo he visto en algún sitio un músculo simulando al cuadriceps utilizado, además de para mantener el volumen del muslo, para evitar que se marque demasiado la unión de la pierna con la cadera.
Comento esto porque tengo un pequeño dilema con este músculo. Si, se que lo componen varios músculos y creando los 4 el problema se resolvería, pero la idea es conseguir este efecto con un solo hueso elástico. Bien el dilema es el siguiente:
Tenemos un hueso elástico que va desde la cadera o la cabeza del femur, hasta la rodilla por la parte delantera del modelo. En teoría, al flexionar la rodilla este músculo se estira, pero por otro lado tenemos que al levantar la pierna (rotar la cabeza del femur hacia delante) este mismo músculo debería comprimirse, para mantener el volumen del muslo y evitar la línea que tanto se marca entre la pierna y el resto del cuerpo. ¿Pero que ocurre cuando levantamos el muslo y a la vez flexionamos la rodilla? ¿Cual sería el comportamiento correcto?

Re: Lección 7 - Sesión P/R

Publicado: Sab Dic 11, 2010 6:40 pm
por ikerJ
Supongo que a nivel de deformaciones tiene más importancia la mitad superior del personaje que la inferior. Hay planos medios y cortos de esta mitad, pero no solemos ver las piernas del personaje solas en pantalla :) Por lo que entiendo que estos sistemas se utilizan más en una mitad que en otra.

Sobre la deformación del cuádriceps, ten en cuenta que a efectos prácticos es como si fuera el 'tríceps' del brazo. Con la pierna estirada, los músculos que lo componen están contraídos. Así que habría que montar algo para que perdieran un poco de volumen al doblar la rodilla, y no sé si merece la pena.

Para mí, ése es un problema distinto a la 'arruga' que se forma entre la pierna y la pelvis, que se podría maquillar usando huesos elásticos. Los músculos que levantan la parte inferior de la pierna doblando la rodilla son distintos de los que levantan la pierna (por ejemplo, el glúteo).

Así que divide y vencerás ;)

Re: Lección 7 - Sesión P/R

Publicado: Vie Dic 17, 2010 3:04 am
por ikerJ
Y una 'demo' enfocada a deformaciones musculares:

http://www.youtube.com/watch?v=spIRr9Oc ... re=related