Tutoriel/Liens physiques

De WikiPlee.

Version du 12 mai 2009 à 15:03 par 127.0.0.1 (discuter)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Vidéo
Image:Tutoriel-Liens_Physiques.png
Voir sur Blip.tv Télécharger

Un lien physique est une contrainte appliquée entre deux objets par le moteur physique. Cela permet de modéliser, par exemple, la présence d'une corde, d'un élastique ou d'un ressort entre les objets.

Cette page décrit en détail la création d'une plate-forme attachée au plafond par un lien de comportement élastique. Lorsque que Plee, ou un autre objet, montera sur la plateforme, celle-ci descendra légèrement en tendant l'élastique. Puis, lorsque Plee descendra, l'élastique va tirer la plate-forme et celle-ci va osciller.

La première partie de ce tutoriel décrit la création de la plate-forme et de son point d'ancrage. La deuxième partie présente la construction du lien et son application aux objets susnommés. Enfin, la troisième et dernière partie, des décorations sont ajoutée pour concrétiser la présence du lien auprès du joueur.

Sommaire

[modifier] Création de la plateforme et du point d'ancrage

[modifier] Création de la plateforme

Le niveau initial, avant l'ajout de la plate-forme, du lien et des décorations.
Choix de la classe de l'objet. Ici, base_train.
Paramétrage d'un objet. Ici, la plateforme.

Le premier objet créé est la plate-forme. Celle-ci doit transporter les objets qui seront posés dessus. Par conséquent, le choix du type base_train, listé dans la catégorie platform (image choix de la classe), semble adéquat.

Plusieurs champs courants de la plate-forme peuvent être définis (image paramétrage de la plateforme). Le champ animation précise quel fichier utiliser pour son affichage. De plus, le champ top_side_is_active doit être mis à vrai afin que les collisions sur le côté haut de la plate-forme soient prises en compte.

Dans la mesure où la plate-forme est un objet qui se déplacera et auquel seront appliquées des forces (par l'élastique), il est nécessaire de décocher la case fixed (en dessous de la liste des champs) et de donner au champ mass une valeur différente de +infini, afin que le lien affecte la plateforme. En effet, l'application d'une force sur un objet de masse infinie est sans conséquence. La masse choisie pour cet exemple est de 200 kg.

Enfin, il faut nommer la plate-forme via l'entrée id, à côté de la case fixed, de manière à pouvoir l'identifier lors de la création du lien. L'identifiant choisi pour cet exemple est plateforme_avec_elastique.

[modifier] Création du point d'attache

N'importe quel autre objet que la plate-forme peut servir de point d'attache. Néanmoins, la force de l'élastique est toujours appliquée au centre de masse de l'objet, ce qui peut être contraignant pour le placement de la plate-forme (elle tombe en étant centrée par rapport au point d'ancrage). Par conséquent, la solution la plus confortable est d'utiliser un objet dédié à être le point d'ancrage.

L'objet utilisé est de type reference_item, listé dans la catégorie entity. Il sera placé dans le plafond, au dessus de la plate-forme. Ce type d'objet est le plus simple de tous ; il est utilisé principalement en guise de point de repère.

Tout comme pour la plate-forme, il faut donner un nom à l'objet via l'entrée id, pour pouvoir l'identifier lors de la création du lien. Ici, l'identifiant ancre_plateforme_avec_elastique est choisi. Dans la mesure où cette ancre est destinée à être immobile, la case fixed reste cochée.

[modifier] Création du lien

Une fois que la plate-forme et son point d'attache sont crées, il ne reste qu'a construire le lien. Celui ci-n'est pas construit directement dans l'éditeur de niveaux, c'est un objet intermédiaire qui se chargera de le construire lors du chargement du niveau. Cet objet est de type link_creator, listé dans la catégorie link.

Cet objet n'a pour but que de créer le lien lors du lancement du jeu. Une fois cette tâche effectuée, il s'auto-détruira. Les champs de la classe base_item n'ont, par conséquent, aucun impact. En particulier, cet objet peut être placé n'importe où dans le niveau. En revanche, les champs spécifiques à la classe link_creator définiront le comportement du lien.

Afin d'avoir un comportement élastique, le champ length.minimal doit garder la valeur 0 (valeur par défaut). C'est la distance en dessous de laquelle les objets sont considérés comme trop proches, entrainant l'action repoussante du lien (ça n'arrivera jamais avec la valeur donnée ici). Le champ length.maximal doit en revanche être modifié. Ici, la valeur choisie est 200 unités. C'est la distance au delà de laquelle les objets sont considérés comme trop éloignés. Le lien appliquera dans ce cas la force adéquate afin de les rapprocher.

Le champ strength spécifie la force à appliquer pour rapprocher les objets. La valeur 2 000 000 est donnée ici. Cela peut sembler beaucoup, mais dans la mesure où toute force appliquée à un objet est divisée par sa masse pour être donnée sous forme d'accélération, cette valeur doit être d'autant plus grande que la masse des objets est grande.

Enfin les champs first_item et end_item font référence aux deux objets concernés par le lien créé. Ils sont paramétrés respectivement avec les valeurs ancre_plateforme_avec_elastique et plateforme_avec_elastique, identifiants du point d'ancrage et de la plateforme.

[modifier] Ajout de décorations

Le niveau final, après l'ajout de la plateforme, du lien et des décorations.

Les actions effectuées jusqu'ici suffisent à obtenir le comportement élastique souhaité sur la plate-forme. Néanmoins, dans la mesure où les liens physiques n'ont pas de représentation visuelle, le comportement de la plateforme ne sera pas intuitif pour le joueur.

Afin de concrétiser la présence du lien, il est possible d'ajouter des éléments décoratifs. Pour accomplir cette tâche, la solution choisie dans ce tutoriel est d'utiliser deux objets de type continuous_link_visual de la catégorie decoration.

Cet objet crée une image qui sera en permanence étirée entre un point d'un objet donné et un point d'un autre objet. La position de l'image étant constamment mise à jour, la position du continuous_link_visual dans l'éditeur de niveaux n'a aucune importance.

Le premier de ces objets est paramétré pour s'étirer entre l'ancre et le milieu du côté gauche de la plate-forme. L'ancre est indiquée via le champ start_item, la plate-forme via end_item. La position sur celle-ci est donné dans les champs end_origin.x pour l'horizontale et end_origin.y pour la verticale. Ils sont mis respectivement à left et middle pour avoir le résultat décrit ci-dessus.

D'une manière similaire, la seconde décoration est paramétrée pour s'étirer entre l'ancre et le milieu du coté droit de la plate-forme.

Le résultat, tel que dans l'éditeur de niveaux, est illustré par l'image ci-contre. Dans le jeu, la plate-forme pend au plafond, d'une manière similaire à l'image 1. Lorsque Plee monte sur la plate-forme, celle-ci descend. Le résultat ressemble à l'image 2. Lorsqu'il descend, l'élastique ramene la plateforme à sa position d'origine.

Liste des Tutoriels (m)
Liens physiques · Création d'une animation · Script Scheme