Animación por simulación física de pechos femeninos en
3ds Max 7 usando Reactor.
Una vez acabado el modelo en cuestión y hecho el rigging básico (esto es, usando huesos de toda la vida, supongamos que hemos usado Character Studio para este caso), se procede a crear los huesos de los pechos, que, para simplificar un poco, serán un par de esferas, lo cual nos viene bien por ser figuras convexas. Las esferas estarán ubicadas (obviamente) en dónde están los senos en sí y ocupando casi el mismo espacio (esto viene bien para aplicar más tarde el modificador skin Wrap con los parámetros por defecto). Es conveniente que sean geosferas, se llevan mejor con Reactor por estar basadas en triángulos en vez de en cuadriláteros, y con dos segmentos van bastante bien.
A estas esferas se les aplica el modificador Reactor Softbody, pero hasta ahora no he podido dar con unos parámetros de Softbody apropiados para la simulación. Aunque básicamente, a más stifness, más rigidez tiene el Softbody y más tiende a conservar la forma original, cuanto más damping, mayor es el vaivén, pero no me hagan mucho caso. En cuanto a la masa, depende de la magnitud del pecho, no he hecho ninguna medida en la realidad, aunque me habría gustado, en profesional de la calidad de la simulación, por supuesto.
Este Softbody tiene una restricción (constraint) attach todo rigid body (hace que una selección de vértices esté atada a un cuerpo rígido). Lo que hice fue atar (attach todo rigid body) los vértices más cercanos al hueso correspondiente al pecho a ese hueso (en el caso de Biped, será uno de los Spine, normalmente el de más arriba), así una parte del Softbody está sujeta al hueso y el resto se mueve en consonancia con el movimiento del pecho (a esto se le suele llamar movimiento secundario, creo).
Obviamente, las esferas estarán incluidas en un ayudante sbcollection, y al menos el hueso de la columna vertebral en un RB Collection. El hueso de la columna vertebral tendrá los atributos de Reactor unyielding y Phantom, así se comportara por keyframes de 3ds Max y no de Reactor y los demás objetos rígidos keyframeados por 3ds Max lo atravesaran sin conflictos, pero los flexibles no. Con todo esto, las esferas atadas al hueso del pecho se moverán (en teoría, a falta de unos parámetros fiables de Softbody) correctamente, ahora hay que comunicar ese bamboleo a la malla de nuestra personaje pechugona (nota: no tiene que ser obligatoriamente pechugona, también los puede tener pequeños, pero sensibles), ahí entra skin Wrap. Que, simplemente se añadirá después del modificador skin/Physique/ponga-lo-que-quiera-que-use-para-riggear y a la lista de huesos se añadirán las esferas, no sé si ocurre normalmente, pero con los parámetros por defecto me ruló y bien.
Cosas opcionales para algunos e imprescindibles para otros.
Puede que funcione bien incluir un hueso debajo de los pechos para que al caer estos, no se vayan del todo abajo. Puede producir comportamientos raros en la simulación, pero me fue bien. Además, para completar la simulación se pueden incluir en la colección de objetos rígidos, no sólo la columna y el hueso auxiliar recogepechos sino también los brazos, para que si en el movimiento del personaje los brazos se tropiezan con los pechos, estos reaccionen.
Para mejorar (o acabar de empeorar) el comportamiento de los pechos también se puede alterar la escala del mundo de la simulación, y la escala del tiempo (una vez lo usé para hacer un Matrix).
Al hacer interactuar objetos rígidos con los flexibles (los pechos, en este caso), hay que tener cuidado de no hacer colisionar objetos rígidos con los vértices atados al objeto rígido, normalmente la simulación falla.
Encontré una incompatibilidad que aún no he arreglado, y es utilizar skin, skin Wrap y skin Morph (de abajo a arriba en este orden) en la misma zona del objeto, salen cosas raras.
Es muy útil que la simulación comience en un fotograma negativo. Así para cuando empiece la animación, todo estará en un lugar coherente.
Aunque no conozco unos parámetros fiables para la simulación, a lo mejor es una buena idea que los de un pecho y otro difieran un poco para lograr efectos distintos.