Différences entre les versions de « Creation Kit : Scripter »

De Wiwiki
Aller à la navigation Aller à la recherche
(Création de la page)
 
(Propriétés)
Ligne 25 : Ligne 25 :
|}
|}


<!--
La première chose que nous allons faire est ajouter un script sur notre voleur afin que lorsqu'il est tuée, la quête progresse.


=Overview=
=Ajouter des Scripts=
This tutorial will show how to use scripting to advance the questline based on player actions. We previously showed how to script dialogue, but this will show how to attach arbitrary scripts to actors and game objects as well.  
Ouvrez l'acteur GSQThief que nous avons créé. Nous allons nous intéresser a la section "Papyrus Scripts" de la fenêtre.
<br><br>The reader will learn:
* The basic framework of how scripts work and attach to objects in the Creation Engine
* How to respond to events in the new scripting language


(For an even simpler introduction to scripting, see the [[Bethesda_Tutorial_Papyrus_Hello_World|"Hello, World" tutorial]].)
[[Image:CKActorWindowScriptsArea.png|600px]]


=Papyrus=
Cliquez sur le bouton "Add". Cela va ouvrir une liste de scripts que nous pouvons potentiellement ajouter a cet acteur. Mais nous sommes en trains d'en créer en nouveau, double-cliquez donc sur "[New Script]" en haut de la liste.
The scripting language used by the Creation Kit is called Papyrus (after the material on which scrolls are printed). Papyrus scripts are normal text files that get turned into a bytecode that the game executes at runtime.  


::{|style="border-collapse: separate; border-spacing: 0; border-width: 1px; border-style: solid; border-color: #000; padding: 0"
[[Image:CKAddScriptWindow.png]]
|-
|style="border-style: solid; border-width: 0"|[[Image:NewFeature.jpg|48px]]
|style="border-style: solid; border-width: 0"|The new system is similar to the old TESScript, but requires a slightly different way of thinking. You can no longer directly manipulate objects in the world; it's now threaded so your script might be interrupted mid-run; it's more of a stickler for things like parentheses. In short, it's much more similar to "real" programming languages like [http://lua.org Lua] or [http://python.org Python]. If you're familiar with TESScript, you'll want to look at our [[Differences_from_Previous_Scripting|transition guide]].
|}


The first thing we're going to do is add a script to the thief so that when it's killed, the quest updates appropriately.  
Cela ouvrira encore une fenêtre, où nous pouvons nommer notre script. Mettez donc "GSQThiefScript" puis appuyez sur OK.


=Adding Scripts=
Open up the GSQThief actor that we've been creating so far. We'll be looking at the "Papyrus Scripts" section of the window.


[[Image:ActorWindowScriptsArea.png|600px]]
[[Image:CKAddNewScriptWindow.png]]


Click the "Add" button. This brings up a list of scripts we could potentially add to this actor. We're making a new one, though, so double-click on "[New Script]" at the top of the list.  
Votre script est maintenant ajouté a l'acteur. Mais, comme on peut s'y attendre, il ne fait encore rien.


[[Image:AddScriptWindow.png]]
[[Image:CKScriptAdded.png]]


This will pop up yet another window, where you can name your script. Set its name to be "GSQThiefScript" and hit OK.


[[Image:AddNewScriptWindow.png]]
=Propriétés=
Double cliquez sur le script pour ouvrir la fenêtre des propriétés de ce script. De base, les scripts ne savent rien a propos des objets du jeu autre que celui auquel ils sont attachés. Nous utilisons les propriétés afin d'attaches des objets ensemble pour qu'ils puissent s'affecter les un les autres. Dans notre exemple, nous voulons passer GSQ01 à l'étape 20 lorsque le voleur est tué, il faut donc que le script sache quelle quête nous intéresse.


Now your script is added to the actor. But, as you might expect, it's not actually doing anything just yet.  
[[File:CKEmptyPropertiesWindow.png]]


[[Image:ScriptAdded.png]]
Appuyez sur "Add Property" en bas à gauche de la fenêtre. C'est ici que nous allons créer la propriété. Dans le champ Type, sois choisissez "Quest" dans le menu, sois tapez le mot "Quest". Mettez "TutorialQuest" dans le champ Name, et laissez le reste vide.


=Properties=
[[File:CKAddScriptPropertyWindow.png]]
Double-click on the script name to bring up the Properties Window for this script. On their own, scripts don't know about any objects in the game other than the one to which they're attached. We use properties to hook objects together so they can affect each other. In our example, we want to set GSQ01 to stage 20 when the thief is killed, so we need to tell the script which quest we care about.  


[[File:EmptyPropertiesWindow.png]]
Nous avons maintenant dit au script que il doit utiliser quelque chose qui s’appelle "TutorialQuest", mais il ne sait pas de quelle quête il s'agit. Cliquez sur la propriété que nous venons de créer dans la liste, et cliquez sur "Edit Value" a droit de la fenêtre. Un nouveau menu va apparaitre, listant toute les quêtes du jeu. Choisissez "GSQ01" dans le menu, et appuyez sur OK.


