Tutoriel PS3

TUTO - Créer un Thème Dynamique de A à Z

par
Source: Forum PS3gen

Vous rêvez de posséder un thème dynamique à votre goût ? Alors suivez ce tuto, et vous serez capables de vous en faire un.

Malheureusement, nous sommes désolés de vous l'annoncer, mais nous arrivons au terme de ce long tutoriel, il ne nous reste plus qu'a voir les différentes commandes propres au PlayStation JavaScript, ensuite vous aurez toutes les clés en mains pour créer un thème digne de ce nom !

Comme nous avons pu vous le dire quelques pages avant, ici nous ne verrons que les commandes propre au PSJS, mais qu'est-ce donc ? Il faut savoir que le JavaScript n'a rien à voir avec la PS3, comprenez par là que ce n'est pas Sony le propriétaire de ce langage. À la base, le JavaScript permet de faire des animations pour des sites web, comme bouger du texte, faire tomber des flocons de neige, etc. Sony utilise le JavaScript pour la création de thèmes dynamiques, puis ensuite ils lui ont ajouté plusieurs commandes pour la création de thèmes. Ce lot de commandes supplémentaires forme un tout qui se nomme le PlayStation JavaScript, ou PSJS pour les intimes.

Pourquoi ont-ils fait ça ?

Pour plusieurs raisons. Nous ne les connaissons pas personnellement, mais nous pouvons en déduire qu'ils l'ont fait pour pouvoir être sûrs qu'il n'y ait pas de failles de sécurité. De plus, ils ont aussi bloqué certaines commandes, qui ne sont soit pas du tout disponibles, soit disponibles que pour les consoles Debug. C'est pour cela que nous allons partager cette page en deux parties, une partie dédiée à tous les créateurs, puis une deuxième partie (plus courte) réservée uniquement aux possesseurs de console Debug.

Comment ça trop de blabla et pas assez de travail ? Bon, voici les premiers tableaux. Nous allons vous faire différents tableaux pour différentes choses, telles que les commandes pour les lumières, pour les actor, les caméras, etc.

Actor :

Un Actor définit un objet. Chacune de ces commandes permet d'animer un objet quelconque, comme lui faire faire une rotation, le déplacer ou encore l'agrandir et même le rendre invisible. Bref, tout ce que vous verrez ici est lié aux objets et uniquement à ça. Dans les différents tableaux, vous trouverez une colonne "Paramètre", celle-ci vous permet de connaître les paramètres à mettre pour chaque commande. En clair, lorsque vous noterez vos commandes, vous devrez noter "commande + paramètre" pour avoir une commande valide.

Commandes :

PropriétéDescriptionParamètre
var nameDéclare un objet= new Actor("name");
name.positionDéfinit la position de l'objet sur les axes X,Y,Z=
name.rotationDéfinit la rotation de l'objet sur les axes X,Y,Z=
name.directionDéfinit la direction de l'objet sur les axes X,Y,Z=
name.upDéfinit l'axe haut / bas de l'objet (mettre un 1 pour le définir)=
name.scaleDéfinit la taille de l'objet sur les axes X,Y,Z
=
name.colorDéfinit la couleur de l'objet en RGB=
name.uv_scaleDéfinit la taille de la texture de l'objet sur les axes X,Y=
name.uv_offsetDéfinit la position de la texture de l'objet sur les axes X,Y=
name.enableactive / désactive l'affichage de l'objet (mettre true ou false)= false;
name.timerDéfinit un timer à l'objet (mettre le temps souhaité)= temp;

 

Les méthodes suivantes permettent de faire une action sur un temps donné. Ce qui veut dire que vous pouvez avec ces méthodes tourner un objet, le bouger, le rétrécir / agrandir et tout ça sur un temps défini auparavant.

Cela peut paraître compliqué au premier abord, mais sachez que tout ce qui se trouve entre parenthèses sera toujours à mettre de cette façon : (, temps, interpolation, paramètre de l'interpolation).

Pour "paramètre", ce sera en fonction de ce que vous voulez faire, mais ce sera soit une valeur en  (pour les position / rotation / direction) soit une valeur en  (pour les textures), soit une valeur décimale classique. En revanche, pour ce qui est des "paramètres de l'interpolation", ce n'est pas compliqué, il n'existe que deux interpolations différentes, l'interpolation linéaire (INTERPOLATION_LINEAR) ou l'interpolation bézier (INTERPOLATION_BEZIER) et seule l'interpolation bézier doit recevoir des paramètres. Si vous souhaitez connaître les paramètres à mettre pour une interpolation bézier, ça se passe un peu plus bas.

Méthodes :

MéthodeDescriptionparamètre
name.setPositionDéplace un objet(, temp, interpolation);
name.setRotationTourne un objet(, temp, interpolation);
name.setDirectionChange la direction d'un objet(, temp, interpolation);
name.setUpChange l'angle haut / bas d'un objet(, temp, interpolation);
name.setScaleChange la taille d'un objet(, temp, interpolation);
name.setColorChange la couleur d'un objet(, temp, interpolation);
name.setUVScaleChange la taille de la texture d'un objet(, temp, interpolation);
name.setUVOffsetChange la position de la texture d'un objet(, temp, interpolation);
name.setAnimSpeedChange la vitesse d'une animation(index, vitesse, temp, interpolation);
name.setAnimWeightchange la longeur d'une animation(index, longeur, temp, interpolation);
name.setAnimTimeChange le temps d'une animation(index, durée, temp, interpolation);
name.getAnimSpeedRécupère la vitesse actuelle d'une animation(index de l'animation);
name.getAnimIndexRécupère l'index lu dans une animation(index de l'animation);
name.getAnimTimeRécupère le temps d'une animation(index de l'animation);
name.getAnimWeightRécupère la longeur d'une animation(index de l'animation);

 

