demande d'aide - animation de personnage

Généralités sur la programmation 3D
Avatar de l’utilisateur
Guillot
Messages : 516
Inscription : jeu. 25/juin/2015 16:18

demande d'aide - animation de personnage

Message par Guillot »

salut les codeurs

je fais un simulateur de parapente
pour l'essentiel, j'ai terminé
il me reste juste a faire le bonhomme avec comme animation le mouvement des bras pour tirer sur les freins
le problème c'est que PB (pour l'instant) n'intègre pas la création d'animation (on peut juste les gérer)
est ce que l'un d'entre vous connait des logiciels permettant de créer des meshs avec animation ?
j'aimerais des conseils, je ne connais pas le domaine, et ça m'a pas l'air simple
(si besoin je dispose d'un mesh pouvant faire office de pilote, reste a créer l'animation (par morphing ou squelette)
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: demande d'aide - animation de personnage

Message par comtois »

Je n'y connais rien en logiciel d'animation. C'est possible d'ajouter des bones dans ton mesh à la main.

1 - Télécharge OgreCommandLineTools_1.7.2

3 Pour avoir un exemple, tu utilises OgreXMLConverter pour convertir le robot.mesh et le robot.skeleton en fichiers xml
Le fichier skeleton est long car il contient les animations, si tu veux bouger ton mesh manuellement, tu n'en as pas besoin.
Ci-dessous le fichier skeleton du robot modifié (il reste juste la déclaration des bones et la hiérarchie) :

Code : Tout sélectionner

<skeleton>
    <bones>
        <bone id="0" name="Joint1">
            <position x="0" y="51.5913" z="-0.0159202" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="1" name="Joint2">
            <position x="1.25659" y="-6.37357" z="-3.36696" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="2" name="Joint3">
            <position x="-1.37845" y="-21.1802" z="-4.04035" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="3" name="Joint4">
            <position x="-0.132187" y="-22.3265" z="-2.02017" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="4" name="Joint5">
            <position x="8.93628" y="-0.380359" z="0" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="5" name="Joint6">
            <position x="1.25659" y="-6.59769" z="3.81589" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="6" name="Joint7">
            <position x="-1.37845" y="-20.5078" z="3.59142" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="7" name="Joint8">
            <position x="-0.143204" y="-22.8124" z="2.24464" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="8" name="Joint9">
            <position x="8.93972" y="-0.168111" z="0.224463" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="9" name="Joint10">
            <position x="2.59993" y="7.38522" z="0.224464" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="10" name="Joint11">
            <position x="-2.60406" y="10.1826" z="0.224464" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="11" name="Joint12">
            <position x="0" y="10.5338" z="0" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="12" name="Joint13">
            <position x="0" y="-1.12062" z="-14.8146" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="13" name="Joint14">
            <position x="-3.68851" y="-12.335" z="-0.897854" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="14" name="Joint15">
            <position x="15.6188" y="-13.2904" z="-6.50945" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="15" name="Joint16">
            <position x="0" y="-0.896494" z="13.2434" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="16" name="Joint17">
            <position x="-3.68851" y="-12.7833" z="2.24464" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
        <bone id="17" name="Joint18">
            <position x="15.6188" y="-13.5145" z="6.73391" />
            <rotation angle="0">
                <axis x="1" y="0" z="0" />
            </rotation>
        </bone>
    </bones>
    <bonehierarchy>
        <boneparent bone="Joint2" parent="Joint1" />
        <boneparent bone="Joint3" parent="Joint2" />
        <boneparent bone="Joint4" parent="Joint3" />
        <boneparent bone="Joint5" parent="Joint4" />
        <boneparent bone="Joint6" parent="Joint1" />
        <boneparent bone="Joint7" parent="Joint6" />
        <boneparent bone="Joint8" parent="Joint7" />
        <boneparent bone="Joint9" parent="Joint8" />
        <boneparent bone="Joint10" parent="Joint1" />
        <boneparent bone="Joint11" parent="Joint10" />
        <boneparent bone="Joint12" parent="Joint11" />
        <boneparent bone="Joint13" parent="Joint11" />
        <boneparent bone="Joint14" parent="Joint13" />
        <boneparent bone="Joint15" parent="Joint14" />
        <boneparent bone="Joint16" parent="Joint11" />
        <boneparent bone="Joint17" parent="Joint16" />
        <boneparent bone="Joint18" parent="Joint17" />
    </bonehierarchy>

</skeleton>
J'ai fait l'essai en supprimant les animations du robot, il fonctionne bien dans l'exemple EnableManualEntityBoneControl.pb

Le plus compliqué c'est d"affecter les bones aux vertex dans le fichier mesh.xml (regarde comment c'est fait avec le robot)

