BulletSim/fr
From OpenSimulator
(→Fonctions d'extension des scripts BulletSim) |
(→Avatar qui monte des escaliers) |
||
Line 71: | Line 71: | ||
== Avatar qui monte des escaliers == | == Avatar qui monte des escaliers == | ||
+ | L'acteur du mouvement de l'avatar inclut des vérifications spéciales pour permettre aux avatars de se déplacer sur des objets en escalier (comme des marches). Le code vérifie les collisions à proximité des pieds de l'avatar et, s'il essaie d'avancer et non de voler, pousse l'avatar vers le haut pour passer au-dessus de l'objet. Il s'agit d'un algorithme différent de celui d'ODE, qui s'appuie sur la courbure de la capsule de l'avatar pour se déplacer sur des obstacles bas. | ||
+ | |||
+ | Sept paramètres INI permettent de contrôler les escaliers : | ||
+ | {| class="wikitable" | | ||
+ | |'''AvatarStepHeight''' | ||
+ | |Hauteur maximale d'une marche. Si l'avatar entre en collision avec quelque chose en dessous de cette hauteur, cela sera considéré comme une marche et l'avatar envisagera de se déplacer vers le haut pour la franchir. | ||
+ | |- | ||
+ | |'''AvatarStepAngle''' | ||
+ | |Angle maximal de la surface de collision pour qu'elle soit considérée comme une marche. Par exemple, si elle est fixée à zéro, les surfaces de marche doivent être parfaitement verticales avant d'être considérées comme des surfaces de marche. La valeur typique est de 0,3f, ce qui permet une certaine variabilité des pas. | ||
+ | |- | ||
+ | |'''AvatarStepGroundFudge''' | ||
+ | | | ||
+ | |- | ||
+ | |'''AvatarApproachFactor''' | ||
+ | | | ||
+ | |- | ||
+ | |'''AvatarStepUpCorrectionFactor''' | ||
+ | | | ||
+ | |- | ||
+ | |'''AvatarStepForceFactor''' | ||
+ | | | ||
+ | |- | ||
+ | |'''AvatarStepSmoothingSteps''' | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
== Autres notes == | == Autres notes == |
Revision as of 03:16, 2 November 2024
Template:BulletSimContents |
BulletSim
BulletSim est un module pour OpenSimulator qui crée la physique du monde virtuel en utilisant le Moteur physique Bullet. Ce module fournit une physique de qualité ainsi qu'une performance physique des véhicules compatible avec Second Life.
Information sur le projet
BulletSim/Functionality dresse la liste des opérations physiques possibles, de leur état de mise en œuvre avec une note relative à leur utilisation. Ceci est particulièrement utile pour les opérations sur les véhicules.
Construction
Architecture de BulletSim
BSScene
Éléments sur le simulateur de pas (un système qui gère les étapes de la simulation physique). Événements de pas (Pre-Step-Event, Post-Step-Event).
Exigence pour contrôler les modifications du moteur physique avec un Taint-System (normale Taints, post-taints).
Système de journalisation détaillé.
Système du paramètres.
BSPhysObject
Classes enfants de BSPrim et BSCharacter.
Terrain
Contraintes
Implémentation de Bullet
BulletSim est une enveloppe pour le moteur physique Bullet.L'interface du monde virtuel adaptant BulletSim au moteur physique est décrite par la classe abstraite BSAPITemplate. Il existe deux instances de cette classe,BSAPIXNA
et BSAPIUnman
BSAPIUnman
contient la connexion à la DLL/SO non gérée qui est la version C++ du moteur physique Bullet. Les sources et les instructions de construction sont disponibles sur git://opensimulator.org/git/opensim-libs/trunk/unmanaged/BulletSim
.
BSAPIXNA
est la connexion à une version C# de Bullet dont les sources sont hébergées sur https://code.google.com/p/bullet-xna/
.
La sélection du moteur physique se fait au moment du démarrage de la région. Elle est spécifiée pour chaque simulateur avec les paramètres INI suivants :
[Startup] physics = BulletSim [BulletSim] BulletEngine = BulletUnmanaged ; Par défaut ; BulletEngine = BulletXNA ; décommenter cette ligne pour la version C# de Bullet
Interface gérée/non gérée
Liens
Architecture des Acteurs et leurs Rôles
Chaque objet physique BulletSim peut être associé à un nombre quelconque d'« acteurs ». Les acteurs s'enregistrent pour les événements de simulation (généralement appelés avant chaque étape de la simulation) et modifient les paramètres physiques de l'objet. Les acteurs actuellement implémentés sont les suivants :
- BSActorAvatarMove : contrôle les mouvements et les marches des avatars ;
- BSActorHover : implémente le survol vertical des objets et des avatars ;
- BSActorLockAxis : applique une contrainte aux objets physiques pour verrouiller un ou plusieurs mouvements angulaires ;
- BSActorMoveToTarget : déplace un objet physique vers un emplacement ;
- BSActorSetForce : applique une force continue à un objet physique ;
- BSActorSetTorque : applique un couple continu à un objet physique ;
- BSDynamic (le nom changera) : implémente le modèle de véhicule de SecondLife®.
Vehicules
Voir aussi la page archivée : Véhicules
Fonctions d'extension des scripts BulletSim
L'interface d'extension physique est utilisée par BulletSim pour implémenter de nombreuses nouvelles fonctions physiques. L'interface mod_invoke doit être activée pour que ces fonctions fonctionnent.
Avatar qui monte des escaliers
L'acteur du mouvement de l'avatar inclut des vérifications spéciales pour permettre aux avatars de se déplacer sur des objets en escalier (comme des marches). Le code vérifie les collisions à proximité des pieds de l'avatar et, s'il essaie d'avancer et non de voler, pousse l'avatar vers le haut pour passer au-dessus de l'objet. Il s'agit d'un algorithme différent de celui d'ODE, qui s'appuie sur la courbure de la capsule de l'avatar pour se déplacer sur des obstacles bas.
Sept paramètres INI permettent de contrôler les escaliers :
AvatarStepHeight | Hauteur maximale d'une marche. Si l'avatar entre en collision avec quelque chose en dessous de cette hauteur, cela sera considéré comme une marche et l'avatar envisagera de se déplacer vers le haut pour la franchir. |
AvatarStepAngle | Angle maximal de la surface de collision pour qu'elle soit considérée comme une marche. Par exemple, si elle est fixée à zéro, les surfaces de marche doivent être parfaitement verticales avant d'être considérées comme des surfaces de marche. La valeur typique est de 0,3f, ce qui permet une certaine variabilité des pas. |
AvatarStepGroundFudge | |
AvatarApproachFactor | |
AvatarStepUpCorrectionFactor | |
AvatarStepForceFactor | |
AvatarStepSmoothingSteps |