#25 

10-02-2010 12:25:35

Ilovechocolat
Abonné
Date d'inscription: 07-10-2009
Messages: 125

J'ai trouvé une class nommé irr::scene::IBoneSceneNode dans la doc, c'est surement la qu'il faut chercher.

Hors ligne


#26 

10-02-2010 13:02:33

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

voilà, celle là aussi c des bones( je l'avais vu ), car si sa serai pas des bones( si sa serai des animation par keyframes ), les jambes transpercerai un peu les bidons avant la collision, donc moi aussi si vous avez une idée je c qu'il y a une classe pour sa mais j'y comprend pas grand chose, la voilà http://irrlicht.sourceforge.net/docu/cl … _node.html

Hors ligne


#27 

11-02-2010 13:19:45

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

je vien de refaire sa en exportant en model .b3d, eh la.... mais bones sont exporté, enfin, mais bon pas très bien, car irrlicht ne reconnais pas le nom des joints, enfin bon sa c pas grave. J'ai éssayé de faire avec le model .b3d dans les media irrlicht, le ninja. J'essaye de faire joindre le micro à la main gauche( Joint17 ), mais rien ne se passe-_-

Code:

IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode(smgr->getMesh("media/ninja.b3d"));
    node->setMaterialFlag(video::EMF_WIREFRAME,true);
    if (node)
    {
        node->setMaterialFlag(EMF_LIGHTING, false);
        node->setFrameLoop(1, 1);
        node->setAnimationSpeed(25);
        //node->setMD2Animation(scene::EMAT_POINT);
        node->setPosition(vector3df(0,72,0));
        node->setScale(vector3df(20,20,20));
        
        
                //création du noeud de scéne main, de la main droite de rondoudou
                ISceneNode* main = node->getXJointNode("Joint17");
                //Chargement du micro
                IAnimatedMeshSceneNode* micro = smgr->addAnimatedMeshSceneNode(smgr->getMesh("media/micro.3ds"));
                micro->setScale(vector3df(2,2,2));
                //définition de la main de rondoudou comme parent du micro
                micro->setParent(main);
       }

Petite vidéo pour que vous voyez le problème : http://www.youtube.com/watch?v=zbcHSAXb8yQ

Hors ligne


#28 

11-02-2010 14:44:46

nabouill
Abonné
Date d'inscription: 17-09-2009
Messages: 242
Corrections: 1

Salut, je pense que le problème vient de ton model micro.3ds. J'ai refait ton code avec le ninja et a la place du micro, j'ai utlisé le model earth.x (fournie aussi avec irrlicht).
Donc dans mon projet j'ai: ninja.b3d, nskinbl.jpg, earth.x et earth.jpg.
Et je te donne le code complet: (je me suis mis des flag materiel un peu plus classique pour mieux voir)

Code c++ :


#include <irrlicht.h>

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;


int main(int argc, char** argv)
{

    IrrlichtDevice *device = createDevice(EDT_SOFTWARE, dimension2d<u32>(640, 480), 16, false, false, false, 0);
    device->setWindowCaption(L"Aidons notre ami -narugohan- a resoudre son probleme");

    IVideoDriver* driver = device->getVideoDriver();
    ISceneManager* smgr = device->getSceneManager();
    IGUIEnvironment* guienv = device->getGUIEnvironment();
    smgr->addCameraSceneNodeFPS(0, 100.0f, 0.05f);

    IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode(smgr->getMesh("ninja.b3d"));
        node->setMaterialFlag(EMF_LIGHTING, false);
        node->setFrameLoop(1, 1);
        ISceneNode* main = node->getXJointNode("Joint17");
        IAnimatedMeshSceneNode* micro = smgr->addAnimatedMeshSceneNode(smgr->getMesh("earth.x"));
        micro->setScale(vector3df(0.5,0.5,0.5));
        micro->setMaterialFlag(EMF_LIGHTING, false);
        micro->setParent(main);

    while(device->run())
    {
        driver->beginScene(true, true, SColor(0,200,200,200));
        smgr->drawAll();
        guienv->drawAll();
        driver->endScene();
    }
    device->drop();

    return 0;
}



Et regarde le resultat:


Ce qui me fait donc penser a ton modele micro.3ds qui est mal supporté, tu devrais essayer mon code déjà pour s'assurer qu'il fonctionne bien avec ce que tu veut faire.

Bon courage.


mes sites: www.manga-vf.fr et www.series-vf.fr

Hors ligne


#29 

11-02-2010 14:57:43

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

ok je te remercie, bon je teste sa tout de suite

PS : j'aime bien le nom de ta fenetre ptdr

EDIT : bon je vien de tester, donc oui sa doit venir de mon model car sa marche avec earth.x, je te remercie enormement pour sa

Dernière modification par narugohan (11-02-2010 15:06:06)

Hors ligne


#30 

11-02-2010 16:55:08

Ilovechocolat
Abonné
Date d'inscription: 07-10-2009
Messages: 125

Waou narugohan, respect pour ton programme, comment tu fait pour gérer la reconnaissance vidéo ?
C'est peut être aussi que ton micro est mal exporté, je te rappelle que beaucoup de logiciels de modelisation 3D n'exportent pas les nurbes ni les curve ni ce qui y ressemble.

Hors ligne


#31 

11-02-2010 20:38:00

narugohan
Abonné
Date d'inscription: 24-03-2009
Messages: 113

nn enfaite, mon micro était bien exporter, mais comme il été pas centré dans la fenetre irrlicht, ba il s'afficher comme meme dans irrlicht mais on pouvais pas le voir^^.
Sinon merci pour mon programme ;p, tu as déjà du en entendre parler, sa s'appelle de la réalité augmenté, il y a une librairie opengl qui existe( et que j'utilise ), elle se nomme ARToolKit. Comme j'ai dit, c'est une librairie openGL, mais comme j'ai vue sur youtube que certain avait réussit à l'intégré a irrlicht, je me suis lancé dans l'aventure, donc il suffit de lire les tutos de la doc à cette adresse http://www.hitl.washington.edu/artoolkit/documentation/ ( par contre c'est en l'anglais ), tu lis la partie 1 et 2( getting started et Developer's Guide ), et ensuite tu essaye d'adapter sa pour que sa passe de l'openGL à Irrlicht. Sincerement, sa ma prit entre 2 à 3 jours, mais je pense que je vais peut etre faire un tuto sur le site du zéro( que tu dois connaitre car je t'es déjà vue dessus ;p ), pour montrer comment l'intégré à irrlicht^^

Hors ligne


#32 

11-02-2010 20:48:06

Ilovechocolat
Abonné
Date d'inscription: 07-10-2009
Messages: 125

Merci pour ta lib, sinon au cas ou tu veille aller plus loin dans la vision par ordinateur t'as un tuto sur le site du zéro, il est dans général je crois.

A oui et pour votre vidéo (celle du viking qui tourne la tête en fonction de la souris), vous avez réussit a faire quelque chose de similaire ?

Dernière modification par Ilovechocolat (11-02-2010 21:35:00)

Hors ligne


#33 

11-02-2010 21:48:29

jonath313
Abonné
Date d'inscription: 28-12-2009
Messages: 240

bin je pense qu'il suffit de récupérer le bone de la téte de faire un noeud dessu et de manipuler ce noeud dans une boucle d'événnement du genre suivre la cible de la caméra ou récupérer le mouvement de la souris et d'associer des rotation si la souris se dirige a droite le noeud du bone de la tete fait une rotation en s'incrémentan jusqu'a une valeur maximale de rotation.

C'est pas faisable sa ? sur la video le mec  a du créer un vecteur qui cible l'objet qui vole et il cible l'objet en partant de la tete non ?

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
61 invités en ligne
Aucun membre connecté
RSS Feed