extrait :

Code : Tout sélectionner

            ...
            <boneassignments>
                <vertexboneassignment vertexindex="0" boneindex="17" weight="1" />
                <vertexboneassignment vertexindex="1" boneindex="17" weight="1" />
                <vertexboneassignment vertexindex="2" boneindex="17" weight="1" />
                ...
                ...
                <vertexboneassignment vertexindex="293" boneindex="10" weight="1" />
                <vertexboneassignment vertexindex="294" boneindex="1" weight="1" />
            </boneassignments>
        </submesh>
    </submeshes>
    <skeletonlink name="robot.skeleton" />
</mesh>


Disons que ce truc peut-être utile avec des meshs et animations simples. Dans ton cas, ça risque d'être trop compliqué ?
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
venom
Messages : 3071
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: demande d'aide - animation de personnage

Message par venom »

Bonjour,

En effet, l'animation est un domaine bien à part. J'avais un peut tâter de l'animation ici sous blender avec squelette, mais je n'ai pas continuer. :oops: J'avais bien galérer pour ci peut :lol:
Bon courage :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: demande d'aide - animation de personnage

Message par comtois »

Un petit programme pour aider à affecter les vertex aux bones

plusieurs vertex partagent la même position, le code est à adapter pour sélectionner les vertex à afficher.

Par exemple , commente cette ligne

Code : Tout sélectionner

    For i=0 To MeshVertexCount(0)-1
et valide celle ci

Code : Tout sélectionner

    ;For i=0 To 10

Code : Tout sélectionner

;
#CameraSpeed = 1
#Camera   = 0

IncludeFile #PB_Compiler_Home + "examples/3d/Screen3DRequester.pb"

Define.f KeyX, KeyY, MouseX, MouseY, RollZ, sens = -1

Dim Bone.s(18)
Global Dim MeshData.PB_MeshVertex(0) 


Macro Text3D(No, Texte, Color, Alignment)
  CreateText3D(No, Texte)
  Text3DColor(No, Color)
  Text3DAlignment(No, Alignment)
EndMacro