Caméra :

Ici, toutes les commande permettent de contrôler notre caméra. N'oubliez pas que vous ne pouvez importer qu'une seule caméra par thème, donc faites bien attention à ne pas en créer une seconde.

Commandes :

PropriétéDescriptionParamètre
var cameraDéclare une caméra= new Camera("camera");
camera.positionDéfinit la position de la caméra=
camera.directionDéfinit la direction de la caméra=
camera.upDéfinit l'axe haut / bas de la caméra
=
camera.aspectDéfinit l'aspect de la caméra= valeur numérique;
camera.yfovDéfinit la distance de vu minimal
= valeur numérique;
camera.ymagDéfinit la distance de vu maximal
= valeur numérique;

Comme tout à l'heure, les méthodes suivantes permettent de faire une action sur un temps donné avec une interpolation.

Méthodes :

MéthodeDescriptionParamètre
camera.setPositionDéplace la caméra(, temp, interpolation);
camera.setDirectionChange la direction de la caméra(, temp, interpolation);
camera.setUpChange l'axe haut / bas de la caméra
(, temp, interpolation);

Les commandes suivantes permettent comme vous vous en doutez d'utiliser des lumières. Les actions possibles sont identiques que pour un objet, il existe juste quelques petites fonctions supplémentaires comme l'atténuation.

Lumières :


Commandes :

PropriétéDescriptionParamètre
var lumiereDéclare une lumièrenew Light("light");
lumiere.positionDéfinit la position de la lumière=
lumiere.directionDéfinit la direction de la lumière=
lumiere.colorDéfinit la couleur de la lumière=
lumiere.attenuationAtténue la puissance de la lumière
=

Idem que pour les autres tableaux, définit une action sur un temps donné en suivant une interpolation.

Méthodes :

MethodeDescriptionParamètre
lumiere.setPositionChange la position de la lumière(, temp, interpolation);
lumiere.setDirectionChange la direction de la lumière(, temp, interpolation);
lumiere.setColorChange la couleur de la lumière(, temp, interpolation);
lumiere.setAttenuationChange l'atténuation de la lumière(, temp, interpolation);

timersintervalTimertimerOneShotTimer

Timer :

Commandes :

CommandeDescriptionParamètre
new intervalTimerDéfinit un nouveau timer(temp du timer, nom de la fonction);
new oneShotTimerDéfinit un nouveau timer(temp du timer, nom de la fonction);

Interpolation :

InterpolationDescriptionParamètre
INTERPOLATION_LINEARDéfinit une ligne droiteaucun
INTERPOLATION_BEZIERDéfinit un bézier selon les paramètres

Les prochaines commandes sont des commandes dites "système". Elle permettent entre autres de récupérer l'heure, la date, la résolution ou encore de déclarer un timer. Beaucoup de ces commandes ne fonctionnent qu'avec une console Debug, c'est pourquoi nous ne vous donnons que les commandes compatibles Retail et Debug.


Système :

Commandes :

commandeDescriptionparamètre
var dateDéclare une variable dateNew Date("date");
var yearDéclare une variable d'annéedate.year
var monthDéclare une variable de mois
date.month
var dayDéclare une variable de jour
date.day
var hourDéclare une variable d'heure
date.hour
var minuteDéclare une variable de minute
date.minute
var secondDéclare une variable de seconde
date.second

Les classes système fonctionnent sur toutes les consoles. Elle permettent de déclarer un timer, une résolution ou un interval.

Classes :

ClasseDescriptionParamètre
system.timer[0]Déclare un timer= Interval(temp, fonction);
system.intervalDéclare un interval= interval(temp, fonction);
system.resolutionDéclare une résolution= resolution;

Bon, vous allez sûrement avoir du mal à assimiler tout cela d'un coup, mais vous verrez qu'avec un peu d'entraînement, tout vous paraîtra beaucoup plus simple. C'est d'ailleurs dans ce but précis que ce tutoriel a été écrit, pour vous permettre à tous de créer des thèmes dynamiques, et ainsi faire travailler votre imagination.

N'hésitez pas à nous proposer vos thèmes, nous nous ferons une joie de les regarder, et pourquoi pas en fonction du nombre de thèmes, proposer un "top thème du mois" ! Bon courage à tous, et n'oubliez pas, nous sommes à votre disposition pour toutes vos questions.

Mots-clés

Commenter 132 commentaires

Daiisuke
hellsbells67130 Wrote:Merci pour ce tuto, mais existe t-il un logiciel de création de thèmes dynamiques où on peut insérer une vidéo ??


C'est se que je cherche aussi, comme sa je mettrai mais beau montage video comme celui du Killzone
Citer
hellsbells67130
Dragoon1010 Wrote:Non il n'en existe pas désolé. Puis ce tuto as aussi été créer dans un but, c'est de pouvoir faire des thème complet basé sur de la 3D.


Ok, merci pour la réponse. Dommage... j'essaierai de créer un thème dynamique en 3D quand la motivation y sera.
Citer
Tom Vivares
Le principe pour mètre des vidéos en fond est d'importer chaque image sur des planes et de les faire apparaitre puis disparaitre dans l'ordre. Mais nous encourageons pas cette pratique car elle est beaucoup trop utilisé pour deux de nos collègue Glowball ou a100miles2go.
Citer