Partage
  • Partager sur Facebook
  • Partager sur Twitter

Habiller mon armature

    25 février 2021 à 19:24:11

    Bonjour,

    est-il possible d'habiller automatiquement mon armature sur Blender ? J'ai fait un personnage avec les armatures, maintenant quand je regarde les tuto sur Youtube je voit que je devais faire le personnage d'abord puis placer les armatures, mais je trouve que dans mon cas ce serait plus facile de placer les armature puis habiller est ce possible ?

    • Partager sur Facebook
    • Partager sur Twitter
      26 février 2021 à 12:32:21

      Bonjour, je ne comprends pas trop le rapport entre les habits et les armatures, sur quel tuto tu te bases ?

      Normalement on fait les armatures après avoir fini et "verrouillé" les modélisations qu'elles doivent influencer.

      • Partager sur Facebook
      • Partager sur Twitter

      FAQ 3D || Discord 3DFR || OC Tweak script

        26 février 2021 à 14:14:18

        C'est donc l'ossature à laquelle je voudrais donner une chaire, est-ce possible automatiquement ?

        -
        Edité par enum 26 février 2021 à 14:15:30

        • Partager sur Facebook
        • Partager sur Twitter
          26 février 2021 à 14:59:21

          Suite à ton signalement, ton message est sorti des spams :)

          Pour la prochaine fois tu peux poster ici : Si votre message est considéré comme spam .

          • Partager sur Facebook
          • Partager sur Twitter

          Pas d'aide concernant le code par MP, le forum est là pour ça :)

            27 février 2021 à 16:51:24

            Merci Lameraclate 👍

            C'est vraiment pas la démarche la plus simple, et de base il n'y a aucuns outils pour créer un mesh d'après une armature.

            Il y a bien ce script que j'ai trouvé sur un autre forum et mis à jour pour Blender 2.92 ci-dessous, mais ça reste peu intéressant et sans aucun contrôle. Il faut donc copier ce code, s'assurer d'avoir ton armature sélectionnée en object mode, ouvrir le script editor, créer un nouveau script, coller le script et l'exécuter avec le bouton play en haut à droite.

            Une autre approche serait de en quelques sortes dessinser un squelette à partir d'un mesh en fil de fer et d'utiliser le modifier Skin. Là tu peux non va obtenir quelquechose de plus cohérent, et surtout tu peux contrôler la largeur du mesh généré par le modifier à chaque point du mesh initial.

            Petite vidéo exemple ici.

            import bpy
            import math
            import os
            
            Meshname = "armature_mesh";
            
            def convertVector(v):
                return [v.x,v.y,v.z]
            
            def main():
                #make sure what we're going to work on is an actual armature.     
                if bpy.context.active_object.type != 'ARMATURE':
                    print("Active object must be an armature!!");
                    return 1;
            
                theArmature=bpy.context.active_object;
            
                #delete any previous attempts
                if bpy.data.objects.get(Meshname) is not None:
                    bpy.ops.object.select_all(action='DESELECT')
                    bpy.data.objects[Meshname]
                    bpy.ops.object.delete(use_global=False)
            
                #time to copy the armature to mesh
                #define our data containers for the new obj
                Verts=[]
                Edges=[]
                Faces=[]
            
                #select the armature and enter edit mode, and get all the bones. 
                bpy.context.view_layer.objects.active = theArmature
                bpy.ops.object.editmode_toggle()
                bpy.ops.armature.select_all(action='SELECT')
                bones = bpy.context.selected_bones
            
                #loop through the bones, putting all the coords in the data containers. 
                for bone in bones :
                    Verts.append(convertVector(bone.head))
                    Verts.append(convertVector(bone.tail))
                    VertID = len(Verts)
                    Edges.append([VertID-2,VertID-1])
            
            
                bpy.ops.object.editmode_toggle()
            
            
                #make the object and add all the data.     
                mesh=bpy.data.meshes.new(Meshname)
                mesh.from_pydata(Verts,Edges,Faces)
                newMesh=bpy.data.objects.new(Meshname,mesh)
                bpy.context.scene.collection.objects.link(newMesh)
            
            
                #connect the connected bones by removing doubles
                bpy.context.view_layer.objects.active = newMesh
                bpy.ops.object.editmode_toggle()
                bpy.ops.mesh.select_all(action='SELECT')
                bpy.ops.mesh.remove_doubles()
                bpy.ops.object.editmode_toggle()
            
                bpy.ops.object.modifier_add(type='SKIN')
            
            
            main();

            -
            Edité par -L0Lock- 27 février 2021 à 16:53:43

            • Partager sur Facebook
            • Partager sur Twitter

            FAQ 3D || Discord 3DFR || OC Tweak script

            Habiller mon armature

            × 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