[Tutoriel] Script : allumer et éteindre des bougies ou un lustre

Vous trouverez ici les tutoriels et l'entraide sur les outils et techniques de modding spécifiques à Oblivion.
Répondre
Avatar du membre
Karaiq
Traducteur en herbe | Moddeur en herbe
Traducteur en herbe | Moddeur en herbe
Messages : 1548

Script : allumer et éteindre des bougies ou un lustre

Message par Karaiq »

Ce tout petit tuto hyper simple, vous permettra de réaliser vos propres 'interrupteurs'.

Pour ce tuto, on va prendre un exemple tout bête : vous entrez dans une salle, il y a un lustre en haut et vous voulez l'allumer... allez hop, direction le CS...

1°) Les ingrédients, ou nouveaux ID

Pour pouvoir allumer et éteindre ce lustre à volonter, on a besoin de plusieurs nouveaux ID :

- 1 lustre allumé ( Son ID sera : AA01On // On doit le trouver dans "Light" de "WorldObject")

- 1 lustre éteint ( Son ID sera : AA01Off // On doit le trouver dans "Light" de "Static")

- 1 interrupteur (Là on doit faire un nouvel ID, appelons-le : AActi01Off, et comme nom il aura "Allumer"// On doit le trouver dans les "Activators")

- 1 interrupteur (Là aussi on doit faire un nouvel ID, appelons-le : AActi01On, et comme nom il aura "Eteindre"// On doit le trouver dans les "Activators" )

Un fois qu'on a fait ça, il ne nous reste plus qu'a positionner le tout et scripter.

2°) Le positionnement

Partie très importante ! Déjà, une fois les 4 ID renommés et glissés dans la "Render Window", vous devrez faire quelque petites modifications : TOUS les 4 nouveaux "objets" doivent être des "Persistent reference" ! Ensuite, en double cliquant sur les "objets" (un par un...) dans la render window, vous renommerez leur "Reference Editor ID", je vous conseil de mettre pareil que leur ID d'origine en enlevant la première lettre. (Donc si vous suivez, pour le lustre éteint on aura A01Off).

Après ceci fait, il ne reste plus qu'à cocher la case "Initially Disable" pour les "AActi01On" et "AA01On". (Ben oui, on veut que lorsque l'on entre dans la pièce, ils ne soient pas directement allumés, c'est quand on active l'interrupteur qu'ils le seront.)

Maintenant, le vrai positionnement, une fois tous les "renommages" effectués et les cases cochées, il faut positionner tout ce bazar : si vous êtes plus ou moins normal, vous mettrez le lustre en haut, au plafond, il faut superposer les deux lustres : AA01Off doit avoir les même références axiales que AA01On, pareil pour les interrupteurs. (Parce que si les lustres ne sont pas mis exactement au même endroit, il serait illogique que lorsque vous activez l'interrupteur, le lustré s'allume à 2 mètre de celui qui vient de s'éteindre...)

3°) Script !

Bon voilà les scripts, il y en a deux : un par interrupteur... Bien sûr, on va jouer avec les Enable/Disable...

Code : Tout sélectionner

scn         AActi01OffScript             ; Bon ici, c'est le script de l'activateur qui va nous permettre d'allumer le lustre, donc on veut que le lustre éteint parte, celui allumé arrive, l'interrupteur qui permet d'éteindre arrive et celui qui allume parte !

Begin OnActivate                      ; Il vaut mieux mettre tous les .enable d'abord puis les .disable, sinon pendant un cours instant, il n'y aura aucun lustre...

A01On.enable

Acti01On.enable

A01Off.disable

Acti01Off.disable

End
Voilà tout simplement le script de l'interrupteur qui permet d'allumer...

Et maintenant celui qui permet d'éteindre :

Code : Tout sélectionner

scn         AActi01OnScript ; Donc ici, on va désactiver le lustre allumé et l'interrupteur qui permet d'éteindre, puis faire revenir l'interrupteur qui permet d'allumer et le lustre éteint

Begin OnActivate

A01Off.enable

Acti01Off.enable

A01On.Disable

Acti01Off.disable

End 
Voili voilou, quelque chose à rajouter si vous faites une maison, histoire de pouvoir rajouter un peu de "RP" vous n'avez qu'a laisser le joueur décider quelle pièce allumer ou éteindre...

Si vous voulez faire ça avec une bougie, vous n'allez bien sûr pas mettre un interrupteur juste à côté... Il vous suffit de mettre en "Activator" un static de bougie éteinte, d'y mettre ensuite le script du "AActiOff01". Et pour éteindre, ne faites pas la gaffe de mettre un "Light" en "Activator"... :mdr: , servez-vous d'une boîte de collision !

J'espère que ce tout petit tuto vous servira bien !
Avatar du membre
Prechan
Confrère
Messages : 4372

Re: Tuto - Script : allumer et éteindre des bougies ou un lu

Message par Prechan »

Merci Karaiq !
Personnellement je connais, mais un tuto fait toujours du bien !
Avatar du membre
beeratwork
Légende de la Confrérie
Légende de la Confrérie
Messages : 1881

Re: Tuto - Script : allumer et éteindre des bougies ou un lu

Message par beeratwork »

Tuto indexé !

Autre technique :

Deux pour controler les deux jour/nuit.
Cela fonctionne aussi avec des références, sauf qu'ici, le script est général et peut-être utilisé pour pleins d'objets.

La procédure est assez similaire :

1) Le script.

Code : Tout sélectionner

scn ScriptActivateur

ref	Target

Begin OnActivate
; Acquisition de la référence parent
	set Target to GetParentRef
; Bascule ON
	if (GetDisabled == 1)
		playgroup forward 1
		Target.Enable
; Bascule OFF
	elseif (GetDisabled == 0)
		playgroup backward 1
		Target.Disable
	endif
End
2) Mettre les 4 objets dans la cellule, et ne pas les positionner tout de suite :
- éclairage "allumé"
- éclairage "éteint"
- interrupteur A
- innterrupteur B

3) Les liaisons :
- Dans les propriétés de l'interrupteur A, on choisit pour référence parent l'éclairage allumé.
- Dans les propriétés de l'interrupteur B, on choisit pour référence parent l'éclairage allumé. On coche la case pour que l'éclairage soit dans l'état inverse de la ref parent.
- Dans les propiétés de l'éclairage allumé, on coche la case pour que l'éclairage soit initialement désactivé (Initialy disabled).
- Dans les propriétés de l'éclairage éteint, on choisit pour référence parent l'éclairage allumé. On coche la case pour que l'éclairage soit dans l'état inverse de la ref parent.

4) On peut positionner les objets. Attention ! Il faut que les éclairage et l'interrupteur soient des références persistentes ! Il ne faut oublier que si vous sortez de la maison, la lumière ne s'éteind pas toute seule !

J'ai testé cette fois et j'espère que j'ai écrit la procédure correctement ! En tout cas, je vais mettre ce script dans farmerslife
Modifié en dernier par beeratwork le 13 févr. 2010, 08:11, modifié 1 fois.
Avatar du membre
Karaiq
Traducteur en herbe | Moddeur en herbe
Traducteur en herbe | Moddeur en herbe
Messages : 1548

Re: Tuto - Script : allumer et éteindre des bougies ou un lu

Message par Karaiq »

Cela fonctionne également c'est vrai ! Mais d'après tous mes professeurs j'ai une façon de penser bizarre, mais le résultat y est... :D
Répondre

Retourner vers « Modder Oblivion »