Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Milerius

Pages: [1]
1
Bonjour,

Une première approche qui pourrait t'être utile et en français sans te donner des indications de code: http://www.goprod.bouhours.net/?page=pattern&pat_id=16

Avec ce design pattern, tu arriveras a faire ce que tu essayes sans aucun souçis !

2
Général / Re: Besoin d'aide avec sfeMovie
« le: Avril 18, 2018, 03:14:26 pm »
Bonjour,

Il semblerait que mon projet utilise sfeMovie sur 3 plateformes différentes Windows, OSX, Linux sans aucuns problème, J'ai réussi à compiler sfeMovie avec CLion/Visual studio sur Windows, mais jamais avec Code::Blocks, faudrait voir de plus près.

3
à l'heure actuelle je n'ai que un seul Listener, et c'est ma caméra ! mon problèmes c'est que au départ je suis très loin du son émis qui est relatif a mon listener et je l'entends quand même et au maximum !

4
[EDIT] : je viens de voir qu'il y avait une section Audio pour l'aide , si il est possible de déplacer ma demande dans la bonne section.

Bonjour,

Je suis actuellement en train de faire un projet pour mon école en deuxième année sous ogre3d,
il s'agit d'un jeux vidéo 3d, un mix entre un Bomberman et un Gauntlet

J'aimerais pouvoir jouer du son en fonction de mon placement sur mon environnement 3d, ma scène, j'ai hélas un fort problème, mon son s'entends que je sois de loin ou de prêt

Voici comment je procède selon la documentation SFML audio, tous d'abord mon endroit de départ :
,

Ensuite l'endroit où le son est censé être émis :



Le Squelette qui se frappe le torse est censé émettre un son quand il effectue cette action,

Voici un bout du code en exemple :
là où je set la position du squelette
_cesar->setPosition(710.6, 30, 557.64);
 

Ensuite là ou je set le Listener qui est ma caméra
       
sf::Listener::setGlobalVolume(50);
sf::Listener::setPosition(_cameraMan->getCamera()->getPosition().x,
_cameraMan->getCamera()->getPosition().y, _cameraMan->getCamera()->getPosition().z);
evt::EventManager::getSingletonPtr()->emit<evt::SoundEffectSpatialization>(effect::ImpactBoom, _cesar->getPosition(), true);
 

(_cameraman) est donc ma position actuelle de ma camera, moi , et mon Listener,
le Event Manager emit un type d’évent, qui prends en paramètre ce qui me permet de construire mon objet, l'enumeration relative au son, la position du son , ici c'est celle du Squelette dans l'arene, et si je veut faire loop le son, en effet je veut qu'on puisse entendre le Squelette ce frappé le torse en boucle alors j'envoie true)

Maintenant là où j'update mon Listener a chaque frame :
     
_soundMgr->update(evt.timeSinceLastFrame,
TestScene::getSingletonPtr()->_cameraMan->getCamera()->getPosition(),
TestScene::getSingletonPtr()->_cameraMan->getCamera()->getDirection());
 
void SoundEffectsManager::update(float timeSinceLastFrame, const Ogre::Vector3& position,
const Ogre::Vector3& direction)
        {
            sf::Listener::setPosition(static_cast<float> (position.x),
                static_cast<float> (position.y),
                static_cast<float> (position.z));
            //sf::Listener::setDirection(direction.x, direction.y, direction.z);
        }
 

là où le son est joué :
  void SoundEffectsManager::playSound(const effect& effectId, const Ogre::Vector3& position, bool loop)
        {
            if (!_effects.isLoaded(effectId))
                _effects.loadResource(effectId, _effectsPath[effectId]);
            _sndBuffer = _effects.getResource(effectId);
            _snd.setBuffer(_sndBuffer);
            _snd.setVolume(100);
            _snd.setPosition(position.x, position.y, position.z);
            _snd.setRelativeToListener(true);

            //test
            _snd.setAttenuation(10.f);
            _snd.setMinDistance(5.f);
            //Volume factor = MinDistance / (MinDistance + Attenuation * (max(Distance, MinDistance) - MinDistance))



            _snd.setLoop(loop);

            _snd.play();
      }
 


Donc voilà peut importe ma position sur ma scene , j'entends le son de partout et au même volume, l'atténuation/la min distance n'as pas l'air d'être pris en compte !

Merci d'avance!

Cordialement

Pages: [1]