XSIforum.com

Foros 3D => Autodesk Softimage => Animación => Mensaje iniciado por: alejandro calonge en 14 Noviembre 2008, 13:04:48

Título: deformar array de objetos
Publicado por: alejandro calonge en 14 Noviembre 2008, 13:04:48
Hola chicos. Como siempre, ante todo gracias por vuestro tiempo. Quisiera hacerles una pregunta. Se puede deformar un array de objetos con un path? Es decir, tengo un monton de bolitas formando un rectangulo, y quisiera deformar ese rectangulo con un path para que sea curvo. Se puede? Gracias!
Título: Re: deformar array de objetos
Publicado por: Unaided en 14 Noviembre 2008, 13:15:38
Si aplicas un lattice a la matriz de bolitas y deformas el lattice con la curva? (deformará cada bolita? si | no | ns/nc).

También puedes plantearlo de otro modo: Haces una superficie con la forma curva que quieras y haces la matríz posicionando cada bolita en cada punto de la superficie. En Houdini se puede. Con ICE se debe poder hacer.
Título: Re: deformar array de objetos
Publicado por: alejandro calonge en 14 Noviembre 2008, 13:18:23
lo voy a probar ahora, pero supongo que deformara a los componentes, y no al conjunto como objeto.
Título: Re: deformar array de objetos
Publicado por: Unaided en 14 Noviembre 2008, 14:24:28
No sé cuales son tus necesidades sobre la posible animación, pero esto seguro que es versatil para tu proposito y se puede hacer en XSI sin mucho problema con ICE.

