Partage
  • Partager sur Facebook
  • Partager sur Twitter

UnrealEngine 4 et python ?

Sujet résolu
    12 mai 2015 à 20:45:03

    bonjour,

     J'ai découvert par hasard UE4, et ils disent que Blender peut fonctionner avec. Et comme on peut mettre du python dans Blender... 

    UE4 fonctionne avec C++ de base, mais Cython permet de typer les variables comme du C, donc sera t il possible d'utiliser UE4

    avec python ou cython à la place du C++ ?

    https://www.youtube.com/watch?v=jGiB-mS502g

    • Partager sur Facebook
    • Partager sur Twitter
      13 mai 2015 à 9:42:41

      Salut salut alors voilà moi je code des addon sur Blender donc en python et en passant par une librairie c++ avec un bloc extern "C" que je récupère sur mon script via ctypes et son cdll.LoadLibrary ;)

      Ca te permettera de passer de Blender à UE4 et en plus d'utiliser ta librairie c++ pour d'autres modeleurs 3D :)

      • Partager sur Facebook
      • Partager sur Twitter
      OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
        13 mai 2015 à 10:29:03

        Est-ce que tu pourrais illustrer avec un exemple très simple ?
        • Partager sur Facebook
        • Partager sur Twitter
          13 mai 2015 à 10:49:54

          librairie.h :
          #include ...
          
          typedef struct MonType {
          
          } monType;
          
          class MonAddon {
            public:
              static const char* foo();
          }
          
          MonAddon lObj;
          
          extern "C" {
            const char* fooC() {return lObj.foo();};
          }
          librairie.cpp
          #include librairie.h
          using namespace std;
          
          const char* MonAddon::foo() {
            return ("Hello World").c_str();
          }
          AddonPython.py
          import ctypes
          
          lib = cdll.LoadLibrary("librairie")
          
          class MonOperation(bpy.types.Operator):
            bl_idname = "foo.bar"
            bl_label = "Operation"
            bl_options = {'REGISTER','UNDO'}
          
            def execute(self,context):
              lib.fooC.restype = c_char_p
              lib.fooC.argtypes = []
              print(lib.fooC().decode('utf-8'))
          
          class MonPanel(bpy.types.Panel):
            bl_label = "Ceci est mon label"
            bl_space_type = "VIEW_3D"
            bl_region_type = "TOOLS"
            bl_category = "Ma Categorie"
          
            def draw(self,context):
              self.layout.operator(MonOperation.bl_idname,text="BOUTON")
          
          def register():
            bpy.utils.register_module(__name__)
          
          def unregister():
            bpy.utils.unregister_module(__name__)
          
          if __name__ == "__main__":
            register()
          Tu compiles ta lib (en modifiant les include / typedef / ifndef define)
          Puis tu vas dans blender et tu installes ton add-on... Normalement ca devrait marcher :)


          -
          Edité par IQbrod 13 mai 2015 à 10:51:02

          • Partager sur Facebook
          • Partager sur Twitter
          OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
            13 mai 2015 à 10:56:50

            Ce programme affiche hello world dans ta console ... Je t'ai donné tous les éléments j'ai mis environ trois semaines à tout coroborer et après une fois que t'as pigé ça prend deux minutes :)

            Après tu peux imaginer exporter des objets de l'un à l'autre enfin tu en fais ce que tu veux quoi :)

            Edit : Il y a une coquille dans le bloc extern de mon .h
            Il faut préciser avant la fonction le nom de la libraire dans mon exmple ça donnerait :
            Librairie const char* fooC() {return lObj.foo();};

            -
            Edité par IQbrod 13 mai 2015 à 11:14:13

            • Partager sur Facebook
            • Partager sur Twitter
            OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
              13 mai 2015 à 11:40:31

              hey merci bien, il va me falloir aussi 3 semaines de méditation je pense :D.

              Je n'ai pas de pratique de scripting sur blender, mais c'était pour avoir une vision théorique du truc. J'aborde à peine pygame, mais la perspective de

              pouvoir faire un jour du python avec de la 3d, ça fait rêver,même si il faut faire un petit effort vers le C/C++.

              EDIT : tu ne te sers pas de cython ?

              -
              Edité par buffalo974 13 mai 2015 à 11:41:44

              • Partager sur Facebook
              • Partager sur Twitter
                13 mai 2015 à 11:48:24

                Non ctypes fait tout le boulot de conversion de types de C à python tu n'as quasiment rien à faire.

                Le seul truc chiant c'est que tu doit déclarer argtype et restype pour toutes tes fonctions ... xD

                • Partager sur Facebook
                • Partager sur Twitter
                OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
                  13 mai 2015 à 22:42:55

                  buffalo974 a écrit:

                  hey merci bien, il va me falloir aussi 3 semaines de méditation je pense :D.

                  Je n'ai pas de pratique de scripting sur blender, mais c'était pour avoir une vision théorique du truc. J'aborde à peine pygame, mais la perspective de

                  pouvoir faire un jour du python avec de la 3d, ça fait rêver,même si il faut faire un petit effort vers le C/C++.

                  EDIT : tu ne te sers pas de cython ?

                  Tu ne pourra jamais utiliser UnrealEngine avec Python (purement en Python je veux dire). Python manque de puissance de par sa nature interprétée.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 mai 2015 à 9:49:50

                    si il suffit grâce à cython de typer mes arguments et le résultat retourné, j' achète !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 mai 2015 à 12:10:07

                      Je suis ravi que ça marche je t'ai proposé mon code depuis rien sans tester :p
                      • Partager sur Facebook
                      • Partager sur Twitter
                      OpenClassrooms retire tellement d'aiguilles de nos pieds qu'on pourrait ne plus trouver le foin de notre botte :)
                        15 mai 2015 à 13:50:46

                        j'ai pas encore testé lol , j'ai regardé la 1e leçon youtube et je vais essayer d'abord sans codage. Faut que j'apprenne les bases du soft mais j'espère que ça marchera^^
                        • Partager sur Facebook
                        • Partager sur Twitter

                        UnrealEngine 4 et python ?

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown