Aller au contenu
We are updating the documentation, some information may be outdated or incomplete

Configuration de base

Cette page vous guidera dans la création de votre véhicule, allant de la voiture à l'hélicoptère, en passant par les deux roues, remorques et bateaux.

Prérequis

Vous devez avoir exporté les modèles obj.

Configuration du véhicule

Que vous souhaitez créer une voiture, un deux-roues, une remorque, un bateau ou un hélicoptère, cette partie est commune à tous les types de véhicules.

Créez un dossier portant le nom de votre véhicule dans votre pack, ensuite créez-y un fichier avec un des noms suivants, suivant ce que vous voulez ajouter :

Type de véhicule Préfixe Exemple
Voiture, camion ou deux-roues vehicle_ vehicle_votre_vehicule.dynx
Remorque trailer_ trailer_votre_vehicule.dynx
Bateau boat_ boat_votre_vehicule.dynx
Hélicoptère helicopter_ helicopter_votre_vehicule.dynx

Warning

C'est le préfixe qui détermine le type de votre véhicule ! Si vous mettez quelque chose de différent, il sera ignoré.

Danger

Faites attention aux deux formats de positions utilisés : dans Blender l'axe vertical est l'axe Z, alors que dans Minecraft c'est l'axe Y, de plus l'axe Z de Minecraft est dans le sens inverse (coordonnées multipliées par -1). Nous préciserons quelle format utiliser à chaque fois que c'est nécessaire.

Format Blender : X Y Z. Format Minecraft : X Z -Y.

Voici les différentes propriétés à renseigner :

