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) :
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 !