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

Blocs & props

DynamX permet d'ajouter des blocs et des props avec un modèle .obj. Voici un tutoriel complet pour l'ajout de ceux-ci en jeu.

Info

Un prop est un bloc soumis a la physique.

Warning

Il est fortement conseillé d'exporter les modèles via Blender. Les modèles exportés par exemple via BlockBench ne sont pas optimisés et peuvent faire lag.

Préparation du modèle

DynamX offre la possibiliter de créer automatiquement une boite de collision pour chaque object du fichier obj, cette boîte de collisions servira pour les collisions avec toutes les entités et les autres objets physiques.

Par exemple, si vous découpez votre modèle de cette manière (modèle de table) :

table

L'algorithme va créer 2 boites de collisions, une pour les pieds et une pour le haut de la table, pensez-y en créant votre modèle (et évitez également de mettre trop d'objects inutiles risquant d'alourdir le bloc/prop).

Exportation des modèles

Exportez le modèle , au format obj, accompagné du .mtl et des .png associés, puis placez les dans un dossier assets/dynamxmod/models/obj/nom_de_votre_bloc(ou_prop)/ de votre pack.

Configuration du bloc (ou prop)

  • Partie commune aux blocs et props

Info

Si vous voulez seulement créer un prop, vous devez d'abord créer le bloc correspondant, vous pourrez ensuite le retirer des creative tabs.

Créez un dossier blocks à la racine de votre pack puis créez-y un fichier block_votre_block.dynx.

Warning

Pour être reconnu, le nom du fichier doit commencer par block_, que ce soit pour faire un bloc et/ou un prop !

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 la liste des variables permettant de configurer un bloc.

Info

Le prop configuré à l'aide de ce bloc reprendra les valeurs configurées sur le bloc, sauf pour la creative tab qu'il faudra de nouveau configurer (sauf si vous gardez celle par défaut).

Propriétés obligatoires
Nom Type Description Exemple
Description Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Lore de l'item -
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
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
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
LightLevel Nombre décimal Luminosité du bloc, entre 0 et 15 0
Material Matériau Minecraft (parmis "AIR", "GRASS", "GROUND", "WOOD", "ROCK", "IRON", "ANVIL", "WATER", "LAVA", "LEAVES", "PLANTS", "VINE", "SPONGE", "CLOTH", "FIRE", "SAND", "CIRCUITS", "CARPET", "GLASS", "REDSTONE_LIGHT", "TNT", "CORAL", "ICE", "PACKED_ICE", "SNOW", "CRAFTED_SNOW", "CACTUS", "CLAY", "GOURD", "DRAGON_EGG", "PORTAL", "CAKE", "WEB", "PISTON", "BARRIER", "STRUCTURE_VOID") Matériau Minecraft du bloc ROCK
RenderDistanceSquared Nombre décimal Distance maximale à laquelle le block/prop est rendu, peut affecter les performances 4096
Rotate Vecteur comportant 3 axes (X,Y,Z) Modifie la rotation du bloc (ne marche pas sur les props) 0 0 0
Scale Vecteur comportant 3 axes (X,Y,Z) Modifie la taille du modèle 1 1 1
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. -
Translate Vecteur comportant 3 axes (X,Y,Z) Modifie la position du modèle 0 0 0
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. false

Info

La traduction du nom du bloc/prop est automatiquement créée avec la valeur de "Name"

  • Configuration du prop

Ajoutez-le code suivant dans le fichier du bloc :

Prop_NomDuProp{
    //Configuration du prop ici
}

Info

Le prop est une sous-propriété du bloc dont le nom doit obligatoirement commencer par "Prop".

Voici la liste des variables permettant de configurer un prop.

Info

Les propriétés déjà renseignées dans le bloc sont optionnelles, le prop utilisera la config du bloc (sauf pour la creative tab qu'il faut également configurer dans le prop si vous ne voulez pas utiliser la creative tab par défaut).

Propriétés obligatoires
Nom Type Description Exemple
CenterOfGravityOffset Vecteur comportant 3 axes (X,Y,Z) Centre de gravité du prop (par défaut : position de l'origine du modèle dans Blender). La position est au format Minecraft. A ajuster à l'aide de l'option de debug associée en jeu. -
Description Chaine de caractères (Peut être utilisé pour donner un nom ou une description) Lore de l'item -
EmptyMass Nombre entier Masse du prop (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
Bounciness Nombre décimal Intensité de l'effet de rebond du props (comme une balle de foot), entre 0 et 1. 0
ContinuousCollisionDetection Valeur pouvant soit activer (True) ou désactiver (False) une propriété Active (true) ou non (false) la détection de collsion continue (Très utile pour éviter que les petits objets tombent à travers le sol) false
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
DespawnTime Nombre décimal Définit le temps de disparition de l'objet en question en ticks (Conseillée pour éviter les lags) "-1" (disabled)
Friction Nombre décimal Modifie la friction de l'objet 0.5
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
Margin Nombre décimal Modifie la marge de détection de collsion d'un objet (Nous vous déconseillons très fortement de modifier cette propriété) 0.04
RenderDistanceSquared Nombre décimal Distance maximale à laquelle le block/prop est rendu, peut affecter les performances 4096
Scale Vecteur comportant 3 axes (X,Y,Z) Modifie la taille du modèle 1 1 1
SpawnOffset Vecteur comportant 3 axes (X,Y,Z) Position à laquelle le prop est placé en utilisant son item 0 0.65 0
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. -
Translate Vecteur comportant 3 axes (X,Y,Z) Modifie la position du modèle 0 0 0
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. false
  • Configuration des variantes de textures

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

  • Fin de la configuration

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

Conclusion

Voilà, vous avez mis votre bloc et/ou prop en jeu, si vous avez d'autres questions, rendez-vous sur le Discord de DynamX ! Vous pouvez aussi ajouter des lumières fonctionnelles sur votre bloc.