Propriétés obligatoires
Nom Type Description Exemple
CenterOfGravityOffset Vecteur comportant 3 axes (X,Y,Z) Centre de gravité du véhicule (par défaut : position de l'origine du chassis dans Blender). La position est au format Minecraft. -
Description Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Lore de l'item -
DragCoefficient Nombre décimal Coefficient de frottements avec l'air du véhicule -
EmptyMass Nombre entier Masse du véhicule (en kg) -
Model ResourceLocation : chemin vers une ressource au format modid:dossier/ressourse. Par exemple avec dynamxmod:model1/model1.obj, le modèle devra être dans assets/dynamxmod/models/model1/model1.obj Chemin du modèle obj obj/name_of_vehicle/name_of_model.obj
Name Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Nom de l'objet -
Propriétés facultatives
Nom Type Description Valeur par défaut
AngularDamping Nombre décimal Atténuation de la vélocité angulaire (résistance de l'air), entre 0 et 1. 0.9
CreativeTabName, CreativeTab, TabName Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Crée une nouvelle page dans le menu creatif contenant l'item dans lequel cette propriété a été renseignée, avec le nom défini. None cachera l'item du menu créatif. CreativeTab of DynamX
DefaultEngine Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Nom du moteur par défaut, voir plus loin. Si non spécifié, le véhicule sera une remorque (voir "Configuration de la remorque") -
DefaultSounds Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Nom des sons par défaut, voir plus loin -
DefaultZoomLevel Nombre entier Niveau de zoom par défaut en vue à la troisième personne en montant dans le véhicule 4
IconText Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Texte dessiné sur l'icône de l'item dans les menus Block for blocks, Prop for props
Item3DRenderLocation Type de rendu de l'item (NONE ou WORLD ou ALL) Voir ci-dessous all
ItemRotate Vecteur comportant 3 axes (X,Y,Z) Modifie la rotation de l'item 0 0 0
ItemScale Nombre décimal Scale du rendu de l'item 0.9
ItemTranslate Vecteur comportant 3 axes (X,Y,Z) Modifie la translation de l'item 0 0 0
LinearDamping Nombre décimal Atténuation de la vélocité linéaire (résistance de l'air), entre 0 et 1. 0.5
MaxVehicleSpeed Nombre décimal Vitesse maximale atteignable par le véhicule (en km/h) infinite
PlayerStandOnTop Indique si le joueur peut rester debout sur un véhicule. ALWAYS leur permettra de toujours rester debout (conseillé pour les bus et bateaux par exemple), PROGRESSIVE leur permettra de rester debout sous 30 km/h (conseillé pour les voitures), et NEVER ne les laissera pas rester debouts sur le véhicule. Définit si les joueurs peuvent rester debout sur ce véhicule. ALWAYS
ScaleModifier Vecteur comportant 3 axes (X,Y,Z) Permet de modifier la taille du modèle, tous les autres paramètres tels que les collisions, la position (mais pas la taille) des roues et du volant seront automatiquement recalculés. La scale de la roue doit être configurée dans la config des roues directement, voir plus bas. 1 1 1
ShapeYOffset Nombre décimal Offset vertical de la boîte de collision de la voiture (influe sur le centre de gravité) -
Textures Liste de chaine de caractères acceptants des valeurs en 2 par 2 (Exemple : Valeur1 Valeur2, Valeur3 Valeur4, ...) Déprécié. Voir configuration du multi-textures. -
UseComplexCollisions Valeur pouvant soit activer (True) ou désactiver (False) une propriété Permet de désactiver la box de collision prenant la forme du modèle 3D : en le mettant sur false, les boites de collisions avec le joueur seront utilisées pour les collisions avec les entités physiques et le terrain. En laissant sur true, le modèle 3D est utilisé pour les collisions, ce qui est plus coûteux en performances. true

Info

La traduction du nom du véhicule est automatiquement créée avec la valeur de "Name".

Pour modifier le rendu de l'item, rendez-vous ici : configuration des items.

Configuration des boîtes collisions :

Ces boites de collisions sont utilisées pour la collision avec les autres véhicules si l'option UseComplexCollisions est désactivée. Dans tous les cas elles sont utilisées pour les collisions avec les joueurs et il faut obligatoirement les configurer.

Découpez votre modèles en plusieurs cubes représentatifs des collisions à faire avec les joueurs, puis pour chaque cube, ajoutez à la configuration du véhicule :

Shape_NomDuCube{
    Position: x y z
    Scale: x y z
}

Position est la position du cube, et Scale sa taille. Les coordonnées sont au format blender ! Attention : NomDuCube doit être unique.

Voici, par exemple, ce que ça donne avec le trophy truck (trois cubes de collision) :

collision_shapes

Info

La configuration de ces collisions sera peut-être simplifiée dans le futur.

Configuration des roues :

Pour chaque roue présente sur le véhicule (vous pouvez en mettre autant que vous voulez), ajoutez à la configuration du véhicule :

Wheel_NomDeLaRoue{
    AttachedWheel: VotrePack.roue_par_defaut
    IsRight: false
    Position: x y z
    IsSteerable: True
    MaxTurn: 0.7
    DrivingWheel: False
}

Voici toutes les propriétés possibles :

Propriétés obligatoires
Nom Type Description Exemple
AttachedWheel Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Nom de la roue par défaut, voir plus loin -
DrivingWheel Valeur pouvant soit activer (True) ou désactiver (False) une propriété Si la roue est motrice (true) ou non (false) -
IsRight Valeur pouvant soit activer (True) ou désactiver (False) une propriété Si la roue est à droite (true), ou à gauche (false) (Propritété nommée "isRight" sur les versions avant la 2.11.2 incluse) -
IsSteerable Valeur pouvant soit activer (True) ou désactiver (False) une propriété Si la roue peut tourner avec le volant (true) ou non (false) -
MaxTurn Nombre décimal Valeur maximale de braquage (à quel point vous pouvez tourner la roue) -
Position Vecteur au format blender (X,Z,Y*-1) Position de l'objet -
Propriétés facultatives
Nom Type Description Valeur par défaut
DependsOn Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Inutilisé -
HandBrakingWheel Valeur pouvant soit activer (True) ou désactiver (False) une propriété Si la roue est freine lorsque le frein à main est activé (true), ou si elle peut tourner librement (false) (facultatif, si aucune roue ne freine, celles non motrices freineront automatiquement) -
MudGuard Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Nom de l'objet correspondant au garde-boue, dans le modèle du véhicule -
RotationPoint Vecteur au format blender (X,Z,Y*-1) Point de rotation de la roue lorsque l'on tourne le volant -
Scale Vecteur avec les axes Y et Z inversés (X,Z,Y) Taille de l'objet 1 1 1
SuspensionAxis Quaternion (X,Y,Z,W) Rotation de l'axe des suspensions, par rapport à l'axe vertical -

Configuration des sièges:

Pour chaque siège présent sur le véhicule, ajoutez à la configuration du véhicule :

Seat_NomDuSiege{
    Position: x y z
    Driver: True
}

Où Position est la position du siège au format Blender, et Driver indique si c'est le siège conducteur (true), ou non (false).

Voici toutes les propriétés possibles :

Propriétés obligatoires
Nom Type Description Exemple
Driver Valeur pouvant soit activer (True) ou désactiver (False) une propriété Indique si c'est le siège conducteur (true), ou non (false) -
Position Vecteur au format blender (X,Z,Y*-1) Position de l'objet -
Propriétés facultatives
Nom Type Description Valeur par défaut
CameraPositionY Nombre décimal Position verticale de la caméra à la troisième personne 0
CameraRotation Nombre décimal Rotation horizontale de la caméra, en degrés 0
DependsOn Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Inutilisé -
LinkedDoorPart Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Nom de la PartDoor liée à ce siège -
MaxPitch Nombre décimal Rotation verticale maximale de la caméra, en degrés -105
MaxYaw Nombre décimal Rotation horizontale maximale de la caméra, en degrés -105
MinPitch Nombre décimal Rotation verticale minimale de la caméra, en degrés 105
MinYaw Nombre décimal Rotation horizontale minimale de la caméra, en degrés 105
PlayerPosition Position du joueur, LYING : allongé, SITTING = assis, STANDING : debout Position du joueur sur le siège SITTING
PlayerSize Vecteur comportant 3 axes (X,Y,Z) Taille du joueur sur le siège (1 1 1 correspond à sa taille réelle) 1 1 1
Rotation Quaternion (X,Y,Z,W) Rotation du siège 1 0 0 0
Scale Vecteur avec les axes Y et Z inversés (X,Z,Y) Taille de l'objet 1 1 1
ShouldLimitFieldOfView Valeur pouvant soit activer (True) ou désactiver (False) une propriété Définit si le joueur peut tourner la caméra tout autour de lui ou non true

Configuration des variantes de textures :

Cette partie est expliquée dans configuration du multi-textures.

Configuration de points de friction avec l'air :

Vous pouvez configurer des points où seront appliquées des forces de frictions avec l'air, permettant de fortement améliorer la tenue de route des vos véhicules, contre un temps de configuration plus long.

Ces points se configurent "au jugé", mais le mieux est d'en placer un vers l'avant du véhicule, centré entre les deux roues.

Exemple de configuration, pour le trophy truck du pack de base :

ForcePointNom{
    Position: 0 -0.89534 0
    Intensity: 0.4 1 0.4
}

Voici toutes les propriétés possibles :

Propriétés obligatoires
Nom Type Description Exemple
Intensity Vecteur comportant 3 axes (X,Y,Z) Facteur de la force (Force = Intensity * Vitesse du véhicule
Position Vecteur au format blender (X,Z,Y*-1) Position du point de friction -

"Nom" peut être remplacé par n'importe quel nom (vous pouvez ainsi avoir plusieurs points de friction). Ces points sont visibles dans le debug "Friction points", vous verrez aussi les forces appliquées.

Autres configurations :

Configuration d'une voiture ou d'une remorque

Rendez-vous ici ! Cette partie est également valable pour les motos et autres deux-roues.

Configuration d'un bateau

Rendez-vous ici !

Configuration d'un hélicoptère

Rendez-vous ici !

Configuration d'un avion

Malheureusement, ce n'est pas encore possible :'(.

Conclusion

Bravo, vous avez mis votre véhicule en jeu, si vous avez d'autres questions, rendez-vous sur le Discord de DynamX !