BulletSim/fr

From OpenSimulator

Jump to: navigation, search
Template:BulletSim

Contents

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

BulletSim/Véhicules

BulletSim/VehicleTuning

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.

BulletSim/ScriptFunctions

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 Petit facteur de correction soustrait du calcul de la position de la plante des pieds de l'avatar lors de la vérification si la collision est proche de ses pieds. Cette hauteur peut être légèrement élevée (au-dessus du sol), donc ce facteur permet de la comparer à une hauteur plus basse pour la marche. Cela peut empêcher que des petites bosses sur le sol soient considérées comme trop petites pour être une marche, ce qui pourrait amener le moteur à traiter la bosse comme un obstacle solide, empêchant ainsi l'avatar de se déplacer correctement.
AvatarApproachFactor Angle d'approche de la marche. Il s'agit des radians de l'angle formé entre l'avatar et la surface de la marche avec laquelle il entre en collision. Cela permet d'éviter de monter sur des objets lorsque l'on s'approche d'un angle trop grand. La valeur par défaut de 0,6 correspond à un angle d'approche de 45 degrés. En réglant cette valeur à 0.3, par exemple, l'avatar devra marcher presque directement sur la marche pour obtenir les actions de montée.
AvatarStepUpCorrectionFactor Facteur de multiplication pour changer la position de l'avatar afin de franchir la marche. La hauteur de la collision avec la marche est multipliée par ce facteur et ce nombre est ajouté à la coordonnée Z de l'avatar. Cela déplace l'avatar vers le haut par rapport à la marche. Si ce facteur est inférieur à zéro, AvatarStepHeight est utilisé.
AvatarStepForceFactor Facteur de force pour pousser l'avatar vers le haut afin de franchir la marche. Une force de poussée égale à la hauteur de la marche multipliée par la masse de l'avatar multipliée par ce facteur est appliquée à l'avatar. Ces deux derniers facteurs peuvent être utilisés en combinaison pour déplacer l'avatar lors d'une collision avec une marche.
AvatarStepSmoothingSteps Lorsqu'un avatar monte les marches, les collisions se succèdent au fur et à mesure que les marches sont heurtées et franchies. C'est le nombre de ticks du simulateur (environ 10 par seconde) pendant lesquels la montée des marches sera encore effectuée après que la dernière collision de marche ait été détectée. Cela permet d'adoucir un peu l'action.

Les valeurs par défaut sont :

[BulletSim]
    AvatarStepHeight = 0.6
    AvatarStepGroundFudge = 0.1
    AvatarStepApproachFactor = 0.6
    AvatarStepUpCorrectionFactor = 1.0
    AvatarStepForceFactor = 2.0
    AvatarStepSmoothingSteps = 1

Autres notes

Ajuster la hauteur de l'avatar

Depuis le 13 mai 2013, BulletSim utilise la forme de la capsule Bullet pour se rapprocher d'un avatar debout. L'une des particularités de la capsule est sa hauteur, qui n'est pas adaptée à ce qu'OpenSimulator attend. Pour y remédier, plusieurs paramètres d'ajustement sont disponibles pour corriger la hauteur de la capsule de l'avatar de sorte qu'un avatar semble être debout sur le sol plutôt que de flotter ou de s'y enfoncer.

Ces paramètres sont les suivants :

Variable INI Défaut Description
AvatarHeightMidFudge 0.0 Il s'agit d'un facteur de correction ajouté à la hauteur de 50 % de l'avatar (environ 1,87 mètre). Ce chiffre est ajouté à la hauteur totale, de sorte que l'ajustement de ce chiffre fait monter ou descendre l'ensemble de la capsule d'environ cette hauteur.
AvatarHeightLowFudge 0.0 Ce facteur est ajouté à l'extrémité inférieure de la capsule (hauteur de '0%' qui est d'environ 1,62 mètre). Ce nombre est ajusté proportionnellement entre la hauteur moyenne et la hauteur basse. Ajuster ce nombre modifie la taille de la capsule pour les formes petites.
AvatarHeightHighFudge 0.0 Cette fonction est similaire à AvatarHeightLowFudge, mais elle est appliquée à la partie supérieure de la hauteur (hauteur « 100 % », soit environ 2,12 mètres). Elle est également ajoutée proportionnellement à partir de la hauteur moyenne jusqu'à la grande hauteur.
Personal tools
General
About This Wiki