[Tutoriel] Sols coulissants (avancé) |
Pamdecp « Censeur » 1595198580000
| 9 | ||
Bonjour à tous, Je vais tenter de vous expliquer de manière claire et intelligible comment créer des sols qui se déplacent de manière uniquement horizontale, d'avant en arrière (et dans une moindre mesure verticale, de haut en bas). Avertissement: ce mécanisme utilise plusieurs types de joints. Si vous êtes débutant ou n'êtes familier avec aucun d'eux, je vous conseille fortement de d'abord passer par ce topic ainsi que ce topic pour en apprendre un peu plus sur les joints en général. Voici ce dont vous avez besoin pour réaliser le mécanisme:
IMPORTANT: Pour que le mécanisme fonctionne de manière optimale, veillez à aligner les sols (pour qu'ils aient tous la même valeur y). Voici donc ce à quoi devrait ressembler votre code XML (à peu de choses près): <C><P /><Z><S><S L="800" H="90" X="400" Y="390" T="0" P="0,0,0.3,0.2,0,0,0,0" /><S L="80" o="aafff" H="20" X="400" Y="240" T="12" P="1,999999,0.3,0.2,0,1,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="10" o="0" X="600" Y="240" T="12" H="10" /><S c="4" L="10" o="ffffff" X="660" H="10" Y="240" T="12" P="1,999999,0,0,0,0,0,0" /></S><D /><O /></Z></C> Rajoutons les balises <L> et </L> aux bons emplacements: <C><P /><Z><S><S L="800" H="90" X="400" Y="390" T="0" P="0,0,0.3,0.2,0,0,0,0" /><S L="80" o="aafff" H="20" X="400" Y="240" T="12" P="1,999999,0.3,0.2,0,1,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="10" o="0" X="600" Y="240" T="12" H="10" /><S c="4" L="10" o="ffffff" X="660" H="10" Y="240" T="12" P="1,999999,0,0,0,0,0,0" /></S><D /><O /><L></L></Z></C> Afin d'initier le mouvement de notre sol coulissant, il va nous falloir créer une rotation grâce aux joints JR. Voici la ligne de code à insérer: <JR P1="x,y" MV="Infinity, k" M1="z" /> x,y = coordonnées du centre de rotation (qui correspond aussi aux coordonnées de notre sol noir). k = vitesse de rotation, à ajuster selon vos préférences (plus le nombre est grand plus la rotation est rapide). z = la valeur z du sol blanc. Après avoir remplacé les lettres par des valeurs, cela nous donne: <C><P /><Z><S><S L="800" H="90" X="400" Y="390" T="0" P="0,0,0.3,0.2,0,0,0,0" /><S L="80" o="aafff" H="20" X="400" Y="240" T="12" P="1,999999,0.3,0.2,0,1,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="10" o="0" X="600" Y="240" T="12" H="10" /><S c="4" L="10" o="ffffff" X="660" H="10" Y="240" T="12" P="1,999999,0,0,0,0,0,0" /></S><D /><O /><L><JR P1="600,240" MV="Infinity, 1" M1="3" /></L></Z></C> Vous devriez à présent voir votre sol orbiter autour du centre de rotation que vous avez défini. Nous allons maintenant lier notre sol blanc à notre sol bleu afin de lui transmettre le mouvement, grâce aux joints JD: <JD M2="z2" M1="z1" /> z1 = valeur z d'un des deux sols que vous voulez lier. z2 = valeur z de l'autre sol. Ce qui après modification donne: <C><P /><Z><S><S L="800" H="90" X="400" Y="390" T="0" P="0,0,0.3,0.2,0,0,0,0" /><S L="80" o="aafff" H="20" X="400" Y="240" T="12" P="1,999999,0.3,0.2,0,1,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="10" o="0" X="600" Y="240" T="12" H="10" /><S c="4" L="10" o="ffffff" X="660" H="10" Y="240" T="12" P="1,999999,0,0,0,0,0,0" /></S><D /><O /><L><JR P1="600,240" MV="Infinity, 1" M1="3" /><JD M2="1" M1="3" /></L></Z></C> A présent vous pouvez avoir un aperçu de ce à quoi ressemblera le mouvement de votre sol coulissant. Cependant il peut toujours bouger dans n'importe quelle direction. Nous souhaitons qu'il n'aille que sur la gauche ou la droite (axe horizontal/horizontal axis). Pour ce faire, nous allons utiliser les joints JP et ajouter cette ligne: <JP AXIS="h,v" M1="z" /> h,v = correspondent respectivement aux axes horizontal et vertical. Ils peuvent théoriquement avoir trois valeurs (-1, 0, 1), mais il nous en faudra seulement deux (0 et 1). Attribuer 0 à un axe permet de bloquer le mouvement du sol sur ce même axe, parallèlement lui attribuer 1 autorisera le sol à se déplacer sur cet axe. z = valeur z de votre sol (dans l'exemple le sol bleu). Comme nous souhaitons un mouvement UNIQUEMENT horizontal, il faudra donc attribuer la valeur 1 à h et la valeur 0 à v.(1) Ce qui nous donne ce code: <C><P /><Z><S><S L="800" H="90" X="400" Y="390" T="0" P="0,0,0.3,0.2,0,0,0,0" /><S L="80" o="aafff" H="20" X="400" Y="240" T="12" P="1,999999,0.3,0.2,0,1,0,0" /><S P="0,0,0.3,0.2,0,0,0,0" L="10" o="0" X="600" Y="240" T="12" H="10" /><S c="4" L="10" o="ffffff" X="660" H="10" Y="240" T="12" P="1,999999,0,0,0,0,0,0" /></S><D /><O /><L><JR P1="600,240" MV="Infinity, 1" M1="3" /><JD M2="1" M1="3" /><JP AXIS="1,0" M1="1" /></L></Z></C> (1) Le même mécanisme est tout à fait réalisable avec un mouvement uniquement vertical, il faudra veiller à inverser les valeur h et v et à aligner les sols à la verticale (pour qu'ils aient tous la même valeur x). Si tout s'est bien passé, vous devriez désormais être l'heureux propriétaire d'un sol coulissant, félicitations ! Exemple de carte utilisant les sols coulissants horizontaux: @3919659 Exemple de carte utilisant les sols coulissants verticaux: @2555353 Dernière modification le 1596731580000 |
Pamdecp « Censeur » 1596731640000
| 3 | ||
Ajout de cartes exemple ! Exemple de carte utilisant les sols coulissants horizontaux: @3919659 Exemple de carte utilisant les sols coulissants verticaux: @2555353 |
1 | ||
C'est un tutoriel sympathique, il explique bien ce mécanisme souvent utilisé. A noter que ce mécanisme reste une base pour des mouvements plus complexes. Quelques exemples : pendule mécanique (infinie), sol qui oscille ou encore un sol qui décrit le mouvement d'une vague (d'une certaine façon), etc... Mais ça reste un très bon sujet, bravo ! Dernière modification le 1597688040000 |
Pamdecp « Censeur » 1597693080000
| 1 | ||
Oui, je me suis aussi penché sur les mécanismes qui en découlent mais comme tu l'as dit, celui-ci sert de base aux autres. J'essayerai tout de même de faire d'autres tutoriels qui l'utilisent si le besoin s'en ressent. |