×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Éditeur de cartes
  • /
  • [Tutoriel] Sols coulissants (avancé)
[Tutoriel] Sols coulissants (avancé)
Pamdecp
« Censeur »
1595198580000
    • Pamdecp#0020
    • Profil
    • Derniers messages
    • Tribu
#1
  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:
https://i.imgur.com/hhBseLH.png

  • Le sol 1 est votre sol coulissant, il doit donc être dynamique. Il doit aussi avoir une rotation fixe. Je préconise de lui donner une masse de 999999 afin que le mécanisme soit plus résistant.
  • Le sol 2 est facultatif (mais fortement recommandé si vous n'avez pas de soucis de limite de sols). Il vous permet de repérer plus facilement le centre de rotation du mécanisme que nous allons paramétrer plus tard. Veillez à retirer la collision souris/objets.
  • Le sol 3 est celui qui tournera autour du centre de rotation. Il doit être dynamique mais ne doit pas avoir de rotation fixe. Veillez à retirer la collision souris/objets. Je recommande aussi de lui attribuer une masse de 999999.

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
https://i.imgur.com/RUpptay.gif


Exemple de carte utilisant les sols coulissants verticaux: @2555353
https://i.imgur.com/ifDf9or.gif

Dernière modification le 1596731580000
Pamdecp
« Censeur »
1596731640000
    • Pamdecp#0020
    • Profil
    • Derniers messages
    • Tribu
#2
  3
Ajout de cartes exemple !

Exemple de carte utilisant les sols coulissants horizontaux: @3919659
https://i.imgur.com/RUpptay.gif


Exemple de carte utilisant les sols coulissants verticaux: @2555353
https://i.imgur.com/ifDf9or.gif
Sekui
« Censeur »
1597687680000
    • Sekui#0000
    • Profil
    • Derniers messages
    • Tribu
#3
  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
    • Pamdecp#0020
    • Profil
    • Derniers messages
    • Tribu
#4
  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.
  • Forums
  • /
  • Transformice
  • /
  • Éditeur de cartes
  • /
  • [Tutoriel] Sols coulissants (avancé)
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27