Voir la version complète : Integrer une donnée utilisateur dans un effecteur formula
Ola les amis, je voudrais agir sur la formule d'un effecteur formula via une DU, je me suis dit : Ô à moi les joies du python mais bon voilà faut pas rêver, je me suis douté que ce ne serait pas aussi facile que ça vu mes lacunes en code..
En gros, j'ai crée une DU que j'appelle "Tours"
Dans Xpresso j'ai importé mon neutre avec la DU et j'ai ajouté un noeud Python, j'ai supprimé le port 2 et ai renommé le premier "In" et en sortie j'ai renommé le port "Out"
Dans le noeud Python, j'ai édité le script pour un truc qui devrait être super simple mais j'y arrive pas :
import c4d
def main():
global Out
tours = str(In)
Out = "sin(((id/count)+t)*tours)"
Je me doute qu'il s'agit d'une erreur de string/integer mais bon j'y arrive pas, une petite idée ??
Désolé pour niveau de newb.. :icon_redface:
désolé, en cherchant j'ai trouvé un truc qui marche..
import c4d
def main():
global Out
tours = str(In)
Out = "sin(((id/count)+t)*"+tours+")"
MacGreggor
29/01/2016, 13h27
Ben tant mieux, Lapinou, t'as bien de la chance de trouver des trucs qui marchent.
Math1712
29/01/2016, 13h56
Yep ça revient à faire ça http://www.c4dcafe.com/ipb/applications/core/interface/file/attachment.php?id=151481
Rooooo Aurety qui va attraper le virus du python ! Bon c'est pas encore le niveau pour créer une blonde paramétrique, mais faut un début à tout ! :icon_mrgreen:
oui mais vu dans la perspective neo-gothique-post-punk (époque réaliste ), c'est à la mesure de mon niveau actuel.
Dans une prochaine mouture, je vais tenter de cacher un "Hello world" dans le code histoire de respecter les anciens..:icon_artist:
valkaari
29/01/2016, 23h38
Si t'es vraiment allergique, tu peux aussi utiliser le noeud addition mais en changeant le type en string (chaine)
Du coup on peut ajouter des chaines de caractères et envoyer le tout dans le champ formule.
17000
oh non, je veux bien apprendre surtout quand je vois qu'il faut 10 noeuds pour faire un truc qui se fait en 2 lignes.:sweatdrop:
valkaari
30/01/2016, 16h05
ha mais je t'encourage vivement de te mettre au python hein ^^
tu peux aussi écrire directement sans passer par une variable supplémentaire.
Out = "sin(((id/count)+t)*"+ str(In)+")"
tu peux aussi écrire celle ci qui a pour avantage de rendre encore plus lisible la formule et d'éviter l'oublie de "
(voir les fonctions printf en c++ ou en php
Out = "sin(((id/count)+t)* %s)" % (In)
par exemple:
Out = "my name is %s et je sodomise %s" % ('valkaari','geantvert')
tu peux aussi écrire celle ci qui a pour avantage de rendre encore plus lisible la formule et d'éviter l'oublie de "
(voir les fonctions printf en c++ ou en php
Out = "sin(((id/count)+t)* %s)" % (In)
Il est même conseillé d'utiliser d'utiliser string.format qui est plus puissant et qui n'est pas amené à disparaître contrairement à %.
Note The formatting operations described here are obsolete and may go away in future versions of Python. Use the new String Formatting in new code.
https://docs.python.org/release/3.1.5/library/stdtypes.html#old-string-formatting-operations
Out = "sin(((id/count)+t)*{tours})".format(tours=In)
ou
Out = "sin(((id/count)+t)*{0})".format(In)
voire en python 2.7 (R17) :
Out = "sin(((id/count)+t)*{})".format(In)
Ca serais cool qu'il mette la version 2.7 sur toute les versions de C4d et pas uniquement sur la R17.
Je pense notamment à l'intégration de fabric engine qui n'en serait que facilité, mais y'a un tas de librairie uniquement 2.7 et la plupart des fonctions sont compatibles...
valkaari
01/02/2016, 17h52
Il est même conseillé d'utiliser d'utiliser string.format qui est plus puissant et qui n'est pas amené à disparaître contrairement à %.
et c'est ce que j'utilise mais je trouvais ça un peu trop Errrrrkkkk pour une première approche
et apparemment même format devrait disparaître http://sametmax.com/ou-format-en-python/ avec python.3.6
Il faut qu'on fasse gaffe, si on commence à disserter sur 15 post pour 3 lignes de code on va faire fuir notre valeureux lapin !:icon_mrgreen:
Bhein non, ça me fait même plaisir car ça me donne au moins le moyen de comprendre enfin ce que je lis. 3 lignes justes comme il faut, qui font le job et maintenant on me dit qu'il y aurait dans toute cette rigueur de la poésie alors oui, ça m'emballe :icon_wavey:
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. Tous droits réservés