(http://img395.imageshack.us/img395/5179/arrayflowsurfaceqo1.jpg) (http://img396.imageshack.us/img396/9182/arrayflowsurfacebx2.jpg)
Título: Re: deformar array de objetos
Publicado por: Dios en 14 Noviembre 2008, 15:28:53
Y si haces un merge de todas las bolas, después las utilizarías como una sóla geometria y podrías deformalas con cualquier deformador, by curve, by path, by lo que quieras
Título: Re: deformar array de objetos
Publicado por: Unaided en 14 Noviembre 2008, 15:36:50
Se derformaría la geometría también.

El procedimiento debería ser deformar la superficie o una entidad implicita  y aplicar después la matríz de objetos a la entidad base.

O mediante algún procedimiento más complejo, mantener equidistante cada punto del objeto respecto a su centro (si se trata de una esfera) a clonar en la matríz. O si se trata de gemetría compleja bloquear la posición XYZ de cada uno de los puntos. Siempre respecto al centro del mismo objeto.
Título: Re: deformar array de objetos
Publicado por: alejandro calonge en 14 Noviembre 2008, 15:44:44
con respecto al ICE, estoy con XSI 6.5
Título: Re: deformar array de objetos
Publicado por: Dios en 14 Noviembre 2008, 15:45:16
Y si en lugar de hacerlo con esferas, lo haces con nulls, y cada null es padre de una esfera. Una vez que tengas la animación, ploteas los nulls y luego ves como te quedan las esferas.

El deformador no afectaria a las esferas, no??
Título: Re: deformar array de objetos
Publicado por: alejandro calonge en 14 Noviembre 2008, 15:46:34
si, es una posibilidad. en teoria no deberia deformar las esferas.
Título: Re: deformar array de objetos
Publicado por: alejandro calonge en 14 Noviembre 2008, 15:51:19
el deform con merge deforma los objetos. ahora probare con un null a cada objeto.
Título: Re: deformar array de objetos
Publicado por: alejandro calonge en 14 Noviembre 2008, 15:56:33
Y si en lugar de hacerlo con esferas, lo haces con nulls, y cada null es padre de una esfera. Una vez que tengas la animación, ploteas los nulls y luego ves como te quedan las esferas.  

acabo de probar y no habia reparado que no se puede hacer obviamente un merge de los nulos. No se me ocurre de que otro modo hacerlo si es con nulos.
Título: Re: deformar array de objetos
Publicado por: Unaided en 14 Noviembre 2008, 16:17:45
Yo sigo en mis trece xD

Prueba esto a ver:
En un grid haces un cluster por cada punto del grid.
A cada esfera le aplicas un constraint Object to Cluster
Deformas el grid con la curva.
Título: Re: deformar array de objetos
Publicado por: Dios en 14 Noviembre 2008, 16:27:25
La forma que dice unaided es una buena variación para conseguir lo que te decia.

Aunque si con los nulls no se puede hacer merge, lo puedes hacer con otra geometría que se deformará, pero que será padre de las esferas.

Las dos opciones te pueden valer
Título: Re: deformar array de objetos
Publicado por: Unaided en 14 Noviembre 2008, 16:36:09
Esto es lo que digo. Con un script sencillo (que yo no sé hacer :( ) seguro que se puede crear un cluster por cada punto y hacer Object to Clusters, de forma automática.

(http://img129.imageshack.us/img129/7701/sphereflowsurfaceep8.jpg)
Título: Re: deformar array de objetos
Publicado por: alejandro calonge en 14 Noviembre 2008, 18:56:55
Sip. Hasta ahora parece funcionar como dice unaided. Lo probare con la forma final que tengo, pero parece que funcionara. Han sido de mucha ayuda, muchachos. Muchas gracias.  O0
Título: Re: deformar array de objetos
Publicado por: Cesar Saez en 14 Noviembre 2008, 19:28:00
No tengo tiempo ahora de probar pero puedes hacer un grid (superficie) y con un surface constraint pegar las esferas o lo que sea a ese grid. Luego deformas el grid con un lattice o como gustes y las esferas deberían seguir el plano.
Título: Re: deformar array de objetos
Publicado por: Cesar Saez en 15 Noviembre 2008, 04:14:49
Prueba ejecutando esto en una escena nueva (jscript), es simplemente una copia del log mientras hacía algo como lo que necesitas (es sólo para que te hagas una idea de como montarlo, no tengo xsi 6.5 acá y es la mejor forma de pasarte "un archivo" sin depender de versiones que se me ocurrió), si todo sale bien debería crear un grid (surface) con instancias de un model pegadas a él, si deformas el grid las instancias seguirán la superficie y como son instancias con modificar el contenido del model original tienes control sobre cada elemento :)

Código: (jscript) [Seleccionar]
CreateModel(null, null, null, null);
Translate(null, -14.1089703913072, 0, -7.71375790154069, siRelative, siParent, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 0, null);
CreatePrim("Grid", "NurbsSurface", null, null);
SelectObj("Model", null, true);
Instantiate(null, null, 1, 1, 0, 1, null, null, null, null, null, null, null, null, null, null);
Translate(null, 3.09545385335849, -0.802766377084343, 8.04701221008619E-02, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 0, null);
ApplyCns("Surface", "Model_Instance", "grid", null);
Duplicate("Model_Instance", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance1", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance2", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance3", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance4", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance5", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance6", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance7", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
SelectObj("Model_Instance,Model_Instance1,Model_Instance2,Model_Instance3,Model_Instance4,Model_Instance5,Model_Instance6,Model_Instance7,Model_Instance8", null, true);
SetValue("Model_Instance.kine.surfcns.posu,Model_Instance1.kine.surfcns.posu,Model_Instance2.kine.surfcns.posu,Model_Instance3.kine.surfcns.posu,Model_Instance4.kine.surfcns.posu,Model_Instance5.kine.surfcns.posu,Model_Instance6.kine.surfcns.posu,Model_Instance7.kine.surfcns.posu,Model_Instance8.kine.surfcns.posu", Array(0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1), null);
Duplicate("Model_Instance,Model_Instance1,Model_Instance2,Model_Instance3,Model_Instance4,Model_Instance5,Model_Instance6,Model_Instance7,Model_Instance8", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance9,Model_Instance10,Model_Instance11,Model_Instance12,Model_Instance13,Model_Instance14,Model_Instance15,Model_Instance16,Model_Instance17", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance18,Model_Instance19,Model_Instance20,Model_Instance21,Model_Instance22,Model_Instance23,Model_Instance24,Model_Instance25,Model_Instance26", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance27,Model_Instance28,Model_Instance29,Model_Instance30,Model_Instance31,Model_Instance32,Model_Instance33,Model_Instance34,Model_Instance35", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance36,Model_Instance37,Model_Instance38,Model_Instance39,Model_Instance40,Model_Instance41,Model_Instance42,Model_Instance43,Model_Instance44", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance45,Model_Instance46,Model_Instance47,Model_Instance48,Model_Instance49,Model_Instance50,Model_Instance51,Model_Instance52,Model_Instance53", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance54,Model_Instance55,Model_Instance56,Model_Instance57,Model_Instance58,Model_Instance59,Model_Instance60,Model_Instance61,Model_Instance62", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance63,Model_Instance64,Model_Instance65,Model_Instance66,Model_Instance67,Model_Instance68,Model_Instance69,Model_Instance70,Model_Instance71", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
Duplicate("Model_Instance72,Model_Instance73,Model_Instance74,Model_Instance75,Model_Instance76,Model_Instance77,Model_Instance78,Model_Instance79,Model_Instance80", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
SelectObj("Model_Instance,Model_Instance1,Model_Instance2,Model_Instance3,Model_Instance4,Model_Instance5,Model_Instance6,Model_Instance7,Model_Instance8,Model_Instance9,Model_Instance10,Model_Instance11,Model_Instance12,Model_Instance13,Model_Instance14,Model_Instance15,Model_Instance16,Model_Instance17,Model_Instance18,Model_Instance19,Model_Instance20,Model_Instance21,Model_Instance22,Model_Instance23,Model_Instance24,Model_Instance25,Model_Instance26,Model_Instance27,Model_Instance28,Model_Instance29,Model_Instance30,Model_Instance31,Model_Instance32,Model_Instance33,Model_Instance34,Model_Instance35,Model_Instance36,Model_Instance37,Model_Instance38,Model_Instance39,Model_Instance40,Model_Instance41,Model_Instance42,Model_Instance43,Model_Instance44,Model_Instance45,Model_Instance46,Model_Instance47,Model_Instance48,Model_Instance49,Model_Instance50,Model_Instance51,Model_Instance52,Model_Instance53,Model_Instance54,Model_Instance55,Model_Instance56,Model_Instance57,Model_Instance58,Model_Instance59,Model_Instance60,Model_Instance61,Model_Instance62,Model_Instance63,Model_Instance64,Model_Instance65,Model_Instance66,Model_Instance67,Model_Instance68,Model_Instance69,Model_Instance70,Model_Instance71,Model_Instance72,Model_Instance73,Model_Instance74,Model_Instance75,Model_Instance76,Model_Instance77,Model_Instance78,Model_Instance79,Model_Instance80,Model_Instance81,Model_Instance82,Model_Instance83,Model_Instance84,Model_Instance85,Model_Instance86,Model_Instance87,Model_Instance88,Model_Instance89", null, true);
SetValue("Model_Instance.kine.surfcns.posv,Model_Instance1.kine.surfcns.posv,Model_Instance2.kine.surfcns.posv,Model_Instance3.kine.surfcns.posv,Model_Instance4.kine.surfcns.posv,Model_Instance5.kine.surfcns.posv,Model_Instance6.kine.surfcns.posv,Model_Instance7.kine.surfcns.posv,Model_Instance8.kine.surfcns.posv,Model_Instance9.kine.surfcns.posv,Model_Instance10.kine.surfcns.posv,Model_Instance11.kine.surfcns.posv,Model_Instance12.kine.surfcns.posv,Model_Instance13.kine.surfcns.posv,Model_Instance14.kine.surfcns.posv,Model_Instance15.kine.surfcns.posv,Model_Instance16.kine.surfcns.posv,Model_Instance17.kine.surfcns.posv,Model_Instance18.kine.surfcns.posv,Model_Instance19.kine.surfcns.posv,Model_Instance20.kine.surfcns.posv,Model_Instance21.kine.surfcns.posv,Model_Instance22.kine.surfcns.posv,Model_Instance23.kine.surfcns.posv,Model_Instance24.kine.surfcns.posv,Model_Instance25.kine.surfcns.posv,Model_Instance26.kine.surfcns.posv,Model_Instance27.kine.surfcns.posv,Model_Instance28.kine.surfcns.posv,Model_Instance29.kine.surfcns.posv,Model_Instance30.kine.surfcns.posv,Model_Instance31.kine.surfcns.posv,Model_Instance32.kine.surfcns.posv,Model_Instance33.kine.surfcns.posv,Model_Instance34.kine.surfcns.posv,Model_Instance35.kine.surfcns.posv,Model_Instance36.kine.surfcns.posv,Model_Instance37.kine.surfcns.posv,Model_Instance38.kine.surfcns.posv,Model_Instance39.kine.surfcns.posv,Model_Instance40.kine.surfcns.posv,Model_Instance41.kine.surfcns.posv,Model_Instance42.kine.surfcns.posv,Model_Instance43.kine.surfcns.posv,Model_Instance44.kine.surfcns.posv,Model_Instance45.kine.surfcns.posv,Model_Instance46.kine.surfcns.posv,Model_Instance47.kine.surfcns.posv,Model_Instance48.kine.surfcns.posv,Model_Instance49.kine.surfcns.posv,Model_Instance50.kine.surfcns.posv,Model_Instance51.kine.surfcns.posv,Model_Instance52.kine.surfcns.posv,Model_Instance53.kine.surfcns.posv,Model_Instance54.kine.surfcns.posv,Model_Instance55.kine.surfcns.posv,Model_Instance56.kine.surfcns.posv,Model_Instance57.kine.surfcns.posv,Model_Instance58.kine.surfcns.posv,Model_Instance59.kine.surfcns.posv,Model_Instance60.kine.surfcns.posv,Model_Instance61.kine.surfcns.posv,Model_Instance62.kine.surfcns.posv,Model_Instance63.kine.surfcns.posv,Model_Instance64.kine.surfcns.posv,Model_Instance65.kine.surfcns.posv,Model_Instance66.kine.surfcns.posv,Model_Instance67.kine.surfcns.posv,Model_Instance68.kine.surfcns.posv,Model_Instance69.kine.surfcns.posv,Model_Instance70.kine.surfcns.posv,Model_Instance71.kine.surfcns.posv,Model_Instance72.kine.surfcns.posv,Model_Instance73.kine.surfcns.posv,Model_Instance74.kine.surfcns.posv,Model_Instance75.kine.surfcns.posv,Model_Instance76.kine.surfcns.posv,Model_Instance77.kine.surfcns.posv,Model_Instance78.kine.surfcns.posv,Model_Instance79.kine.surfcns.posv,Model_Instance80.kine.surfcns.posv,Model_Instance81.kine.surfcns.posv,Model_Instance82.kine.surfcns.posv,Model_Instance83.kine.surfcns.posv,Model_Instance84.kine.surfcns.posv,Model_Instance85.kine.surfcns.posv,Model_Instance86.kine.surfcns.posv,Model_Instance87.kine.surfcns.posv,Model_Instance88.kine.surfcns.posv,Model_Instance89.kine.surfcns.posv", Array(0, 1.12359550561798E-02, 2.24719101123596E-02, 3.37078651685393E-02, 4.49438202247191E-02, 5.61797752808989E-02, 6.74157303370787E-02, 7.86516853932584E-02, 8.98876404494382E-02, 0.101123595505618, 0.112359550561798, 0.123595505617978, 0.134831460674157, 0.146067415730337, 0.157303370786517, 0.168539325842697, 0.179775280898876, 0.191011235955056, 0.202247191011236, 0.213483146067416, 0.224719101123595, 0.235955056179775, 0.247191011235955, 0.258426966292135, 0.269662921348315, 0.280898876404494, 0.292134831460674, 0.303370786516854, 0.314606741573034, 0.325842696629214, 0.337078651685393, 0.348314606741573, 0.359550561797753, 0.370786516853933, 0.382022471910113, 0.393258426966292, 0.404494382022472, 0.415730337078652, 0.426966292134832, 0.438202247191012, 0.449438202247191, 0.460674157303371, 0.471910112359551, 0.483146067415731, 0.494382022471911, 0.50561797752809, 0.51685393258427, 0.52808988764045, 0.53932584269663, 0.55056179775281, 0.561797752808989, 0.573033707865169, 0.584269662921349, 0.595505617977529, 0.606741573033709, 0.617977528089888, 0.629213483146068, 0.640449438202248, 0.651685393258428, 0.662921348314608, 0.674157303370788, 0.685393258426967, 0.696629213483147, 0.707865168539327, 0.719101123595507, 0.730337078651687, 0.741573033707866, 0.752808988764046, 0.764044943820226, 0.775280898876406, 0.786516853932586, 0.797752808988765, 0.808988764044945, 0.820224719101125, 0.831460674157305, 0.842696629213485, 0.853932584269664, 0.865168539325844, 0.876404494382024, 0.887640449438204, 0.898876404494384, 0.910112359550563, 0.921348314606743, 0.932584269662923, 0.943820224719103, 0.955056179775283, 0.966292134831462, 0.977528089887642, 0.988764044943822, 1), null);
Undo(null);    // Set Value
SelectObj("Model_Instance11", null, null);
SelectObj("Model_Instance11,Model_Instance12,Model_Instance13,Model_Instance14,Model_Instance15,Model_Instance16,Model_Instance17,Model_Instance18,Model_Instance19,Model_Instance20,Model_Instance21,Model_Instance22,Model_Instance23,Model_Instance24,Model_Instance25,Model_Instance26,Model_Instance27,Model_Instance28,Model_Instance29,Model_Instance30,Model_Instance31,Model_Instance32,Model_Instance33,Model_Instance34,Model_Instance35,Model_Instance36,Model_Instance37,Model_Instance38,Model_Instance39,Model_Instance40,Model_Instance41,Model_Instance42,Model_Instance43,Model_Instance44,Model_Instance45,Model_Instance46,Model_Instance47,Model_Instance48,Model_Instance49,Model_Instance50,Model_Instance51,Model_Instance52,Model_Instance53,Model_Instance54,Model_Instance55,Model_Instance56,Model_Instance57,Model_Instance58,Model_Instance59,Model_Instance60,Model_Instance61,Model_Instance62,Model_Instance63,Model_Instance64,Model_Instance65,Model_Instance66,Model_Instance67,Model_Instance68,Model_Instance69,Model_Instance70,Model_Instance71,Model_Instance72,Model_Instance73,Model_Instance74,Model_Instance75,Model_Instance76,Model_Instance77,Model_Instance78,Model_Instance79,Model_Instance80,Model_Instance81,Model_Instance82,Model_Instance83,Model_Instance84,Model_Instance85,Model_Instance86,Model_Instance87,Model_Instance88,Model_Instance89", null, null);
DeleteObj("Model_Instance11,Model_Instance12,Model_Instance13,Model_Instance14,Model_Instance15,Model_Instance16,Model_Instance17,Model_Instance18,Model_Instance19,Model_Instance20,Model_Instance21,Model_Instance22,Model_Instance23,Model_Instance24,Model_Instance25,Model_Instance26,Model_Instance27,Model_Instance28,Model_Instance29,Model_Instance30,Model_Instance31,Model_Instance32,Model_Instance33,Model_Instance34,Model_Instance35,Model_Instance36,Model_Instance37,Model_Instance38,Model_Instance39,Model_Instance40,Model_Instance41,Model_Instance42,Model_Instance43,Model_Instance44,Model_Instance45,Model_Instance46,Model_Instance47,Model_Instance48,Model_Instance49,Model_Instance50,Model_Instance51,Model_Instance52,Model_Instance53,Model_Instance54,Model_Instance55,Model_Instance56,Model_Instance57,Model_Instance58,Model_Instance59,Model_Instance60,Model_Instance61,Model_Instance62,Model_Instance63,Model_Instance64,Model_Instance65,Model_Instance66,Model_Instance67,Model_Instance68,Model_Instance69,Model_Instance70,Model_Instance71,Model_Instance72,Model_Instance73,Model_Instance74,Model_Instance75,Model_Instance76,Model_Instance77,Model_Instance78,Model_Instance79,Model_Instance80,Model_Instance81,Model_Instance82,Model_Instance83,Model_Instance84,Model_Instance85,Model_Instance86,Model_Instance87,Model_Instance88,Model_Instance89");
SelectObj("Model_Instance,Model_Instance1,Model_Instance2,Model_Instance3,Model_Instance4,Model_Instance5,Model_Instance6,Model_Instance7,Model_Instance8,Model_Instance9,Model_Instance10", null, true);
Duplicate("Model_Instance,Model_Instance1,Model_Instance2,Model_Instance3,Model_Instance4,Model_Instance5,Model_Instance6,Model_Instance7,Model_Instance8,Model_Instance9,Model_Instance10", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
SetValue("Model_Instance11.kine.surfcns.posv,Model_Instance12.kine.surfcns.posv,Model_Instance13.kine.surfcns.posv,Model_Instance14.kine.surfcns.posv,Model_Instance15.kine.surfcns.posv,Model_Instance16.kine.surfcns.posv,Model_Instance17.kine.surfcns.posv,Model_Instance18.kine.surfcns.posv,Model_Instance19.kine.surfcns.posv,Model_Instance20.kine.surfcns.posv,Model_Instance21.kine.surfcns.posv", Array(0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125, 0.125), null);
Duplicate("Model_Instance11,Model_Instance12,Model_Instance13,Model_Instance14,Model_Instance15,Model_Instance16,Model_Instance17,Model_Instance18,Model_Instance19,Model_Instance20,Model_Instance21", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
SetValue("Model_Instance22.kine.surfcns.posv,Model_Instance23.kine.surfcns.posv,Model_Instance24.kine.surfcns.posv,Model_Instance25.kine.surfcns.posv,Model_Instance26.kine.surfcns.posv,Model_Instance27.kine.surfcns.posv,Model_Instance28.kine.surfcns.posv,Model_Instance29.kine.surfcns.posv,Model_Instance30.kine.surfcns.posv,Model_Instance31.kine.surfcns.posv,Model_Instance32.kine.surfcns.posv", Array(0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25, 0.25), null);
Duplicate("Model_Instance22,Model_Instance23,Model_Instance24,Model_Instance25,Model_Instance26,Model_Instance27,Model_Instance28,Model_Instance29,Model_Instance30,Model_Instance31,Model_Instance32", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
SetValue("Model_Instance33.kine.surfcns.posv,Model_Instance34.kine.surfcns.posv,Model_Instance35.kine.surfcns.posv,Model_Instance36.kine.surfcns.posv,Model_Instance37.kine.surfcns.posv,Model_Instance38.kine.surfcns.posv,Model_Instance39.kine.surfcns.posv,Model_Instance40.kine.surfcns.posv,Model_Instance41.kine.surfcns.posv,Model_Instance42.kine.surfcns.posv,Model_Instance43.kine.surfcns.posv", Array(0.325, 0.325, 0.325, 0.325, 0.325, 0.325, 0.325, 0.325, 0.325, 0.325, 0.325), null);
SetValue("Model_Instance33.kine.surfcns.posv,Model_Instance34.kine.surfcns.posv,Model_Instance35.kine.surfcns.posv,Model_Instance36.kine.surfcns.posv,Model_Instance37.kine.surfcns.posv,Model_Instance38.kine.surfcns.posv,Model_Instance39.kine.surfcns.posv,Model_Instance40.kine.surfcns.posv,Model_Instance41.kine.surfcns.posv,Model_Instance42.kine.surfcns.posv,Model_Instance43.kine.surfcns.posv", Array(0.375, 0.375, 0.375, 0.375, 0.375, 0.375, 0.375, 0.375, 0.375, 0.375, 0.375), null);
Duplicate("Model_Instance33,Model_Instance34,Model_Instance35,Model_Instance36,Model_Instance37,Model_Instance38,Model_Instance39,Model_Instance40,Model_Instance41,Model_Instance42,Model_Instance43", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
SetValue("Model_Instance44.kine.surfcns.posv,Model_Instance45.kine.surfcns.posv,Model_Instance46.kine.surfcns.posv,Model_Instance47.kine.surfcns.posv,Model_Instance48.kine.surfcns.posv,Model_Instance49.kine.surfcns.posv,Model_Instance50.kine.surfcns.posv,Model_Instance51.kine.surfcns.posv,Model_Instance52.kine.surfcns.posv,Model_Instance53.kine.surfcns.posv,Model_Instance54.kine.surfcns.posv", Array(0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5), null);
SelectObj("Model_Instance11,Model_Instance12,Model_Instance13,Model_Instance14,Model_Instance15,Model_Instance16,Model_Instance17,Model_Instance18,Model_Instance19,Model_Instance20,Model_Instance21,Model_Instance22,Model_Instance23,Model_Instance24,Model_Instance25,Model_Instance26,Model_Instance27,Model_Instance28,Model_Instance29,Model_Instance30,Model_Instance31,Model_Instance32,Model_Instance33,Model_Instance34,Model_Instance35,Model_Instance36,Model_Instance37,Model_Instance38,Model_Instance39,Model_Instance40,Model_Instance41,Model_Instance42,Model_Instance43,Model_Instance44,Model_Instance45,Model_Instance46,Model_Instance47,Model_Instance48,Model_Instance49,Model_Instance50,Model_Instance51,Model_Instance52,Model_Instance53,Model_Instance54", null, true);
Duplicate("Model_Instance11,Model_Instance12,Model_Instance13,Model_Instance14,Model_Instance15,Model_Instance16,Model_Instance17,Model_Instance18,Model_Instance19,Model_Instance20,Model_Instance21,Model_Instance22,Model_Instance23,Model_Instance24,Model_Instance25,Model_Instance26,Model_Instance27,Model_Instance28,Model_Instance29,Model_Instance30,Model_Instance31,Model_Instance32,Model_Instance33,Model_Instance34,Model_Instance35,Model_Instance36,Model_Instance37,Model_Instance38,Model_Instance39,Model_Instance40,Model_Instance41,Model_Instance42,Model_Instance43,Model_Instance44,Model_Instance45,Model_Instance46,Model_Instance47,Model_Instance48,Model_Instance49,Model_Instance50,Model_Instance51,Model_Instance52,Model_Instance53,Model_Instance54", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
SetValue("Model_Instance55.kine.surfcns.posv,Model_Instance56.kine.surfcns.posv,Model_Instance57.kine.surfcns.posv,Model_Instance58.kine.surfcns.posv,Model_Instance59.kine.surfcns.posv,Model_Instance60.kine.surfcns.posv,Model_Instance61.kine.surfcns.posv,Model_Instance62.kine.surfcns.posv,Model_Instance63.kine.surfcns.posv,Model_Instance64.kine.surfcns.posv,Model_Instance65.kine.surfcns.posv,Model_Instance66.kine.surfcns.posv,Model_Instance67.kine.surfcns.posv,Model_Instance68.kine.surfcns.posv,Model_Instance69.kine.surfcns.posv,Model_Instance70.kine.surfcns.posv,Model_Instance71.kine.surfcns.posv,Model_Instance72.kine.surfcns.posv,Model_Instance73.kine.surfcns.posv,Model_Instance74.kine.surfcns.posv,Model_Instance75.kine.surfcns.posv,Model_Instance76.kine.surfcns.posv,Model_Instance77.kine.surfcns.posv,Model_Instance78.kine.surfcns.posv,Model_Instance79.kine.surfcns.posv,Model_Instance80.kine.surfcns.posv,Model_Instance81.kine.surfcns.posv,Model_Instance82.kine.surfcns.posv,Model_Instance83.kine.surfcns.posv,Model_Instance84.kine.surfcns.posv,Model_Instance85.kine.surfcns.posv,Model_Instance86.kine.surfcns.posv,Model_Instance87.kine.surfcns.posv,Model_Instance88.kine.surfcns.posv,Model_Instance89.kine.surfcns.posv,Model_Instance90.kine.surfcns.posv,Model_Instance91.kine.surfcns.posv,Model_Instance92.kine.surfcns.posv,Model_Instance93.kine.surfcns.posv,Model_Instance94.kine.surfcns.posv,Model_Instance95.kine.surfcns.posv,Model_Instance96.kine.surfcns.posv,Model_Instance97.kine.surfcns.posv,Model_Instance98.kine.surfcns.posv", Array(0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.625, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75, 0.875, 0.875, 0.875, 0.875, 0.875, 0.875, 0.875, 0.875, 0.875, 0.875, 0.875, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1), null);
SelectObj("Model_Instance88,Model_Instance89,Model_Instance90,Model_Instance91,Model_Instance92,Model_Instance93,Model_Instance94,Model_Instance95,Model_Instance96,Model_Instance97,Model_Instance98", null, true);
Duplicate("Model_Instance88,Model_Instance89,Model_Instance90,Model_Instance91,Model_Instance92,Model_Instance93,Model_Instance94,Model_Instance95,Model_Instance96,Model_Instance97,Model_Instance98", null, 2, 1, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);
DeleteObj("Model_Instance99,Model_Instance100,Model_Instance101,Model_Instance102,Model_Instance103,Model_Instance104,Model_Instance105,Model_Instance106,Model_Instance107,Model_Instance108,Model_Instance109");
DeselectAll();
DeselectAll();
SelectObj("grid", null, true);
DeselectAll();
CreatePrim("Sphere", "MeshSurface", null, null);
SetValue("sphere.sphere.radius", 0.953, null);
ParentObj("B:Model", "sphere");
SelectObj("B:Model", null, null);
SelectObj("Model.sphere", null, true);
InspectChainProperties(null);
ResetTransform(null, siObj, 0, siXYZ);
ResetTransform(null, siObj, siSRT, siXYZ);
DeselectAll();
SelectObj("Model.sphere", null, true);
SetValue("Model.sphere.sphere.radius", 0.309, null);
SetDisplayMode("Camera", "shaded");

Salu2 O0