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

Moderateur forum || FAQ 3D || discord 3D francophone || 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 Lauloque 27 février 2021 à 16:53:43

  • Partager sur Facebook
  • Partager sur Twitter

Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script