Press the "Add Property" button at the bottom left of this window. This is where we create the property. In the Type field, either choose "Quest" from the pulldown, or type in the word "Quest". Put "TutorialQuest" in the Name field, and leave everything else blank.  
[[File:CKPropertyWindowFilled.png]]


[[File:AddScriptPropertyWindow.png]]
<!--
 
We've now told the script that it should care about something called "TutorialQuest," but it doesn't know which quest that is. Click on the property we just made in the list, and click "Edit Value" on the right side of the window. A new pulldown menu will appear, listing all the quests in the game. Choose "GSQ01" from this menu, and hit OK.
 
[[File:PropertyWindowFilled.png]]


=Writing the Script=
=Writing the Script=

Version du 13 février 2012 à 20:28

Travaux intenses
Travaux intenses
Cet article est actuellement en travaux intensifs par Jupotter depuis le 13/02/2012.
Il est fortement déconseillé de modifier actuellement cet article
.
Si vous voulez participer indirectement à cet article vous pouvez créer une discussion (voir onglet discussion ci-dessus), ou utiliser le forum afin de coordonner les diverses attentes.
Il est possible que cet article ait été protégé par un administrateur


Tutoriel traduit du wiki officiel: Original

Résumé

Ce tutoriel va vous montrer comment utiliser les scripts pour faire avancer la quête suivant les actions du joueur. On a déjà vu comment scripter un dialogue, mais ici, nous allons voir comment attacher n'importe quel script a un acteur ou a un objet.

Vous allez apprendre:

  • Les généralités sur le fonctionnement des scripts et comment ils s'attachent aux objets dans le Creation Engine.
  • Comment répondre a un évènement dans le nouveau langage de scripts.


Papyrus

Le langage de scripts utilisé par le Creation Kit est appelé Papyrus (d'après ce qui compose les parchemins). Les scripts Papyrus sont de simple fichier texte qui sont compilés en bytecode que le jeu exécute au runtime.

CKNewFeature.jpg Le nouveau système est similaire au TESScript, mais requière une manière de penser légèrement différente. Vous ne pouvez plus directement manipuler les objets dans le mode; il y a maintenant des thread, votre script peut alors être interrompus en fonctionnement; il est beaucoup plus script en ce qui concerne la syntaxe (e.g. parenthèses). Pour faire court, il est beaucoup plus proche de "vrais" langages de programmation comme le Lua ou Python. Si vous êtes familier avec le TESScript, vous devriez jeter un œil a notre guide de transition.

La première chose que nous allons faire est ajouter un script sur notre voleur afin que lorsqu'il est tuée, la quête progresse.

Ajouter des Scripts

Ouvrez l'acteur GSQThief que nous avons créé. Nous allons nous intéresser a la section "Papyrus Scripts" de la fenêtre.

CKActorWindowScriptsArea.png

Cliquez sur le bouton "Add". Cela va ouvrir une liste de scripts que nous pouvons potentiellement ajouter a cet acteur. Mais nous sommes en trains d'en créer en nouveau, double-cliquez donc sur "[New Script]" en haut de la liste.

CKAddScriptWindow.png

Cela ouvrira encore une fenêtre, où nous pouvons nommer notre script. Mettez donc "GSQThiefScript" puis appuyez sur OK.


CKAddNewScriptWindow.png

Votre script est maintenant ajouté a l'acteur. Mais, comme on peut s'y attendre, il ne fait encore rien.

CKScriptAdded.png


Propriétés

Double cliquez sur le script pour ouvrir la fenêtre des propriétés de ce script. De base, les scripts ne savent rien a propos des objets du jeu autre que celui auquel ils sont attachés. Nous utilisons les propriétés afin d'attaches des objets ensemble pour qu'ils puissent s'affecter les un les autres. Dans notre exemple, nous voulons passer GSQ01 à l'étape 20 lorsque le voleur est tué, il faut donc que le script sache quelle quête nous intéresse.

CKEmptyPropertiesWindow.png

Appuyez sur "Add Property" en bas à gauche de la fenêtre. C'est ici que nous allons créer la propriété. Dans le champ Type, sois choisissez "Quest" dans le menu, sois tapez le mot "Quest". Mettez "TutorialQuest" dans le champ Name, et laissez le reste vide.

CKAddScriptPropertyWindow.png

Nous avons maintenant dit au script que il doit utiliser quelque chose qui s’appelle "TutorialQuest", mais il ne sait pas de quelle quête il s'agit. Cliquez sur la propriété que nous venons de créer dans la liste, et cliquez sur "Edit Value" a droit de la fenêtre. Un nouveau menu va apparaitre, listant toute les quêtes du jeu. Choisissez "GSQ01" dans le menu, et appuyez sur OK.

CKPropertyWindowFilled.png