Boutique Cinema 4D
Affichage des résultats 1 à 4 sur 4

Discussion: SceneLoaderData et TP

  1. #1
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964

    SceneLoaderData et TP

    Salut à tous, je cherche un moyen de faire fonctionner TP(Thinking Particles) dans un plugin de type SceneLoaderData.
    Quand je fait un merge ça succes mais quand j'ouvre mon doc ça ne fonctionne pas. J'en conclus qu'il s'agit d'un problème de document non chargé et donc de TP non initialisé. Y'a t'il un moyen de corriger ça?

    Voici mon script de test :
    Code:
    import c4d,os,struct
    
    
    Plugin_ID = 1037278
    
    
    class mySceneLoader(c4d.plugins.SceneLoaderData):
        doc = None
        particleSystem = None
        particleGroup = None
    
        def createTP(self,name):
            self.particleSystem = self.doc.GetParticleSystem()
            TPRoot = self.particleSystem.GetRootGroup()
            self.particleGroup = self.particleSystem.AllocParticleGroup()
            self.particleGroup.SetName(name)
            self.particleSystem.SetPGroupHierarchy(TPRoot, self.particleGroup, c4d.TP_INSERT_UNDERFIRST)
            c4d.EventAdd()
    
    
        def createParticle(self,pos):
            particle = self.particleSystem.AllocParticle()
            self.particleSystem.SetGroup(particle,self.particleGroup)
            self.particleSystem.SetPosition(particle,pos)
    
    
        def Identify(self, node, name, probe, size) :
            nom = name.lower()
            if not nom.endswith('.pcd') : return False
                    
            return True
    
    
        def Load(self, node, name, doc, filterflags, error, bt) :
            self.doc = doc
            self.createTP("name")
            self.createParticle(name,c4d.Vector(10,10,10))
    
    
            c4d.EventAdd()
            return c4d.FILEERROR_OPEN
    
    
    if __name__ == "__main__":
        c4d.plugins.RegisterSceneLoaderPlugin(    id=Plugin_ID, 
                                                str="PCD IMPORTER (*.pcd)",
                                                g=mySceneLoader,
                                                info=c4d.PLUGINFLAG_SCENELOADER_MERGEORIGINAL,
                                                description="")
    De plus j'ai rajotué le "tag"c4d.PLUGINFLAG_SCENELOADER_MERGEORIGINAL dans le register du plugin du coup logiquement il devrais récupérer les informations du doc en cours et donc les informations TP. Mais non :/

    Merci d'avance. Sinon je le ferais avec les particules de bases, vu que mon but est juste de récupérer la position.

    Bon en tout cas en merge ça fonctionne nickel voici ce que j'arrive à obtenir en important des points cloud ! (c'est jolie...)
    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		pointCloud.jpg 
Affichages :	33 
Taille :		230,1 Ko 
ID : 			17752
    Dernière modification par gr4ph0s ; 27/04/2016 à 21h51.
    SDK Specialist
    MAXON Computer GmbH

  2. #2
    Vieux Croûton Avatar de Aurety
    Date d'inscription
    juillet 2002
    C4D version
    R17 Studio
    OS
    Mac
    Messages
    14 477
    Billets dans le blog
    3
    t'es un alien
    kenavo !! // Pinterest KAMIGAZ®

  3. #3
    Big Boss Avatar de yayaprod
    Date d'inscription
    mai 2006
    C4D version
    R13 Studio
    OS
    OS Walking Dead ?
    Messages
    6 010
    ...Je pense aussi ...
    Les détails font la perfection, et la perfection n'est pas un détail.
    LdV.
    http://yayaprodtm.cgsociety.org/

  4. #4
    Pilier Avatar de gr4ph0s
    Date d'inscription
    mai 2013
    C4D version
    R16 Studio
    OS
    win 7 X64
    Messages
    964
    Haha merci et vu que y'a jamais assez de python dans une scène, un cube cloner sur les particules, et dont la couleurs est affecté par un effecteur python en fonction de la couleur de la particule et hop un effet de voxel à deux balle :p

    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		pointCloudToColor.jpg 
Affichages :	27 
Taille :		228,7 Ko 
ID : 			17753

    EDIT: Je me demande si c'est possible vu que les particules sont automatiquement delete a chaque début d'anim(logique vu que y'a rien pour les générer à l'instant 0). Après en passant par un objet qui lirais un fichier, du coup y'aurai moyen mais la n'est pas mon but.
    Dernière modification par gr4ph0s ; 28/04/2016 à 00h03.
    SDK Specialist
    MAXON Computer GmbH

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  
Mediaworks - Logiciels 3D | Design Internet - Creation site internet