parksto
07/11/2002, 10h38
j'en avait parlé il y a quelques temps, j'ai enfin trouvé le temps de le faire : :D
j'ai créé un script qui se copie lui-même sur un sous object qu'il a créé. :roll:
l'utilité de ce script est de créer des instances d'un object de plus en plus petites pour arriver à faire ceci (http://www.jeremyw.com/C4D_Stuff/3dnoise1.html). :oops:
var sph, sca, cont, inst, tag, copietag;
main(doc,op)
{
sph=doc->FindObject("Sphere");
if (!sph) return;
sca=op->GetScale();
if (sca.x<0.1) return;
sca.x=sca.x-0.05;
sca.y=sca.y-0.05;
sca.z=sca.z-0.05;
inst=new(InstanceObject);
cont=inst->GetContainer();
cont->SetData(INSTANCEOBJECT_SOURCE,sph);
inst->SetContainer(cont);
inst->SetScale(sca);
doc->InsertObject(inst,op,NULL);
tag=op->GetFirstTag();
copietag=tag->GetClone();
inst->InsertTag(copietag);
tag->Remove();
doc->Message(MSG_UPDATE);
}
mais si je met une texture avec un alpha en 3D noise, je ne vois pas les instances. :?
je ne comprend pas pourquoi... :cry:
PS : il faut mettre le script sur un object sphère nommé "Sphere", avec majuscule et sans accent.
j'ai créé un script qui se copie lui-même sur un sous object qu'il a créé. :roll:
l'utilité de ce script est de créer des instances d'un object de plus en plus petites pour arriver à faire ceci (http://www.jeremyw.com/C4D_Stuff/3dnoise1.html). :oops:
var sph, sca, cont, inst, tag, copietag;
main(doc,op)
{
sph=doc->FindObject("Sphere");
if (!sph) return;
sca=op->GetScale();
if (sca.x<0.1) return;
sca.x=sca.x-0.05;
sca.y=sca.y-0.05;
sca.z=sca.z-0.05;
inst=new(InstanceObject);
cont=inst->GetContainer();
cont->SetData(INSTANCEOBJECT_SOURCE,sph);
inst->SetContainer(cont);
inst->SetScale(sca);
doc->InsertObject(inst,op,NULL);
tag=op->GetFirstTag();
copietag=tag->GetClone();
inst->InsertTag(copietag);
tag->Remove();
doc->Message(MSG_UPDATE);
}
mais si je met une texture avec un alpha en 3D noise, je ne vois pas les instances. :?
je ne comprend pas pourquoi... :cry:
PS : il faut mettre le script sur un object sphère nommé "Sphere", avec majuscule et sans accent.