Resultados 1 al 4 de 4

Tema: Cómo hacer para que los bones sean flexibles

  1. #1
    Nivel Héroe Avatar de mundo 3d
    Fecha de ingreso
    Mar 2009
    Ubicación
    Colombia
    Mensajes
    757
    Gracias (Dadas)
    188
    Gracias (Recibidas)
    111

    Como hacer para que los bones sean flexibles?

    Hola compañeros, estoy haciendo un rigg facial, y la verdad no sé cómo colocar los Bones, para que sean flexibles (estirar y contraer). Hasta ahora el rigg lo tengo hecho, pero con Splines que hacen las veces de Bones, pero no sé si esto sea correcto.

    Por favor si alguien sabe, se lo agradecería. Saludos.

  2. #2
    reconvertido Avatar de ikerCLoN
    Fecha de ingreso
    Apr 2002
    Ubicación
    Los Angeles, USA
    Mensajes
    14,965
    Gracias (Dadas)
    131
    Gracias (Recibidas)
    874

    Como hacer para que los bones sean flexibles?

    Puse este código que hice en otro foro. A ver si te sirve.
    Código:
    -Select two points or more points and run the code below for creating a stretchy bone or a stretchy chain.
    
    Fn makenubbone lastbone =
    (.
    
    Local pues = lastbone, transform[4] - Get the position of the last bone.
    
    Local xdir = lastbone, transform[1] - Get the Vector of the x point.
    
    Local startpoint = pues + 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], pues thepoints[2], pues 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 = lokat_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, estoupaxis = 2).
    
    Else messagebox selected objects must be points).
    
    If selection, count > 2 do.
    
    Thecnts = #().
    
    Thebones = #().
    
    For I = 1 todo (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:of axistripod:of size:1.
    
    Thecnt, parent = thepoints[i].
    
    Thebone = bonesys, createbone thepoints[i], pues thepoints[i+1], pues thepoints[i].transform[3].
    
    Append thecnts thecnt.
    
    Append thebones thebone).
    
    Thenub = makenubbone thebones[thebones, count].
    
    Thenubcnt = point transform:thenub, transform box:on cross:of axistripod:of 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 todo thebones, count-1 do.
    
    Thebones[i].position, controller = position_constraint().
    
    Thebones[i].position, controller, appendtarget thecnts[i] 100.
    
    Thebones[i].rotation, controller = lokat_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, estoupaxis = 2).
    
    For I = 2 todo thebones, count do.
    
    Thebones[i].parent = thebones[i-1]).
    ).
    
    Else messagebox pléase select two objects.
    Selecciona dos o más puntos y ejecútalo.

  3. Gracias mundo 3d Agradece este post
  4. #3
    Nivel Héroe Avatar de mundo 3d
    Fecha de ingreso
    Mar 2009
    Ubicación
    Colombia
    Mensajes
    757
    Gracias (Dadas)
    188
    Gracias (Recibidas)
    111

    Como hacer para que los bones sean flexibles?

    Muchas gracias IkerClon, voy aprobarlo a ver.

  5. #4
    Nivel Héroe Avatar de mundo 3d
    Fecha de ingreso
    Mar 2009
    Ubicación
    Colombia
    Mensajes
    757
    Gracias (Dadas)
    188
    Gracias (Recibidas)
    111

    Como hacer para que los bones sean flexibles?

    Iker ya lo probé, men muchsimas gracias, eres un teso, en el tema. Pero tengo una pregunta, el max no tiene esa opción? Yo no sé dónde vi eso, o no sé si lo soñe o que.

Temas similares

  1. 3dsMax No logro hacer que las sombras de un interior sean reales
    Por jark en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    : 04-04-2023, 13:48
  2. Cómo hacer escenarios para fs9
    Por rafaelreyes1988 en el foro Videojuegos
    Respuestas: 1
    : 07-03-2011, 18:14
  3. Cómo hacer que max y XSI sean amigos
    Por Sloft en el foro Programación y Scripts
    Respuestas: 14
    : 14-12-2008, 19:40
  4. Cómo hacer una animación para DVD
    Por isi en el foro Animación y Rigging
    Respuestas: 0
    : 13-09-2008, 00:03
  5. 3dsMax Cómo hacer piel a una estructura de bones
    Por leonardoflores1976 en el foro Animación y Rigging
    Respuestas: 1
    : 02-06-2006, 19:18

Etiquetas para este tema

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •