SourceEngine Les prises

  • Initiateur de la discussion
  • Administration
Seb

Seb

El Dictator
Membre du Staff
Messages
1 875
Score réaction
454
Points
370
Ce tutorial réalisé entièrement par The_Mapouze et provient des archives de mapping-area et modding-area.
Les archives sont anciennes, certains tutoriels peuvent ne plus correspondre aux dernière versions.


-

Salut à tous !

Dans ce petit tuto très simple et très rapide à réaliser, je vais vous expliquez "Comment faire une prise branchable-débranchable pour activer des évenements plus ou moins fourbes".

L'avertissement de l''alchimiste
Attention ! Ce tuto est relativement long à réaliser et demande une grande concentration pour ne pas s'emmeler les pinceaux. Attention aux impatients.


On va commencer par placer notre prise ! Ou du moins, le couple.

Placez 2 entités :
  • Un prop_static avec le model "models/props_lab/tpplugholder_single.mdl"
  • Un prop_dynamic avec le model "models/props_lab/tpplug.mdl"

tuto_physic_tpplug01.JPG



Si vous regardez bien, la prise male, étant censée pouvoir bouger librement, est un prop_dynamic. Allez dans ses propriétés, et changez :

  • Name : Ma_prise (Plug01dans l''exemple)
  • Parent : Ma_prise_partie_physique (Plug_physicpart dans l''exemple)

tuto_physic_tpplug02.JPG



Je dois vous prévenir qu'en plaçant un Parent tout de suite je prend de l''avance sur le tuto.
Comme votre prise ne peut pas bouger, on va l''attacher a un objet qui lui peut bouger !

Entourez votre prise avec un cube en no draw, puis, Tie to Entity -> Func_physbox .
Votre cube va donc réagir à la physique et embarquer la prise dans ses mouvements.
(laissez quand même apparaître la prise !)

Pour ce faire, Allez dans les propriétés de votre func_physbox, et mettez :
  • Name : Ma_prise_partie_physique (Plug_physicpart dans l''exemple)

tuto_physic_tpplug03.JPG



Voila ! On a l'illusion que votre prise réagit avec la physique alors qu'il n'en est rien.

Comme toutes prises qui se respecte, on va rajouter un cable au bout de notre PM.
(A partie de maintenant, Prise male = PM , Prise femelle = PF).

Placez un Move_rope au bout de la PM.
Allez dans les propriétés et mettez :
  • Name : ma_corde01 (rope_plug01 dans l'exemple)
  • Parent : Ma_prise (Plug01dans l'exemple)
  • Next Keyframe : ma_corde02 (rope_plug02 dans l'exemple)
  • Slack : 64
  • Width : 1
  • Collide with World : YES

L'avertissement de l''alchimiste
Attention ! N''oubliez pas de bien remettre la prise dans le func_physbox ! Vous allez avoir un drole de rendu sinon.


Maintenant, placez un Keyframe_rope, non loins de la PF, mais de manière à quand même laisser un peu de liberté de mouvement à la PM. Configurez le ainsi :
  • Name : ma_corde02 (rope_plug02 dans l''exemple)
  • Collide with World : Yes

tuto_physic_tpplug05.JPG



Voila ! Notre PM a un cable qui la relie au mur, comme ça, elle ne pourra pas se sauver à l''autre bout du niveau... à moins que votre esprit malsain prevoit justement un pêche magique dans un lac pour la retrouver..

Maintenant, il ne reste plus qu'à faire le script pour simuler le branchement de cette fichue prise.

Devant votre PF, placez un brush cubique, texturé en Tools/toolstrigger , de 14x14x14 inchs.

tuto_physic_tpplug06.JPG



Une fois fait, sélectionnez le --> Tie to Entity -> trigger_teleport .
Laissez votre construction de côté et ajoutez :
  • Un Info_target
  • Un Filter_activator_name
  • Un logic_relay

tuto_physic_tpplug07.JPG



Dans les propriétés du Info_target, ajoutez :
  • Name : Destination_de_la_prise (Plug_destination dans l''exemple)

Placez le juste en face de la PF, pointé vers cette dernière, avec 3 inchs d'espace.


L'explication de l''alchimiste
C'est dans cette position, à cet endroit que sera votre PM une fois branché. C'est donc très important. Le centre du info_target indique la destination du centre de votre PM.


tuto_physic_tpplug08.JPG



Une fois fait, allez dans les propriétés de votre filter_activator_name et ajoutez :
  • Name : Nom_de_mon_filtre (Filter_plug dans l'exemple)
  • Filter name : Ma_prise (Plug01 dans l'exemple)

Pour le logic_relay, attribuez lui juste un nom ; allez donc dans ses propriétés et nommez le :
  • Name : Logic_evenement_activation (Plug_event_enable dans l'exemple)

tuto_physic_plug09.JPG



Ouf ! Je me permet de faire une parenthèse pour vous dire qu''on en est à la moitié de mon petit tuto

Une fois tout ceci de fait, allez dans les propriétés de votre trigger_teleport :
  • Name : Mon_teleporteur_de_prise (plug_telport dans l'exemple)
  • Filter name : Nom_de_mon_filtre (Filter_plug dans l'exemple)
  • Remote destination : Destination_de_la_prise (Plug_destination dans l''exemple)

Et dans Flags, cochez Physic Objects et Décochez Clients

tuto_physic_tpplug10.JPG



L'explication de l'alchimiste
Théoriquement, quand votre PM, et seulement votre PM, passera dans le trigger_teleport, c''est à dire, devant la PF, elle sera branchée aussitôt, comme si elle était attirée par cette dernière. Cependant, elle tombe. Il faut donc paramétrer quelque trucs supplémentaire.


Allez dans les output de votre Trigger_teleport, et mettez :
  • On start Touch / Logic_evenement_activation / Trigger / 0.00

tuto_physic_tpplug12.JPG



Ensuite, dans les Outputs de votre Logic_relay, ajoutez :
  • On trigger / Ma_prise_partie_physique / Disable motion / 0.00

tuto_physic_tpplug13.JPG



C'est un peu léger vous ne trouvez pas ? Quand on branche une prise, il y a toujours un truc sympa qui se passe. Pourquoi ne pas allumer une lumière ?

Placez une entité Light dans une partie clef du niveau, par exemple, dans un couloir sombre dans lequel le joueur est passé mais n''a pas vu l''entrée "secrète" cachée dans le noir. Configurez la ainsi :
  • Name : nom_de_votre_lumière (light_plug dans l''exemple)

et dans Flags, cochez la case Initially dark, puisque la prise n''est pas branchée par défaut.

tuto_physic_tpplug14.JPG



Ensuite, retournez dans les Output de votre logic_relay et ajoutez :
  • On trigger / nom_de_votre_lumière / turnOn / 0.00

tuto_physic_tpplug15.JPG


Pour peaufiner notre séquence de branchement, on va rajouter des étincelles.

Placez une entité Env_spark juste devant la PF. Et configurez le ainsi :
  • Name : nom_de_vos_etincelles (plug_spark dans l'exemple)
  • Max delay : 15

tuto_physic_tpplug16.JPG



Le conseil de l'alchimiste
Pour une prise comme dans notre cas, je met un long délais aux étincelles pour se reproduire. Tout simplement parce qu''on a besoin que d''une petite explosion d''étincelles pour bien montrer que la prise s''est branchée. Après, vous pouvez changer les valeurs et vous abstenir de désactiver les étincelles après les avoir déclanchées pour obtenir la sensation que la prise déconne un peu.


Retournez dans les output de votre logic_relay et ajoutez :
  • On trigger / nom_de_vos_etincelles / StartSpark / 0.00
  • On trigger / nom_de_vos_etincelles / StopSpark / 0.01
  • On trigger / Mon_teleporteur_de_prise / disable / 0.00
tuto_physic_tpplug17.JPG



Pour le moment, nous avons une prise, qui réagie à la physique, et qui, quand on la branche, emet des etincelles et active de la lumière.

Seulement, comment on va débrancher tout notre bazar ? Plusieurs manières sont possibles.


L'explication de l''alchimiste
La technique consite à placer sur l''emplacement de la PF un petit func_button qui, une fois s''être pris un coup de pied de biche ou de gravity gun, désactive tout le reste et décroche la PM.


Créez un brush, en No draw, dans votre trigger teleport, mais en un peu moins long :
14x9x14 inchs .

tuto_physic_tpplug18.JPG



Ensuite, faîtes un zoli petit Tie to entity / Func_button.

Allez dans les propriétés du bouton et mettez :
  • Name : nom_du_bouton (plug_button dans l'exemple)
  • Delay before reset : 3

Et dans Flags, cochez :
  • Don't Move
  • Damage activates
tuto_physic_tpplug19.JPG



Maintenant, on va ajouter une nouvelle "choregraphie", ou du moins, un enchaînement de d''action. Placez un nouveau Logic_relay.

Allez dans ses propriétés et mettez :
  • Name : Logic_evenement_desactivation (Plug_event_disable dans l''exemple)

Dans les outputs, ajoutez :
  • On trigger / nom_de_votre_lumière / turnOff / 0.00
  • On trigger / nom_de_vos_etincelles / startSpark / 0.00
  • On trigger / nom_de_vos_etincelles / Stopspark / 0.01
  • On trigger / Mon_teleporteur_de_prise / enable / 2.00

tuto_physic_tpplug20.JPG



Puis, allez dans les OutPuts de votre func_button, et ajoutez enfin :
  • On damaged / Ma_prise_partie_physique / Enable motion / 0.00
  • On damaged / Logic_evenement_desactivation / Trigger / 0.00

tuto_physic_tpplug21.JPG



Cependant, si vous regardez bien, chaque fois que vous tapez sur le bouton, PM là ou non, les actions s''enchaînent quand même.
On va donc faire en sorte a ce que le func_button ne soit activable que quand la prise est branchée !

Pour celà, rien de plus simple :

Retournez dans les propriété de votre func_button,
Allez dans Flags, et cochez Starts locked

Ensuite, allez dans votre "Logic_evenement_activation" , et ajoutez dans outputs :
  • On trigger / nom_du_bouton / unlock / 0.00

tuto_physic_tpplug22.JPG


Puis, allez dans votre "Logic_evenement_desactivation" , et ajoutez dans outputs :
  • On trigger / nom du bouton / lock / 0.00
tuto_physic_tpplug23.JPG




Voila ! Normalement, vous devriez avoir globalement ceci :

tuto_physic_tpplug24.JPG


tuto_physic_tpplug25.JPG


tuto_physic_tpplug26.JPG




Le mot de fin de l'alchimiste

Tout d'abord, mes félicitations si vous avez reussi à réaliser ce tutoriel plutôt simple, mais long. De nombreuses modifications ont eu lieux entre temps, des erreurs graves aussi, du genre, un Output oublié, qui change complètement le fonctionnement du script, et j''en passe. L'effet produit dans ce tuto est fort sympathique, et vous pouvez changer très facilement les actions que déclenche le branchement de la prise.
Je tiens aussi à m''excuser de la fin du tuto qui vous obligera à faire des aller-retour entre les diverses entités. L''avantage, c''est que vous apprenez à tout faire pas à pas
 

Pièces jointes

  • tuto_physic_tpplug10.JPG
    tuto_physic_tpplug10.JPG
    18.9 KB Vues: 8
Discord Hytale, Minecraft, Rust, ARK, FiveM

Découvrez mTxServ!

Discord d'entraide

Rejoignz-nous sur Discord