PDA

Voir la version complète : invoquer/appeller un objet dans la scène via un noeud coffee



human
30/10/2010, 14h49
Bonjour, je suis toujours entrain d'apprendre des nouveaux trucs dans xpresso, et là je teste le nœud coffee.
Alors voilà, je voudrais savoir si je peux via le nœud coffee, déclencher l'apparition d'une primitive dans la scène suite à une action de mon xpresso.
Ou si coffee ne peut agir que sur des objet déjà présents dans la scène.

oli_d
30/10/2010, 16h32
Oui on peut créer des objets avec un noeud COFFEE ou un noeud Python ( je te conseillerais plutôt ce dernier)

Ci-dessous un exemple en python, il faut juste créer deux ports en entrée, un de type entier nommé "nombre" et l'autre de type lien nommé "obj_parent" (attention de bien respecter l'orthographe du nom des ports)

Le noeud va créer en enfant de "obj_parent" des Objets Neutres selon "nombre"


import c4d

def main():
if not obj_parent : return
exist = len(obj_parent.GetChildren()) #pour voir si il y a déjà des sous-objets
for i in xrange(nombre-exist): #boucle pour la création des sous-objets
obj = c4d.BaseObject(c4d.Onull)
obj.SetName("objet_"+str(i+exist+1))
obj.InsertUnder(obj_parent)


Edit : si tu veux vraiment du COFFEE je peux me replonger dans mes vieux souvenirs et te le traduire

human
30/10/2010, 16h50
Merci oli_d,

c'est un script python donc, ça me va très bien aussi comme je connais ni l'un ni l'autre.
Si je tente de lire ton script, je vois à la ligne 7: "c4d.Onull", c'est comme ça que se nomme l'objet null en code python?

Si oui cela veux dire que je peux trouver le nom des objets que je veux créer/invoquer dans la scène dans une bibliothèque? c'est le SDK?

human
30/10/2010, 17h14
J'ai du zapper un truc, une manip je pense mais je vois pas j'ai mi une copie d'écran pour que tu puisse me dire où j'ai merdé :)

human
30/10/2010, 17h23
bon ben ok , j'ai merdé, j'ai oublié de prendre les deux lignes du dessus de ton code, je pensait que c'était juste un titre comme ça. :)

Merci encore, c'est super se truc, je te cache pas que je serais content d'avoir la même chose en coffee, comme je suis encore sous 11.5 mac ppc au boulot, sans py4d donc.

oli_d
30/10/2010, 19h36
Si je tente de lire ton script, je vois à la ligne 7: "c4d.Onull", c'est comme ça que se nomme l'objet null en code python?


C'est exactement ça tu trouve la liste des objets par exemple dans la doc COFFEE, sous reference/BaseObject -> AllocObject( type )

Je t'ai fait le même principe pour un noeud COFFEE :



main()
{
if(!obj_parent) return;
var obj = obj_parent->GetDown();
var exist = 0;

while(obj)//Boucle pour compter les sous-objets existants
{
exist ++;
obj = obj->GetNext();
}

var i;
for(i =0;i<(nombre-exist);i++)//Boucle pour la création des objets
{
var obj = AllocObject(Onull);
obj->SetName("objet_"+tostring(i+exist+1));
obj->InsertUnder(obj_parent);
}
}

human
30/10/2010, 19h55
Whoa merci, c'est sympa de t'être replongé dans coffee :)

C'est très motivant pour le graphiste que je suis, pour commencer à mettre un pied dans le code.

J'ai acheté le livre PDF de RUI BATISTA en anglais sur coffee et j'ai trouvé un bouquin sur le python à la FNAC de chez EYROLLES "Apprendre à programmer avec Python 3" j'aurais préféré un vidéo tutoriel directement de python pour c4d, même en anglais mais j'ai pas trouvé.

Je me suis dit comme CMIVFX à fait un truc super sur XPRESSO et sur ICE alors peut être qu'ils en feront sur python dans une appli 3d comme c4d.
je viens de voir ça:
http://cmivfx.com/productpages/product.aspx?name=INTRO_TO_PYTHON

oli_d
30/10/2010, 20h32
Whoa merci, c'est sympa de t'être replongé dans coffee :)


J'oublie à chaque ligne le point virgule et pour les boucles c'est quand même moins souple ...

Si tu aime les vidéos il y a celle là sur le python en général qui est très bien faite (en français en plus) : http://www.siteduzero.com/tutoriel-3-262842-apprenez-a-programmer-en-python-video.html

Bon c'est pas directement pour Cinema4D, mais une fois que tu as bien compris comment coder en python, comment fonctionne les boucles, les classes, etc.. tu peux ensuite facilement déchiffrer la doc python de C4D et te lancer.

human
30/10/2010, 20h50
très bien ton lien et les vidéos sont assez sympa pour un guide de langage de programmation. Merci:)