If InitEngine3D()
  
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/fonts", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Models", #PB_3DArchive_FileSystem)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/skybox.zip", #PB_3DArchive_Zip)
  Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Scripts", #PB_3DArchive_FileSystem)
  Parse3DScripts()
  
  InitSprite()
  InitKeyboard()
  InitMouse()
  
  If Screen3DRequester()
    
    LoadMesh(0, "robot.mesh")
    
    
    CreateMaterial(0, LoadTexture(0, "r2skin.jpg"))
    MaterialShadingMode(0, #PB_Material_Wireframe)
    
    CreateEntity(0, MeshID(0), MaterialID(0))
    HideEntity(0,0)
    RotateEntity(0, 0, -70, 0)
    
    GetMeshData(0,0,MeshData(),#PB_Mesh_Vertex,0,MeshVertexCount(0)-1)
    ;For i=0 To 10
    For i=0 To MeshVertexCount(0)-1
      Text3D(i, Str(i), RGBA(Random(255), Random(255), Random(255), 255), #PB_Text3D_HorizontallyCentered | #PB_Text3D_VerticallyCentered)  
      ScaleText3D(i, 3, 3, 0)
      ConvertLocalToWorldPosition(EntityID(0)  ,MeshData(i)\x, MeshData(i)\y,MeshData(i)\z)
      MoveText3D(i, GetX(),GetY(),GetZ(), #PB_Absolute)
    Next 
    
    
    SkyBox("stevecube.jpg")
    
    CreateCamera(0, 0, 0, 100, 100)
    MoveCamera(0, 0, 40, 150, #PB_Absolute)
    
    Repeat
      Screen3DEvents()
      
      If KeyboardPushed(#PB_Key_Left)
        KeyX = -#CameraSpeed
      ElseIf KeyboardPushed(#PB_Key_Right)
        KeyX = #CameraSpeed
      Else
        KeyX = 0
      EndIf
      
      If KeyboardPushed(#PB_Key_Up)
        KeyY = -#CameraSpeed
      ElseIf KeyboardPushed(#PB_Key_Down)
        KeyY = #CameraSpeed
      Else
        KeyY = 0
      EndIf
      
      
      If ExamineMouse()
        MouseX = -(MouseDeltaX()/10)
        MouseY = -(MouseDeltaY()/10)
      EndIf
      MoveCamera  (#Camera, KeyX, 0, KeyY)
      RotateCamera(#Camera,  MouseY, MouseX, 0, #PB_Relative) 
      
      
      RenderWorld()
      Screen3DStats()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
  
Else
  MessageRequester("Error", "The 3D Engine can't be initialized",0)
EndIf

End
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Guillot
Messages : 516
Inscription : jeu. 25/juin/2015 16:18

Re: demande d'aide - animation de personnage

Message par Guillot »

ah, j'avais pas vu !
on est venu à mon secoure

salut comtois, content de te revoir

je vois que tu maitrise le sujet (à defaut des logiciels)
j'ai bien compris tes explications
(ça fonctionne comme j'imaginais)
j'espere que OgreXMLConverter fonctionne dans les 2 sens

j'ai ma petite idée pour affecter automatiquement les vertex aux os
pour chaque vertex je recherche le segment le plus proche :
(j'entends par segment la ligne délimitée par 2 joints (le termes bone n'est pas approprié, c'est des joints))
pour chaque segment (os du squelette) je calcule la distance minimum du vertex au segment:
distance = longueur ( vertex, intersection ( segment , droite perpendiculaire au segment passant par le vertex) ) (hum !, là je raisonne en 2d...)
et je retiens le segment qui minimise cette valeur

pour le poids, j'ai aussi ma petite idée
soit p le point d'intesection calculé ci dessus
d, la distance minimum
et j le 1er joint du segment
poids = clamp ( longueur ( p , j ) / d , 1)

si quelqu'un à compris mes explications je lui offre le resto ! (ah merde ils sont fermés...)
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: demande d'aide - animation de personnage

Message par comtois »

Guillot a écrit : ven. 23/avr./2021 13:52 j'espere que OgreXMLConverter fonctionne dans les 2 sens
Oui c'est le cas, mais tu l"as sûrement déjà expérimenté ou lu dans le fichier readme.
si quelqu'un à compris mes explications je lui offre le resto ! (ah merde ils sont fermés...)
Oui j'ai tout compris :)

sinon tu t'en sors ? Un début de résultat ?
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Guillot
Messages : 516
Inscription : jeu. 25/juin/2015 16:18

Re: demande d'aide - animation de personnage

Message par Guillot »

j'ai pas encore tester OgreXMLConverter
j'ai fais mon affectation automatique des vertex, ça marche bien

mais y'a encore d'autres problemes:
les mesh gratos que j'ai trouvés sur internet sont souvent truqués
par exemples:
les normals sont orientées sous un mauvais angle, le mesh à l'air joli, mais sont éclairage ne corresponds pas à la position de la lumiere
et le recalcule des normals ne fais qu'agravé le resultats, en effet les faces ne sont souvent pas reliées entres elles, les vertex auxquels elles sont reliées sont doublonnés, ce qui entraine un aspect anguleux
ils sont malins...
mais ils m'auront pas !
je suis sur une routine de dédoublonage
reste les coordonnées UV, là aussi j'ai vu des trucage, j'espere que ça sera récupérable

bref, les meshs, quand c'est gratuit, c'est pourri !
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: demande d'aide - animation de personnage

Message par comtois »

Dans le zip tu as différents outils, dont notamment MeshMagick qui permet d"optimiser un mesh (je ne sais pas si ça changera quelque chose à tes meshs, mais ça vaut le coup d'essayer)
MeshMagick
----------
Command-line tool for performing operations on meshes and skeletons.

Usage:

MeshMagick [global_options] toolname [tool_options] infile(s) -- [outfile(s)]

Available Tools:

info - print information about the mesh.
meshmerge - Merge multiple submeshes into a single mesh.
optimise - Optimise meshes and skeletons.
rename - Rename different elements of meshes and skeletons.
transform - Scale, rotate or otherwise transform a mesh.

See MeshMagick -help=toolname for more detailed information.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: demande d'aide - animation de personnage

Message par G-Rom »

salut guillot , je sais faire du low poly sous blender et l'animé.

Image
Image

Bip moi sur discord en mp si tu as besoin ( cpl.bator ) , je suis sur le discord de Falsam.
on tâtonnera tout les 2 pour l'export sur ogre ( jamais fait ) , mais j'y arrive pour d'autres engine , y a pas de raison que cela ne marche pas.
Avatar de l’utilisateur
SPH
Messages : 4720
Inscription : mer. 09/nov./2005 9:53

Re: demande d'aide - animation de personnage

Message par SPH »

Joli ! :P
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
Guillot
Messages : 516
Inscription : jeu. 25/juin/2015 16:18

Re: demande d'aide - animation de personnage

Message par Guillot »

salut les gars,

à comtois :
bon, ça commence à marcher, mais pour l'instant c'est elasticman
j'arrive pas convertir ninja.skeleton, ça marche chez toi ?
j'ai pas regardé meshmagick, pour l'instnat j'en ai pas l'utilité


à G-rom : salut et merci de ta proposition, mais finalement je vais me demerder moi même avec ogrexmlconverter
cela dit, je retiens quand même ta proposition
(marrant ton petit bonhomme qui dodeline de la tête)
G-Rom
Messages : 3626
Inscription : dim. 10/janv./2010 5:29

Re: demande d'aide - animation de personnage

Message par G-Rom »

bip quand tu veut ;)
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: demande d'aide - animation de personnage

Message par comtois »

Guillot a écrit : ven. 30/avr./2021 18:51 à comtois :
j'arrive pas convertir ninja.skeleton, ça marche chez toi ?
Il y a quoi dans ton fichier OgreXMLConverter.log ? Voici le mien
22:35:11: Creating resource group General
22:35:11: Creating resource group Internal
22:35:11: Creating resource group Autodetect
22:35:11: Registering ResourceManager for type Mesh
22:35:11: Registering ResourceManager for type Material
22:35:11: Registering ResourceManager for type Skeleton
22:35:11: XMLSkeletonSerializer writing skeleton data to C:\Users\xxx\Downloads\OgreCommandLineTools_1.7.2\ninja.skeleton.xml...
22:35:11: Populating DOM...
22:35:11: Exporting bones..
22:35:11: There are 28 bones.
22:35:11: Exporting Bone number 0
22:35:11: Exporting Bone number 1
22:35:11: Exporting Bone number 2
22:35:11: Exporting Bone number 3
22:35:11: Exporting Bone number 4
22:35:11: Exporting Bone number 5
22:35:11: Exporting Bone number 6
22:35:11: Exporting Bone number 7
22:35:11: Exporting Bone number 8
22:35:11: Exporting Bone number 9
22:35:11: Exporting Bone number 10
22:35:11: Exporting Bone number 11
22:35:11: Exporting Bone number 12
22:35:11: Exporting Bone number 13
22:35:11: Exporting Bone number 14
22:35:11: Exporting Bone number 15
22:35:11: Exporting Bone number 16
22:35:11: Exporting Bone number 17
22:35:11: Exporting Bone number 18
22:35:11: Exporting Bone number 19
22:35:11: Exporting Bone number 20
22:35:11: Exporting Bone number 21
22:35:11: Exporting Bone number 22
22:35:11: Exporting Bone number 23
22:35:11: Exporting Bone number 24
22:35:11: Exporting Bone number 25
22:35:11: Exporting Bone number 26
22:35:11: Exporting Bone number 27
22:35:11: Bones exported.
22:35:11: Exporting animations, count=20
22:35:11: Exporting animation: Attack1
22:35:11: Animation exported.
22:35:11: Exporting animation: Attack2
22:35:11: Animation exported.
22:35:11: Exporting animation: Attack3
22:35:11: Animation exported.
22:35:11: Exporting animation: Backflip
22:35:11: Animation exported.
22:35:11: Exporting animation: Block
22:35:11: Animation exported.
22:35:11: Exporting animation: Climb
22:35:11: Animation exported.
22:35:11: Exporting animation: Crouch
22:35:11: Animation exported.
22:35:11: Exporting animation: Death1
22:35:11: Animation exported.
22:35:11: Exporting animation: Death2
22:35:11: Animation exported.
22:35:11: Exporting animation: HighJump
22:35:11: Animation exported.
22:35:11: Exporting animation: Idle1
22:35:11: Animation exported.
22:35:11: Exporting animation: Idle2
22:35:11: Animation exported.
22:35:11: Exporting animation: Idle3
22:35:11: Animation exported.
22:35:11: Exporting animation: Jump
22:35:11: Animation exported.
22:35:11: Exporting animation: JumpNoHeight
22:35:11: Animation exported.
22:35:11: Exporting animation: Kick
22:35:11: Animation exported.
22:35:11: Exporting animation: SideKick
22:35:11: Animation exported.
22:35:11: Exporting animation: Spin
22:35:11: Animation exported.
22:35:11: Exporting animation: Stealth
22:35:11: Animation exported.
22:35:11: Exporting animation: Walk
22:35:11: Animation exported.
22:35:11: DOM populated, writing XML file..
22:35:11: XMLSkeletonSerializer export successful.
22:35:11: Unregistering ResourceManager for type Skeleton
22:35:11: Unregistering ResourceManager for type Material
22:35:11: Unregistering ResourceManager for type Mesh

Le fichier sans les animations.
<skeleton>
<bones>
<bone id="0" name="Joint1">
<position x="0.185046" y="0.51196" z="0" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="1" name="Joint2">
<position x="0" y="108.105" z="-1.56659" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="2" name="Joint3">
<position x="0.421854" y="9.67481" z="-1.0444" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="3" name="Joint4">
<position x="0.421854" y="8.41288" z="-3.72529e-007" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="4" name="Joint5">
<position x="-0.843709" y="17.1516" z="-1.02305" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="5" name="Joint6">
<position x="3.72529e-008" y="19.7703" z="2.61099" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="6" name="Joint7">
<position x="0" y="4.74305" z="-1.0444" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="7" name="Joint8">
<position x="-0.185046" y="9.18524" z="-3.08366" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="8" name="Joint9">
<position x="14.3431" y="-3.65739" z="6.76722" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="9" name="Joint10">
<position x="5.90596" y="-2.02329" z="0" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="10" name="Joint11">
<position x="3.37483" y="-29.4451" z="-5.74418" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="11" name="Joint12">
<position x="1.33815" y="-28.6038" z="-3.13318" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="12" name="Joint13">
<position x="0.136921" y="-6.24266" z="-3.42546" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="13" name="Joint29">
<position x="-0.0284957" y="-5.80133" z="-76.0905" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="14" name="Joint14">
<position x="-14.3431" y="-3.69103" z="6.76722" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="15" name="Joint15">
<position x="-7.17153" y="-2.10322" z="0" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="16" name="Joint16">
<position x="-2.53113" y="-28.6038" z="-5.74418" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="17" name="Joint17">
<position x="-1.68742" y="-30.2864" z="-3.13318" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="18" name="Joint18">
<position x="9.70265" y="-8.41289" z="-2.08879" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="19" name="Joint19">
<position x="2.95298" y="-43.747" z="1.56659" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="20" name="Joint20">
<position x="-0.843709" y="-46.1989" z="11.34" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="21" name="Joint21">
<position x="1.43906" y="-9.37045" z="-13.1049" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="22" name="Joint22">
<position x="0.421854" y="-0.438055" z="-7.61888" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="23" name="Joint23">
<position x="-8.85894" y="-8.41289" z="-2.08879" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="24" name="Joint24">
<position x="-3.37484" y="-43.3263" z="1.56659" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="25" name="Joint25">
<position x="-0.843709" y="-46.6195" z="11.34" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="26" name="Joint26">
<position x="-0.557851" y="-9.7911" z="-13.1049" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
<bone id="27" name="Joint27">
<position x="0" y="-0.017411" z="-7.61888" />
<rotation angle="0">
<axis x="1" y="0" z="0" />
</rotation>
</bone>
</bones>
<bonehierarchy>
<boneparent bone="Joint2" parent="Joint1" />
<boneparent bone="Joint3" parent="Joint2" />
<boneparent bone="Joint4" parent="Joint3" />
<boneparent bone="Joint5" parent="Joint4" />
<boneparent bone="Joint6" parent="Joint5" />
<boneparent bone="Joint7" parent="Joint6" />
<boneparent bone="Joint8" parent="Joint7" />
<boneparent bone="Joint9" parent="Joint6" />
<boneparent bone="Joint10" parent="Joint9" />
<boneparent bone="Joint11" parent="Joint10" />
<boneparent bone="Joint12" parent="Joint11" />
<boneparent bone="Joint13" parent="Joint12" />
<boneparent bone="Joint29" parent="Joint13" />
<boneparent bone="Joint14" parent="Joint6" />
<boneparent bone="Joint15" parent="Joint14" />
<boneparent bone="Joint16" parent="Joint15" />
<boneparent bone="Joint17" parent="Joint16" />
<boneparent bone="Joint18" parent="Joint2" />
<boneparent bone="Joint19" parent="Joint18" />
<boneparent bone="Joint20" parent="Joint19" />
<boneparent bone="Joint21" parent="Joint20" />
<boneparent bone="Joint22" parent="Joint21" />
<boneparent bone="Joint23" parent="Joint2" />
<boneparent bone="Joint24" parent="Joint23" />
<boneparent bone="Joint25" parent="Joint24" />
<boneparent bone="Joint26" parent="Joint25" />
<boneparent bone="Joint27" parent="Joint26" />
</bonehierarchy>
</skeleton>
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Guillot
Messages : 516
Inscription : jeu. 25/juin/2015 16:18

Re: demande d'aide - animation de personnage

Message par Guillot »

j'ai le même log
mais pas de fichier ninja.skeleton version xml
comment t'as pu l'avoir ?

peut etre que la dll ogre ou ogrexmlconverter ne correspond pas à notre version d'ogre
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: demande d'aide - animation de personnage

Message par comtois »

Guillot a écrit : ven. 30/avr./2021 22:49 j'ai le même log
mais pas de fichier ninja.skeleton version xml
comment t'as pu l'avoir ?
je copie les fichiers que je veux convertir dans le dossier OgreCommandLineTools_1.7.2
et ensuite tu peux faire un drag&drop de ninja.skeleton sur le fichier OgreXMLConverter.exe
(ou en passant par une fenêtre cmd)
Si tu as le log tu dois avoir ton fichier, cherche bien :)
peut etre que la dll ogre ou ogrexmlconverter ne correspond pas à notre version d'ogre
PureBasic utilise la version 1.8.2 (Byatis). Je n'ai jamais eu de problème avec les outils 1.7.2. Pour en avoir le coeur net tu peux toujours récupérer OgreXMLConverter dans un SDK 1.8

https://www.ogre3d.org/download/archives

télécharge OGRE 1.8.1 SDK for Visual C++ 2010 (32-bit), après exécution du fichier tu trouveras les outils dans le répertoire G:\OgreSDK_vc10_v1-8-1\bin\release
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Répondre