En la última PyR se habló de esta técnica, siento no haber tenido tiempo para abrir antes este post, en cualquier caso he dado con el enlace en el que se describe la técnica.
http://www.3dtotal.com/team/Tutorials/m ... ets_01.asp
Mas adelante subiré el script que automatiza los pasos, mas que un script es una especie de macro que pretende ahorrar ciertos pasos y que puede requerir según el caso de cierta edición, con lo cual es importante saber exactamente que es lo que estamos haciendo por si hay que tocar algún parametro del codigo.
Un saludo
Mirror morph mediante skin wrap
-
- Junior
- Mensajes: 25
- Registrado: Mié Oct 06, 2010 10:33 am
-
- Iniciado
- Mensajes: 10
- Registrado: Mié Oct 06, 2010 10:18 pm
Re: Mirror morph mediante skin wrap
Muchas gracias por el Link, Sin plugin siempre será mejor 
salu2

salu2
-
- Junior
- Mensajes: 25
- Registrado: Mié Oct 06, 2010 10:33 am
Re: Mirror morph mediante skin wrap
Gracias Eleazar, aunque considero que es es preciso saber como funcionan las cosas en este caso el script ahorra mucho trabajo, a mi me lo ha ahorrado en su momento. Aquí os dejo el script que es mas que nada un macro y en el que en algunos casos habrá que retocar algun parametro para que funcione correctamente. De ahí que interese saber que estamos haciendo.
Un saludo
Lo posteo tal cual yo lo uso ya que no he tenido tiempo de limpiarlo de basurilla, espero que los comentarios lo hagan comprensible.
Un saludo
Código: Seleccionar todo
--has de seleccionar el objeto origen y el target, en este orden ademas
clearlistener()
ArrayObjetos = getCurrentSelection()
Origen = ArrayObjetos[1]
Destino = ArrayObjetos[2]
--clono objeto seleccionado y lo asigno a una variable
maxOps.cloneNodes Origen offset:[0,0,100] cloneType:#copy actualNodeList:#() newNodes:&result
referenciaMorfo = result[1]
referenciaMorfo.name = "referenciaMorfo"
--clono copia de objeto seleccionado y lo asigno a una variable
maxOps.cloneNodes referenciaMorfo offset:[0,0,100] cloneType:#copy actualNodeList:#() newNodes:&result
Morfeado = result[1]
Morfeado.name = "Morfeado"
--lo escalo en menos x
scale Morfeado [-1,1,1]
--elimina edit poly del morfo
deleteModifier referenciaMorfo 1
-- creo una copia que llevará aplicado el skinwrap
maxOps.cloneNodes referenciaMorfo offset:[0,0,100] cloneType:#copy actualNodeList:#() newNodes:&result
Skinwrapeado = result[1]
Skinwrapeado.name = "Skinwrapeado"
--defino variable morpher
myMorpher = morpher()
addmodifier $Morfeado myMorpher
MorfeadoMorpher = Morfeado.modifiers[1]
-- añadimos morfo al primer canal
WM3_MC_BuildFromNode MorfeadoMorpher 1 referenciaMorfo
--defino array para poder asignar el objeto en el skin wrap
ObjArray = #()
append ObjArray Morfeado
WM3_MC_SetValue myMorpher 1 100.0 --sets the key of the first morph channel to 100%
slidertime = 10 -- changes the slider time
with animate on
(
WM3_MC_SetValue myMorpher 1 0.0 --sets the key of the first morph channel to 0%
)
(
slidertime = 0
-- defino la variable para el skin
mySkinWrap= Skin_Wrap()
-- asigno parametros, es posible que halla que tocar esto según algunos ejemplos.
mySkinWrap.engine = 1
mySkinWrap.falloff = 0.01
mySkinWrap.distance = 0.1
mySkinWrap.faceLimit = 1
-- añado el modificador al objeto clonado
addmodifier Skinwrapeado mySkinWrap
--añade objeto a la lista de skin_Wraps
Skinwrapeado.modifiers[#Skin_Wrap].meshList = ObjArray;
)
slidertime = 10
collapseStack SkinWrapeado
delete Morfeado
delete referenciaMorfo
slidertime = 0
myMorpherFinal = morpher()
addmodifier Destino myMorpherFinal
MorphDelMorpher = Destino.modifiers[#morpher]
WM3_MC_BuildFromNode MorphDelMorpher 1 Skinwrapeado
WM3_MC_SetValue MorphDelMorpher 1 100.0
delete $Skinwrapeado
--Añadir morpher y el target al objeto original
/*
myMorpherFinal = morpher()
addmodifier miObjetoOriginal myMorpher
MorphDelMorpher = miObjetoOriginal.modifiers[#morpher]
-- añadimos morfo al primer canal
WM3_MC_BuildFromNode MorphDelMorpher 1 Skinwrapeado
*/