Les Sims™ 4 - les dessous des sims

Commentaires

Transcription

Les Sims™ 4 - les dessous des sims
Les Sims™ 4
Guide de la Création de Contenu Personnalisé et de Mods pour les Sims™ 4
Partie 1 – Introduction & Créer un Sim
Version 1.0 (31/08/2014)
Introduction
Dès le début du développement des Sims 4, Maxis s'est efforcé de soutenir la créativité de notre
communauté. Nous savons que pour beaucoup d’entre vous, la création de Contenu Personnalisé
occupe une place importante. Même s’il est important de se rappeler que Maxis ne peut pas
officiellement supporter du Contenu Personnalisé ou des Mods, nous avons pris quelques
dispositions afin de vous rendre la chose plus aisée et ainsi contribuer à la poursuite de vos
amusantes créations de façon à ce que vous profitiez de vos Sims de la manière qui vous
convient.
Nous avons spécialement incorporé quelques caractéristiques qui vous permettront d’ajouter, de
gérer ou de supprimer du Contenu Personnalisé ou des Mods sans avoir à modifier le ‘Hard
Core’. Nous avons aussi pris soin de faire attention à ce que le Contenu Personnalisé ne soit pas
affecté lorsque nous améliorons ou mettons le jeu à jour.
Ce document fournit des informations techniques sur ces caractéristiques et fournit les
meilleures pratiques (façons de faire) afin de rester compatible avec le jeu Les Sims 4.
Rappels

Les termes et les conditions mentionnés dans le CLUF et l’utilisation des produits et
services Sims 4 sont applicables à l’utilisation des produits et des services et de tout le
matériel distribué par Maxis concernant la crétion de Conteneu Personnalisé pour Les Sims
4.

Maxis ne fera pas de ‘Preview’, ne prendra pas à son propre compte et ne supportera
aucun Mods ou Contenu Personnalisé particulier. Les joueurs utilisent du Contenu
Personnalisé et des Mods à leur propres risques.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4

Maxis suppose que la communauté respecte les droits des ayants droits pour ce qui est de
la création de Contenu Personnalisé ou de Mods et assure ne pas enfreindre les règles de
la propriété intellectuelle de Maxis ou d’autres tiers et ne contient pas du ‘matériel’
inopportun ou nuisible.

Ce document ne fournira pas d’une façon exhaustive toutes les informations nécessaires à
la création de Contenu Personnalisé ou de Mods mais a pour vocation de fournir une
fondation sur laquelle vous pouvez bâtir.

Les informations contenues dans ce document seront mises à jour de temps à autre afin
d’évoluer au fur et à mesure des mises à jour du jeu ou des nouveaux produits ou
services.
Installation du Contenu Personnalisé
Le Contenu Personnalisé doit être installé dans le répertoire utilisateurs pour les documents de la
façon suivante :
The Sims 4 Create A Sim Demo
Windows XP:
C:\Documents and Settings\[nom_utilisateur]\Mes Documents\Electronic Arts\The Sims 4 Create
A Sim Demo\Mods
Windows Vista, Windows 7 ou Windows 8:
C:\Users\[nom_utilisateur\Documents\Electronic Arts\The Sims 4 Create A Sim Demo\Mods
The Sims 4
Windows XP:
C:\Documents and Settings\[nom_utilisateur]\Mes Documents\Electronic Arts\Les Sims 4\Mods
Windows Vista, Windows 7 or Windows 8:
C:\Users\<user>\Documents\Electronic Arts\Les Sims 4\Mods
Au démarrage de l’application, ce répertoire sera créé s’il n’existe pas.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Vous pouvez désactiver tous les Mods et le Contenu personnalisé en lançant le jeu avec ce
paramètre sur la ligne de commande : « -ignoremods ». Les paramètres de ligne de commande
peuvent être saisis dans Origin en cliquant droit sur la vignette du jeu Les Sims 4 et en
sélectionnant « Propriétés du jeu… ».
Le fichier Resource.cfg
Le jeu créera à l’intérieur du dossier « Mods » un fichier appelé ‘Resource.cfg’. Ce fichier définit
les emplacements et types de fichiers qui seront pris en charge par le jeu dans et en dehors de ce
dossier. Les Sims 4 utilisent des fichiers .package (qui seront détaillés plus loin). Le contenu par
défaut du fichier Resource.cfg est :
Priority 500
PackedFile *.package
PackedFile *\*.package
Ceci indique à l’application de charger les .package se situant hors du dossier Mods et dans
n’importe quel sous-dossier. « Priority 500 » indique à l’application de traiter le contenu de ces
.package avec une priorité élevée – ce qui signifie que le contenu original de Maxis sera remplacé
par le contenu de ces fichiers (Mods) à condition que ces fichiers contiennent des identifiants de
ressources similaires à ceux de Maxis. Des informations complémentaires seront données plus
loin dans ce document.
Le fichier Resource.cfg peut être modifié par l’utilisateur et ne sera pas remplacé par l’application
s’il existe déjà. Ce fichier a été créé afin de faciliter le processus d’installation de Contenu
Personnalisé ou de Mods et ne requière pas de modifications de la part de l’utilisateur.
Note importante au sujet du dossier d’installation
Il est fortement recommandé que le Contenu Personnalisé et les Mods ne demandent aucune
intervention ni modification dans le dossier Windows ‘Program Files’ ou dans tout autre dossier
où le jeu est installé. La modification du dossier d’installation peut interférer avec les mises à
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
jour du jeu et rendre particulièrement difficile la recherche d’erreurs résultants de la modification
du dossier d’installation du jeu.
Notez que si les fichiers du jeu situés dans ‘Program Files’ (ou ailleurs) venaient à être corrompus
ou modifiés, vous pouvez utiliser l’option »Réparer le jeu » ce qui aura pour effet le
téléchargement et la réinstallation du jeu.
(Attention, ce processus peut être assez long)
Format des données
Des documents .bt accompagnent ce document. Ces fichiers décrivent certaines de nos clés et
format de données et peuvent être ouverts avec ‘010 Editor’ disponible chez SweetScape software
(http://www.sweetscape.com/), qui est un éditeur de fichiers binaires et est adapté pour le
‘reverse engineering’ des formats de données. Nous vous encourageons à supporter cette
application. Cependant les fichiers joints .bt peuvent aisément être édités dans un éditeur de
texte. (NDT : comme le NotePad de Windows par exemple)
Fichiers Package
L’application (le jeu Sims 4) utilise des fichiers .package pour grouper / empaqueter ses données.
Les fichiers package sont dans leur conception similaires aux fichiers zip, ce sont des fichiers qui
contiennent une collection d’autres fichiers. Lisez s’il vous plait le fichier joint
PackageTemplate.bt qui décrit le format des fichiers .package. Le Contenu Personnalisé devra être
distribué comme fichiers .package que l’utilisateur auquel il est destiné sauvegardera dans son
dossier « Mods ».
Contrairement à un fichier zip qui utilise un format texte compréhensible par un humain pour les
noms des enregistrements qui y sont contenus, les enregistrements à l’intérieur d’un fichier
.package sont identifiés par des « Resource Key ».
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Resource Keys
Les « Ressource Keys » sont un concept fondamental de la manière dont l’application charge les
données. Ce sont ces clés qui sont utilisées pour identifier les données à l’intérieur des fichiers
package.
Les Resource Keys sont sur 64 bits et sont construites de la façon suivante :
32 Bits: Type
32 Bits: Groupe
64 Bits: Instance
Où :
Type : est le type de la ressource. On peut assimiler le type comme une extension de fichier.
Exemple de type de ressource : textures, geometry, etc.
Groupe : Chaque type de ressource utilise un groupe de prédilection.
Instance : L’instance est généralement un ‘hachage’ (hash) calculé à partir du nom de la
ressource. Nous nous appuyons sur l'algorithme de hachage pour produire des cas uniques et
ainsi éviter des conflits entre les ressources.
Ces trois champs combinés identifient une ressource de manière unique. Si un Contenu
personnalisé ou un Mod doit venir remplacer du contenu Maxis original, alors ce CP / Mod doit
avoir la même Resource Key que la ressource qui doit être remplacée. Cependant le cas le plus
fréquent est la création de CP susceptible de venir compléter le contenu original du jeu. C’est
pourquoi il est important que ces Resource Keys soient uniques.
Il y a quelques bonnes pratiques à mettre en oeuvre pour générer des Resources Keys afin de
s’assurer que les ressources qui en dépendent n’entreront pas en conflit avec le contenu original
de Maxis ou avec celui d’autres créateurs de CP.

Groupe

Positionner le bit de poids fort à 1 pour tous les groupes.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4

Notez qu’il est possible que quelques ressources ne le supportent pas (il y a un
grand nombre de ressources dans le jeu, et toutes n’ont pas été testées). Si vous
rencontrez une ressource qui ne vous permet pas de positionner son bit de poids
fort à 1 au niveau de son groupe, veuillez le signaler à Maxis dans le forum dédié
au Modding : http://forums.thesims.com/.

Instance

TOUJOURS utiliser un hash pour l’instance de CP ou Mod. Vous avez pu remarquer
que quelques ressources originales de Maxis utilisent des instances qui sont des
incrémentations des instances précédentes (pour exemple, observez les ressources
du type 0x034aeeb). Le CP ne doit pas adopter cette méthode car cela conduira
immanquablement à des conflits. Lisez le ‘Catalogue des Instances’ plus bas dans
ce document pour de plus amples informations.

Lors de la génération du hash il est recommandé de le générer à partir d’une chaine
de caractères comportant un nombre de caractères conséquent propre au créateur.
Vous pouvez par exemple y inclure votre nom et le nom du Mod. Cela réduit les
chances de collision avec du CP d’autres tiers.

Un hash du type FNV-1 est recommandé.

Qui plus est, le bit de poids fort de l’instance doit être positionné sur 1 pour que le
package puisse être identifié comme CP. Vous avez juste besoin de générer le hash
de 64 bit puis ensuite de forcer le bit de poids fort à 1.
Le catalogue des Instances du CUS
« Le Catalogue des Instances » est le recueil des enregistrements qui sont utilisés pour garnir le
catalogue avec des articles. L’application va scruter les fichiers .package à la recherche de ces
ressources et les ajouter au catalogue qui sera présenté à l’utilisateur. Puisque le CP ajoutera de
nouveaux articles au catalogue, il y a des ressources importantes qu’il est bon de connaître.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Pour le catalogue de Créer Un Sim (‘CUS’), ces ressources sont du type 0x034aeecb. Voir le
fichier joint PartDataTemplate.bt qui donne des informations sur le format de ces enregistrements.
Comme mentionné ci-dessus, les instances du catalogue officiel de Maxis utilise des instances
consécutives et non un hash. Le CP lui doit utiliser un hash comme décrit ci-dessus.
Notez que cet enregistrement contient une liste des RK de ressource qui composent l'article. Si le
CP ou le Mod est une variation du contenu officiel de Maxis alors le CP peut pointer vers des
ressources originales contenues dans les packages originaux du jeu et se contenter de remplacer
ou modifier seulement celles qui personnaliseront l’article. Cela réduit la taille du CP ou du Mod.
Partie 2 – Moteur de jeu : Objets, Interactions et le réglage (Tuning)
Vue d'ensemble
Les Sims 4 sont très axés sur les données; vous pouvez créer de nouveaux objets, des
interactions, des compétences, des carrières, des aspirations et plusieurs autres caractéristiques
en utilisant uniquement des Mods contenant des données. Dans cette partie du document seront
abordés les fichiers de Tuning, leurs structures, la façon dont ils sont mis en package ainsi que
quelques autres ressources nécessaires à la personnalisation de quelques caractéristiques du
moteur de jeu des Sims 4. Nous avons fourni la description des fichiers de réglages (Tuning) des
Sims 4 dans un package séparé.
Les fichiers de Tuning.
Le jeu charge les fichiers de Tuning de trois façons différentes : à partir d’une ressource de
tuning ‘combinée’, à partir d’une ressource XML individuelle, et à partir d’une ressource binaire
du type « simdata ». La ressource combinée contient le Tuning de Maxis et ne doit généralement
pas être remplacée par des Mods. Cette ressource est compressée afin d’accélérer le temps de
chargement et ne peut pas être partiellement remplacée. Aussi si deux Mods la modifient, ces
deux Mods ne peuvent pas être utilisé simultanément – et des mises à jour futures de Maxis
risquent de mettre ces Mods hors d’usage -.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Au lieu de cela, les Mods devront ajouter ou remplacer dans des ressources XML ou simdata les
données de tuning désirées. Les données de Tuning XML des ressources sont chargées par la
simulation, et les données de Tuning des ressources du simdata sont chargées par l’UI et le
moteur de rendu. Quelques caractéristiques utilisent seulement les données issues des XML,
d’autres seulement celles des simdata et d’autres utilisent les données des deux.
Le set de package des Sims 4 n’utilise pas de XML de données de Tuning indépendantes, mais ce
document va vous expliquer comment vous y prendre pour les créer et les utiliser dans vos
Mods.
Le Tuning par XML utilise une variété de type de ressources. La section suivante indiquera
comment déterminer le type adéquat. Les ressources simdata utilisent toutes le type 0x545ac67a.
Nous verrons ces points plus en détail plus loin.
Descriptions du Tuning
Un fichier de description du Tuning (ou tdesc) vous informe sur la structure des fichiers de
Tuning qui sont chargés par le jeu. Les fichiers de description du Tuning ne sont pas chargés par
le jeu mais si vous voulez créer des fichiers de Tuning, il est essentiel que vous compreniez
comment ils sont constitués.
Vous trouverez plus bas un exemple partiel de description du Tuning. Le fichier a été segmenté
en lignes séparées afin de pouvoir documenter chaque partie séparément. Le fichier utilisé tdesc
est beaucoup plus compact.
Ligne 1 : les fichiers tdesc sont du XML, c’est donc là un header de fichier XML standard.
Ligne 2 : Il y a deux types de fichiers tdesc, le Tuning d‘Instance et le Tuning de Module Le
Tuning de Module définit des valeurs globales, tandis que le Tuning d’Instance définit de
nouvelles caractéristiques locales (à l’objet). La plupart des Mods ajouteront ou mettront à
jour les Instances de Tuning, mais il est aussi possible de modifier les Modules de Tuning.
NB : Il n’est pas possible de modifier partiellement le Tuning. Ainsi un Mod qui modifie un
Module de Tuning devra définir toutes les valeurs.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Ligne 3 : C’est le module Python associé à ce tdesc.
Ligne 4 : Si use_guid_for_reference est True (vrai), les ressources de Tuning créées par
Maxis utilisent des ID séquentiels, Si False alors les ressources utilisent des ID Hashes.
Tous les Mods devront utiliser des hashes FNV-1 64-bit pour éviter les conflits.
Line 5 : Si instance_subclasses_only est True, ce tdesc ne peut pas être utilisé directement
pour créer des Instances de tuning. Les instances devront être créées à partir d’un tdesc
dérivé.
Ligne 6 : Ceci définit le type de la ressource de l’instance créée avec ce tdesc. Le type de la
ressource est le résultat du hash FNV-1 32-bit de l’Instance. Pour exemple, le type pour la
ressource
« topic »
est
0x738e6c56.
Vous
pouvez
en
savoir
plus
ici :
http://www.isthe.com/chongo/tech/comp/fnv/index.html
Ligne 7 : Une chaine de caractères qui documente cette Instance de Tuning. La plupart des
données de tuning sont documentées afin d’expliquer comment utiliser le type ou le
champ ou la valeur de tuning.
Ligne 8 : La classe Python associée à cette Instance de tuning.
Ligne 9 : Un emplacement relatif de fichier qui peut être ignoré pour les Mods.
Ligne 10 : « VariableDeTuning » est un type spécial de champ de tuning qui accepte
différents types de valeurs. Pour chaque Instance il y a seulement une valeur de tuning qui
peut être sélectionnée les autres sont ignorées.
Line 11 : le nom d’une variable de tuning définit le champ qui peut être défini dans Python
avec la valeur de cette valeur de tuning. C’est aussi la clé qui peut être utilisée pour
assigner une valeur à ce champ dans un fichier de tuning.
Ligne 12 : C’est la classe Python associée à ce champ de tuning. Ce document ne
recensera pas les différentes classes utilisées par les valeurs de tuning, mais beaucoup
d’entre elles s’auto documente. Des connaissances sur les classes de tuning ne sont pas
nécessaires pour créer un fichier de tuning, mais un utilitaire de création de tunings peut
avoir besoin d’utiliser les classes pour déterminer quel élément de l’UI utiliser pour
modifier des valeurs de tuning.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Line 13 : Le type sous-jacent du champ de tuning. Il est significatif pour les champs de
valeurs de tuning, pas pour les « VariableDeTuning ».
Ligne 14 : La valeur par défaut de cette variable de tuning. Pour « VariableDeTuning » ceci
définit quel sous-champ est sélectionné par défaut – dans ce cas c’est la variable
désactivée. Les fichiers de tuning n’incluent pas généralement des champs avec des
valeurs par défaut. Le fait de ne pas renseigner ces champs conduira à ce que les fichiers
soient plus petits, se chargent plus rapidement. La seule raison pour définir une valeur par
défaut est de déterminer s’il est important que cette valeur ne varie pas dans le futur
même si la valeur par défaut varie.
Ligne 15 : Ceci est un nom convivial pour ce champ. Un utilitaire d’édition des valeurs de
tuning est susceptible d’afficher ce champ au lieu du « nom ». Il n’est pas utilisé dans les
fichiers de tuning.
Ligne 16 : Le « filtre », attribut qui peut être utilisé pour tour à tour cacher ou afficher les
champs de tuning dans un utilitaire d’édition de fichiers de tuning. Il n’est pas utilisé dans
les fichiers de tuning.
Ligne 17 : Ceci est une catégorie organisationnelle pour ce champ de tuning. Elle peut être
utilisée par un utilitaire pour regrouper les champs concernés. Il n’est pas utilisé dans les
fichiers de tuning.
Ligne 18 : C’est un champ
de description chaine qui
donne de l’information
supplémentaire sur ce champ. Il peut être affiché par un outil d’édition comme texte
d’aide. Il n’est pas utilisé dans les fichiers de tuning.
Ligne 19 : une « VariableDeTuning » est un champ basique de tuning. Les valeurs valides
pour ce champ sont définies dans la « classe » et le « type » du champ.
Ligne 21 : La classe « TunableExistance » signifie que cette variable de tuning n’a pas de
valeurs.
Ligne 23 : Une « TunableTuple » définit une structure contenant de multiples valeurs de
tuning liées. Chaque élément est assigné à son nom et est adressable via la
« TunableTuple ».
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Ligne 30 : C’est une variable de tuning de base contenant des valeurs.
Ligne 33 : Signifie que les valeurs assignées à cette variable de tuning doivent être du type
integer (valeur entière).
Ligne 34 : La valeur par défaut pour ce champ (si non spécifiée dans un fichier de tuning)
sera 1.
Ligne 38 : L’attribut « tuning_state » est une ‘information’ dédiée à un outil de tuning pour
signifier l’importance d’assigner une valeur à ce champ. Une valeur « NeedsTuning »
signifie que quelqu’un créant un nouveau fichier de tuning prendra ce champ en compte et
lui assignera une valeur.
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <Instance
3 module="topics.topic"
4 use_guid_for_reference="True"
5 instance_subclasses_only="False"
6 instance_type="topic"
7 description="A topic element."
8 class="Topic"
9 path="Topics\Descriptions">
10 <TunableVariant
11
name="guaranteed_content"
12
class="OptionalTunable"
13
type="None"
14
default="disabled"
15
display="Guaranteed Content"
16
filter="0"
17
group="General"
18
description="If enabled, will force content set generation to add options for&#xA;this topic.">
19
<Tunable
20
name="disabled"
21
class="TunableExistance"
22 display="Disabled" />
23 <TunableTuple
24 name="enabled"
25 class="TunableTuple"
26 display="Enabled"
27 filter="0"
28 group="General"
29 description="If enabled, will force content set generation to add options for&#xA;this topic.">
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
30 <Tunable
31 name="count"
32 class="Tunable"
33 type="int"
34 default="1"
35 display="Count"
36 filter="0"
37 group="General"
38 tuning_state="NeedsTuning"
39 description="The number of options to force into the content set." />
40 <Tunable
41 name="priority"
42 class="Tunable"
43 type="int"
44 default="0"
45 display="Priority"
46 filter="0"
47 group="General"
48 tuning_state="NeedsTuning"
49 description="The priority of this Topic vs. other Topics. Ties are randomized." />
50 </TunableTuple>
51 </TunableVariant>
52 <Tunable name="is_timed_relevancy" class="Tunable" type="bool"
53 default="False" display="Is Timed Relevancy" filter="0" group="General"
54 description="If set, relevancy value is treated as number of minutes until topic&#xA;is removed." />
55 <Tunable name="score_bonus" class="Tunable" type="int"
56 default="0" display="Score Bonus" filter="0" group="General" tuning_state="NeedsTuning"
57 description="Score bonus for matching topic tag." />
58 </Instance>
Il y a plusieurs d’autres types de champs définis dans la description du tuning. Les plus
importants sont :
“TunableList”: Ces types de champs définissent une liste de valeurs. Le type de chaque élément
de la liste est défini par les valeurs de la liste liée.
« TunableMapping » : Est un type spécial de liste qui définit les liaisons entre « Clé » et « valeur »
de tuning.
Les détails du Tuning XML
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Dans ce chapitre nous allons passer en revue ces éléments afin de créer une ressource de tuning
XML basée sur le tdesc du chapitre précédent. Comme pour le chapitre précédent, la ressource a
été divisée en lignes afin de rendre sa lecture plus simple. En réalité il n’est pas conseillé
d’insérer des retours chariot dans les fichiers de ressource de tuning. Les fichiers de tuning se
chargeront plus vite en mémoire s’il n’y a pas de retours chariot ni d’espaces.
<?xml version="1.0" encoding="utf-8"?><I i="topic" n="topic_Modding" c="Topic"
m="topics.topic" s="17242299340165163524"><V t="enabled" n="guaranteed_content"><U
n="enabled"><T n="count">2</T><T n="priority">3</T></U></V><T
n="is_timed_relevancy">True</T></I>
Le fichier de description de Tuning est appelé à être chargé ou lu par des humains, il est donc
doté d’éléments assez descriptifs et des noms d’attributs, mais le XML tuning est chargé par le
jeu aussi les éléments sont de simple caractères ce qui accélère leur chargement.
La ressource de tuning doit avoir une RK de ce type :
Type : 0x738e6c56 (le FNV-1 du mot topic)
Group: La ressource de tuning doit avoir un groupe de 0 (exception avec la règle énoncée plus
haut qui dit de mettre le bit de poids fort à 1)
Instance: C’est le hash 64-bit FNV-1 hash de votre nom + le nom de l’instance et le bit de poids
fort mis à 1. Ceci afin d’éviter d’éventuelles collisions avec les Mods d’autres modders.
Exemple: “simgurumodsquad:topic_modding” -> 0xe86b5482a0536889.
Un exemple du contenu d’une resource de tuning.
<?xml version="1 1.0" encoding="utf-8"?>
2 <I
3 i="topic"
4 n="topic_Modding"
5 c="Topic"
6 m="topics.topic"
7 s="17242299340165163524">
8 <V
9 t="enabled"
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
10 n="guaranteed_content">
11 <U
12 n="enabled">
13 <T
14 n="count">
15 2
16 </T>
17 <T
18 n="priority">
19 3
20 </T>
21 </U>
22 </V>
23 <T
24 n="is_timed_relevancy">
25 True
26 </T>
27 </I>
Analyse ligne par ligne :
Ligne 1 : C’est le header standard XML
Ligne 2 : l’élément « I » indique que c’est une instance de tuning. « M » pour une instance de
module.
Ligne 3 : l’attribut « i » est le type de l’instance, correspondant à « instance_type » dans le tdesc.
Ligne 4 : L’attribut « n » est le nom de l’instance. Ce nom ne sera jamais affiché dans le jeu.
Ligne 5 : L’attribut « c » est la classe Python de l’instance, correspond à « class » dans le tdesc.
Ligne 6 : L’attribut « m » correspond à « module » dans le tdesc.
Ligne 7 : L’attribut « s » est l’ID de l’instance de la ressource exprimée en décimal.
Ligne 8 : L’élément « V » est une valeur de tuning.
Ligne 9 : L’attribut « t » indique le type de la variable sélectionnée. « enabled » se réfère à la
‘TunableTuple’ qui débute à la ligne 23.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Ligne 10 : L’attribut « n » définit le nom du champ qui a été sélectionné. Il correspond
à la
‘TunableVariant’ de la ligne 10 du tdesc.
Ligne 11 : L’élément « U » représente une ‘TunableTuple’
Ligne 12 : Le nom de cette ‘TunableTuple’
Ligne 13 : Ce sont les variables de tuning imbriquées.
Ligne 14 : Le nom de cette variable de tuning est le champ qui commence à la ligne 30 du tdesc.
Ligne 15 : La valeur de cette variable de tuning. Notez que si cette valeur était 1, ce champ ne
devrait pas exister dans la ressource de tuning (parce que 1 est la valeur par défaut pour ce
champ).
Ligne 16 : la fin de cette variable de tuning.
Lignes 17-20 : Une autre variable de tuning emboitée à l’intérieur de la ‘TunableTuple’, cette fois
ci la ‘priority’ est égale à 3.
Ligne 21 : La fin de la ‘TunableTuple’
Ligne 22 : La fin de la variable de tuning.
Ligne 23-26 : Une autre variable de tuning de haut niveau, il s’agit ici d’un type booléen. Les
valeurs boléennes ne peuvent être que True ou False. La valeur par défaut est ‘False’, mais cette
variable de tuning positionne le paramètre is_timed_relevancy=True.
Ligne 27 : La fin de cette instance de tuning.
Remarquez que bien que le paramètre ‘score_bonus’ exists dans le tdesc, il n’existe pas un
paramètre équivalent dans la ressource de tuning. Ce champ sera doté d’une valeur égale à 0.
D’autres éléments et attributs peuvent apparaitre dans les fichiers de tuning :
« L » une liste de variables de tuning
« E » une variable de tuning de type énumération
« ev » une valeur issue d’une variable de type énumération.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Les fichiers simdata
La plupart des données de tuning sont utilisées par Python, mais certaines variables de tuning
sont chargées par le code C++ ou en complément du code C++. Ceci est déterminé par le
l’attribut ‘export_modes’ qui est présent dans quelques champs dans le tdesc comme par
exemple dans : Traits\Descriptions\Traits.tdesc.
Il est très important que le tuning XML soit identique au tuning binaire. Si une caractéristique de
tuning utilise des ressources XML et simdata et que les versions ne sont pas synchronisées, l’UI
et la simulation peuvent produire des effets erronés ou faire crasher le jeu.
Il y a trois modes d’exportation :
server_xml : est le mode par défaut. Ce champ est exporté dans des ressources de tuning XML et
chargé par la simulation.
server_binary et client_binary : Ce champ est exporté dans une ressource binaire de type
‘simdata’ et chargée par le code C++. Les deux variants font référence au fait que la variable de
tuning est chargée par le processus de la simulation ou par le processus du moteur de rendu.
Le tuning binaire est un format indépendant. Chaque fichier simdata contient un schéma qui
décrit le formatage des données dans la ressource ainsi que celui des données dans chaque
champ. A la différence du XML (qui est organisé sous forme hiérarchique), les simdata sont
organisés comme des tables. Ce format est trop complexe pour être complètement documenté
ici, mais nous avons fourni un fichier ‘Binary Template’ qui aide à comprendre comment ces
fichiers de tuning binaires sont structurés. Voir le fichier ‘simdata Template.bt’ pour plus de
d’informations.
Les chaines de localisation
Tous les textes qui s’affichent dans l’UI pour donner des informations d’interaction, de
personnalité, d’ humeur doivent être localisées. Il n’est pas possible de définir des noms
d’interaction directement dans le tuning. A la place, le fichier de tuning contient une clé
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
localisation qui sert de référence à l’UI pour trouver la chaine dans la table des chaines. La table
des chaines est documentée dans ‘StringTable Template.bt’. Afin de réduire les chances de
collisions entre les clés de ressources de chaines, vous devez préfixer vos clés de ressources de
chaines avec votre nom et générer ces RK avec un hash 32 bit FNV-1.
Dans les RK des ressources de chaines, le byte de poids fort correspond au langage utilisé
(exemple : EN-US est 0x00). Aussi pour une table de ressource de chaines, vous ne devez pas
positionner le bit de poids fort de l’instance à 1.
Nous ne nous étendrons pas plus ici sur les tables de chaines de caractères qui sont un système
vaste et arbitraire semblable aux tables de chaines de caractères des jeux Sims précédents.
Partie 3 – Exemple détaillé d’un Mod
Vue d’ensemble
Le but de ce Mod est de montrer comment faire quelques simples ajouts au jeu. Nous allons
créer un nouveau trait de personnalité (Novelist) qui sera disponible dans le CUS et rendra un Sim
meilleur dans la discipline écriture. Nous ajouterons ensuite un objet avec une interaction unique
pour les Sims ‘Novelist’ qui leur donneront un ‘état d’esprit’ dans le jeu.
Cet exemple de Mod est fourni avec ce document et ce fichier s’appelle : simsmodssquad-
novelist.package.
Part I : Installation du trait de personnalité
Trait de personnalité
Faisons un trait de personnalité Novelist. Le novelist devra naturellement être meilleur (que les
autres) en écriture, devenir plus habile en écrivant plus vite et peut être doté d’une nouvelle
mimique lorsqu’il est assis à son computer.
Nous commençons par créer une XML appelé trait_Novelist.trait.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Nous éditons ensuite les champs principaux qui doivent avoir une signification pour le trait.
1.) Display Name (display_name) : est une référence vers une entrée de chaine de caractères
qui sera affichée comme nom du trait. Nous appellerons ce trait ‘Novelist’ et ajouterons
cette chaine de caractères à notre base de données de chaines de caractères locale.
2.) Icon (icon) : est la référence à la valeur d’une icône qui sera affichée pour notre trait. Pour
cet exemple et pour ce trait, prenons une icône existante pour l’écriture dont la RK est
2f7d0004:00000000:a6c70d2325617d80.
3.) Trait Description (trait_description) : comme pour le Display Name, c’est une référence
vers une entrée de chaine de caractères qui sera affichée comme description de ce trait.
4.) Ages (ages) : une liste de tranches d’âge valides pour ce trait. La plupart des traits de
personnalité sont valables pour toutes les tranches d’âge qui sont : BABY, CHILD, TEEN,
YOUNGADULT, ADULT et ELDER (BEBE-ENFANT-ADOLESCENT-JEUNE_ADULTE-ADULTE et
SENIOR)
5.) Buffs > Buff Type (buffs / buff_type) : C’est la référence vers un ID de fichier « buff » une
« moodlet » invisible qui est donnée à tout Sim doté de ce trait. Cette référence est incluse
dans une liste. Nous ferons ce fichier à la prochaine étape et y ajouter la référence.
6.) Trait Type (trait_type) : Nous devons paramétrer ceci à PERSONALITY afin de faire de ce
trait un trait de personnalité (en opposition à HIDDEN par exemple qui le rendra invisible
pour le joueur).
7.) Tags (tags) : Nous avons besoin de 2 tags pour ce trait afin de l’afficher correctement dans
le CUS – TraitPersonality et TraitGroup_Hobbies. Le dernier tag le fera s’afficher dans le
groupe
correct,
les
3
autres
groupes
pour
les
traits
de
personnalité
sont
Trait_GroupEmotionnal, TraitGroup_Lifestyle et TraitGroup_Social.
8.) Bonus – Trait Asm Param (trait_asm_param) : Si on doit créer une nouvelle animation dans
le CAS Animation State Machine (ASM) et qu’on la fasse correspondre au paramètre correct
(CAS_Traits) dans le bon état (Traits), cette animation sera démarrée lorsque le trait sera
choisi dans le CUS. On peut aussi lier cette valeur à une animation déjà existante
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
(habituellement juste le nom du trait). Pour le novelist, utilisons le paramètre ‘Creative’. Le
CAS ASM data a pour RK 02d5df13:00000000:d8d5c1186ba97fdc.
Les traits sont des objets qui demandent la présence d’un fichier binaire simdata.
Buff (invisible)
Nous avons besoin de créer un « buff » de façon à être en accord avec notre trait. Ce « buff » sera
invisible pour le joueur mais modifiera quelques caractéristiques afin de rendre le Sim meilleur
en écriture.
Créer un fichier appelé Buff_Trait_Novelist.buff.
Il y a une foule de chose que les « buff » peuvent faire pour affecter les Sims. Nous allons juste
éditer quelques champs qui ont un sens pour les écrivains.
1.) Interactions (interactions) : Si nous paramétrons ceci sur ‘enabled’, nous pouvons ajouter
une entrée interaction à la liste. Faisons une référence à une interaction qui existe déjà –
Idle_Trait_Creative (ID 13500). On aurait pu aussi créer une nouvelle. Cette référence
signifie que chaque Sim doté de ce trait affichera cette interaction de temps en temps.
Pour notre novelist, ce sera un mouvement d’inoccupation des Sims qui ont le trait créatif.
2.) Game Effect Modifiers (game_effect_modifiers) : C’est le champ de tuning qui sera
responsable la plupart du temps pour les réglages les plus importants / significatifs et qui
aura le plus d’influence sur le trait donné au Sim.
a. Ajoutons une entrée à la liste du Game Effect Modifiers et paramétrons la en tant
que Autonomy Modifier. Cela nous permettra ainsi de modifier la façon dont
beaucoup d’actions d’arrière-plan sont activés lorsque ce trait est actif.
b. Dans la variable de tuning Autonomy Modifier, nous allons ajouter une variable Stat
Use
Multiplier
dans
laquelle
statistic_Skill_AdultMajor_Writing
nous
(ID
allons
16714),
paramétrer
et
sous
la
valeur,
clé
vers
mettons
apply_direction à INCREASE (qui s’appliquera quand la compétence augmentera) et
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
le multiplier sur 1.5. Ce qui aura pour effet qu’à chaque fois que la compétence de
ce Sim augmentera, ce sera avec 50% de rapidité en plus.
c. Ajoutons une nouvelle entrée à la Game Effect Modifiers mais cette fois ci ce sera un
Effective Skill Modifier.
d. Dans le Effective Skill Modifier que nous venons de créer, nous allons paramétrer la
modifier_key à skill_type (on peut aussi utiliser skill_tag), si nous voulions
influencer plusieurs compétences partageant le même tag) et paramétrer skill_type
sur une référence de la compétence écriture (même ID 16714). Enfin nous ajoutons
une modifier_value paramétrée à 2. Ce qui a pour effet que le jeu considérera que la
compétence du Sim est de 2 points au-dessus de sa compétence d’écriture
courante. Comme nous ne voyons pas ce qui augmente exactement dans son
panneau de compétence ou ce qui débloque les nouvelles interactions liées aux
niveaux de compétence, il atteindra plus vite les niveaux de compétences élevés et
aura ainsi plus de succès que d’échecs dans l’amélioration de sa compétence
écriture.
3.) Visible (visible) : Un dernier paramètre pour nous assurer que ce « buff » sera invisible de
façon à ce qu’il ne s’affiche pas dans le jeu. Paramètre à laquelle nous assignons la valeur
False.
Comme nous savons que les « buff » ont besoin d’un simdata accompagnateur, alors il faut en
créer un pour notre XML de tuning.
Voilà pour la partie 1!
Nous avons juste besoin de créer quatre fichiers (deux XML, deux
simdata), mais avec ces deux fichiers, nous avons déjà créé un trait de personnalité que nous
pouvons sélectionner dans le CUS, qui a une icône et qui a de l’influence sur la compétence
écriture du Sim dans le jeu.
Part II : Nouvel Objet, Nouvelle Interaction, Nouveau « Moodlets »
Dans cette partie 2, nous allons créer un nouvel objet pour notre Sim, lui allouer une nouvelle
interaction qui donnera un « Moodlets » visible, un menu seulement disponible pour les Sims qui
sont novelists.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Instance d’Objet du Catalogue
Cette section est consacrée aux Instances d’Objets du Catalogue. Les Instances d’Objets du
Catalogue sont très proches des Instances d’Objets du Catalogue du CUS décrit dans ‘Le
catalogue des Instances du CUS’ mais sont pour les objets du mode Construction / Achat. Nous
n’avons pas fourni un fichier .bt pour les Instances du Catalogue d’Objets. C’est à l’heure actuelle
un challenge pour le modder de décoder ces fichiers binaires.
Une rapide information élémentaire :
Un objet du catalogue ‘achat’ tel qu’une porte, une chaise, une table ou dans le cas présent une
machine à écrire – est actuellement définie par 2 ressources :

Une Définition de l’Objet (type 0xc0db5ae7) qui contient les informations de rendu de
l’objet tel que les références vers le model, les textures et les ‘rigs’ que l’objet utilisent. Et
chose importante pour cet exemple, une référence vers la variable de tuning de l’objet.

Une Instance d’Objet de Catalogue (type 0x319e4f1d) qui contient les informations sur la
façon d’afficher cet objet dans le catalogue tels que le nom et la description, le type de
l’objet et la section du catalogue où il doit apparaître.
Pour créer un nouvel objet dont on peut faire l’acquisition, nous devons créer les deux
ressources. Pour cet exemple, nous allons juste mentionner les modifications qui sont
nécessaires pour faire une nouvelle machine à écrire pour ce Mod.
Vous pouvez examiner la machine à écrire standard des données de Maxis pour mieux
comprendre les modifications binaires qui seront faites à ces ressources pour notre exemple.
Les ressources de Maxis :
c0db5ae7:00000000:0000000000006e4e and 319e4f1d:00000000:0000000000006e4e
Les ressources équivalentes pour cet exemple :
c0db5ae7:80000000:889a604f0a722f69 and 319e4f1d:80000000:889a604f0a722f69
Les paramètres qui ont été modifiés pour cet exemple :
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
1.) Catalog Name and Catalog Description : La création de deux chaines de caractères et leur
intégration dans nom catalogue et description catalogue rendra l’objet plus facile à trouver
dans le Catalogue des Achats (et une chance de mettre en valeur les nouvelles
compétences d’écriture). Ces clés de chaine sont définies dans le Catalogue des Instances
d’Objet.
2.) Simoleon Price : C’est simplement le prix de l’objet dans le catalogue. Il est défini dans le
Catalogue des Instances d’Objet.
3.) Object Tuning ID : Chaque fichier d’objet du catalogue doivent faire référence à un fichier
de tuning d’objet. C’est indiqué dans la ressource de la Definition d’Objet. La section
suivante expliquera comment créer des valeurs de tuning pour notre nouvelle machine à
écrire.
Fichier de Tuning d’Objet
Tout objet muni d’une interaction ou des ‘comportements’ nécessite un fichier de tuning d’objet.
Créons en un : le fichier object_TypewriterNovelist.object
Ajoutons maintenant une interaction à l’objet.

Super_Affordances (_super_affordances) : La seule chose que nous voulons ajouter à notre
objet spécial est une nouvelle interaction qui se trouve dans la liste des affordances. Nous
n’avons pas encore une référence à l’interaction que nous ajoutons maintenant puisque
nous ne l’avons pas encore créé ! Alors créons la à présent et ajoutons la ensuite ici.
Interaction
Une interaction est quelque chose qu’un Sim peut faire avec un objet, un autre Sim ou avec luimême. Nous allons ici ajouter une nouvelle interaction sur notre machine à écrire décorative qui
sera seulement disponible aux Sims muni du trait novelist et qui leur donneront un « buff » (ou
deux !) à la fin de l’interaction.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Commençons par créer un fichier : typewriterNovelist_Reminisce.interaction.
Nous allons faire une super interaction (la plupart des interactions d’objet sont des super
interactions tandis que les interactions sociales sont des « mixer » interactions) et affectons lui
ces variables de tuning :
1.) Basic Content (basic_content) : paramétrons le ‘basic_content’ sur ‘one_shot’ et ensuite
dans animation_ref, référençons l’animation 12069 qui est une animation qui donne au
Sim un air réfléchi / attentionné.
2.) Contraints (_constraints) : du fait que cette animation est une animation faite pour un seul
Sim, elle peut avoir lieu n’importe quand et n’importe où. Avec cette contrainte, nous
paramétrons le fait que le Sim sera obligé de se rapprocher et de faire face à cet élément
de décor avant que l’animation soit démarrée.
3.) Icon (_icon) : au lieu de créer une icône personnalisée nous allons utiliser l’icône qui fait
référence à l’objet cible pour notre interaction. Paramétrons l’icône sur ‘participant’ et
dans participant_type, utilisons l’objet d’énumération. Ce qui signifie que lorsque cette
interaction sera placée dans la file d’attente, elle aura l’icône de la machine à écrire.
4.) Display Name (display_name) : nous ajoutons ici une chaine de caractère – ‘Reminisce’ –
qui sera affichée dans le menu lorsqu’on cliquera sur l’objet.
5.) Test Globals (test_globals) : pour affecter ce menu au trait Novelist car nous avons fait
cette interaction seulement pour les Sims qui ont ce trait. Pour y parvenir, nous ajoutons
un nouveau test au ‘test global’. Nous serons capables d’utiliser ce test de trait et
d’ajouter une référence au trait que nous avons créé dans la partie 1 dans la liste
‘whitelist_traits’.
6.) Outcome (outcome) : ‘outcome’ est ce qui survient comme résultat à l’objet principal qui a
déclenché l’action / interaction(le Sim) une fois que l’action / l’interaction soit terminée.
Nous allons créer pour cette interaction un ‘outcome’ à deux sorties and paramétrons la
‘base_chance’ sous ‘success_chance’ à 75% - C’est le pourcentage de chance que
l’interaction se termine par un succès au lieu d’un échec.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Créons deux états d’esprits / humeurs
qui affecteront le Sim suivant que l’interaction s’est
terminée. Une fois que nous aurons fait ça, nous reviendrons les insérer dans la variable de
‘tuning outcome’ de cette interaction.
Buff (visible) x 2
Créons les deux fichiers, Buff_TypewriterNovelist_Success.buff et
buff_TypewriterNovelist_Fail.buff
Alors qu’il y a une variété de choses visibles qu’un « buff » peut faire, nous allons nous
concentrer sur les aspects importants pour qu’un état d’esprit fonctionne correctement.
1.) Emotion (mood_type) : détaille quel type d’émotion l’état d’esprit va donner au Sim. Pour
nos deux « buff », prenons 14611 (inspiré) pour le succès et 14635 (embarrassé) pour
l’échec.
2.) Weight (mood_weight) : c’est le nombre qui détermine la hauteur de l’état d’esprit.
Lorsqu’un Sim a plusieurs états d’esprit, les ‘poids’ de chaque états d’esprit pour la même
émotion s’additionne et celle qui a le poids le plus élevé l’emporte. Nous allons juste
paramétrer les ‘poids’ sur 1 afin que ces humeurs n’influencent pas trop les émotions de
votre Sim.
3.) Temporary Commodity (_temporary_commodity_info) : la plupart des états d’esprit simples
sont contrôlés par un besoin temporaire qui est une façon fantaisiste de déterminer la
durée d’action d’un état d’esprit avant qu’il disparaisse. Paramétrons le ‘commodity’ ici et
donnons
lui
deux
informations
une
variable
d’énumération
Inspired_Buffs
et
Embarrassed_Buffs comme catégorie et une durée maximale de 120. La durée maximale
en minutes Sim de cet état d’esprit sera de 2 heures.
4.) Name & Description (buff_name / buff_description) : chaque « buff » a deux chaines de
caractères une pour le nom et l’autre pour la description. Les eux peuvent pointer une
seule clé de chaine.
5.) Icon & Icon Highlight (icon / icon_highlight) : ces champs pointent sur une référence
d’image qui est l’icône qui sera affichée le « buff » courant lorsque le Sim l’a. Ces champs
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
peuvent être identiques sauf si l’icône doit être différente suivant que le Sim a l’émotion
ou ne l’a pas.
6.) Optionnal :
Audio
String
(audio_sting_on_add
/
audio_sting_on_remove) :
ils
sont
paramétré car ce sont les références des sons qui sont joués lorsque qu’un état d’esprit
est ajouté ou retiré.
Chaque « buffs » a aussi besoin d’un fichier binaire simdata pour les informations associées
destinées à l’UI.
Loot x 2
Nous sommes presque prêts à injecter ces états d’esprit dans notre interaction ‘outcome’ mais
nous avons besoin de deux fichiers de plus. Comme beaucoup de tuning pour les Sims 4 sont
pilotés par des données et afin de nous donner plus de flexibilité, les interactions ‘outcomes’ ne
donnent pas directement de « buffs ». Ils ont à la place un champ de tuning appelé ‘Loot Lists’
qui définit des lists de « loot » à donner. Les « loots » revêtent différents aspects et pour les
« buffs », les « loots » sont un aspect. La même idée peut être étendue pour donner des choses
telles que changement d’état, article d’inventaire, promotion de carrière.
Pour injecter notre interaction à nos « buffs », nous allons créer deux derniers fichiers.
Loot_Buff_TypewriterNovelist_Fail.action et Loot_Buff_TypewriterNovelist_Success.action.
Il n’y a pas trop de tuning à faire et nous avons juste besoin de faire dans ces fichiers :
1.) Buff Type (buff_type) : dans la liste des ‘loot_actions’ nous allons ajouter une variable buff
et y attacher le ‘buff_type’ approprié (qui sera une référence au « buffs » que nous avons
créé à l’étape précédente). Faites attention à bien lier le « buff » d’échec au loot d’échec et
le « buff » de succès au loot de succès !
2.) Buff Reason (buff_reason) : activez le ‘buff_reason’ et faites le pointer vers une chaine de
caractères. Les deux « loots » peuvent se partager la même chaine. Cette chaine est celle
sous l’état d’esprit afin d’aider le joueur à comprendre ce que le Sim a pu faire pour avoir
eu cet état d’esprit.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Retour dans notre interaction
Maintenant que nous avons nos deux IDs pour nos deux « loots » nous pouvons retourner dans
notre interaction et les insérer dans la liste des « loots » appropriée (cherchez ‘loot_list’ sous
‘failure_actions’ et ‘success_actions’).
Ajoutons un autre ‘global test’ sous la liste ‘test_global’. Il est idiot de laisser un Sim avoir en
boucle les effets de cet état d’esprit surtout que cela peut être une fois en positif et une autre
fois en négatif. Ca n’a pas de sens. Nous allons faire en sorte qu’un Sim ne puisse plus avoir les
effets de cette interaction s’il a fait récemment cette interaction, mais seulement la permettre aux
autres Sims qui n’ont pas à l’instant considéré l’un de deux effets produits par cette interaction.
Pour ce faire, nous ajoutons une variable « buffs*** » à la liste ‘test_globals’, nous créons une
blacklist sous cette variable et nous y ajoutons les références des deux « buffs*** » que nous
venons de créer comme variables de tuning dans cette liste.
Note : vous avez pu remarquer qu’il y a un buff additionnel qui apparait dans le ‘test_globals’
(26171). Ce buff est un buff de ‘blacklist’ présent dans presque toutes les interactions et c’est
une bonne habitude à prendre de l’ajouter car ce buff vérifie que ce Sim n’est pas en train de
mourir. Il fait en sorte qu’un Sim moribond ne puisse pas déclencher d’interaction afin de ne pas
poser de problème. Vous noterez également qu’il y a un test ‘sim_info’. Alors qu’il n’y a pas de
tranche d’âge spécifiée, cette structure utilise les âges par défaut qui rendent cette interaction
disponible pour les adolescents, les jeunes adultes, les adultes et les seniors. Si vous voulez que
l’interaction soit disponible par toutes les tranches d’âge, supprimez ce test. Si au contraire vous
voulez rendre cette interaction disponible seulement pour une ou des tranches d’âge, spécifiez
les âges dans la liste des tranches d’âge. Prenez garde au fait que rendre une animation faite
pour les adultes disponible pour les enfants peut conduire à des effets assez surprenants et
horribles pour des yeux humains.
Une fois que nous avons terminé avec ceci, nous devrions être capables de faire les choses
suivantes dans le jeu :
1.) Assigner un nouveau trait de personnalité: novelist à un Sim dans le CUS.
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
2.) Constater que ce Sim gagne plus rapidement ses compétences d’écrivain et se montre
meilleur dans le jeu.
3.) Peut faire l’acquisition d’une nouvelle machine à écrire dans la partie objet de décoration
du catalogue achat.
4.) Si notre Sim a le trait Novelist, il aura une nouvelle interaction appelée ‘Reminisce on that
objet’.
5.) Après avoir fait cette interaction il aura un état d’esprit positif dans 75% des cas et négatif
dans 25% des cas.
Voilà ! Avec une petite exploration supplémentaire dans les fichiers de documentation tdesc
associés et de la multitude de façon que les fichiers de tuning peuvent être modifiés, vous verrez
qu’il y a une foule de choses qui peuvent être faites avec simplement quelques données dans Les
Sims 4.
Le Packaging
Les ID d’instance pour le tuning doivent être générées en suivant ce schéma :
Actions
Resultats
Nom de Ressource
Buff_Trait_Novelist
Votre Nom
SimGuruModSquad
Combinaison des deux
SimGuruModSquad:Buff_Trait_Novelist
Conversion en minuscules
simgurumodsquad:buff_trait_novelist
Hash FNV-1 64-bit
0x48a4d404a5a3bb0e
Positionner le bit de poids fort à 1 (un OR avec 0xc8a4d404a5a3bb0e
0x8000000000000000
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
L’ID du groupe pour les ressources de tuning doit être 0 (actuellement mettre une autre valeur
que 0 au groupe n’est pas accepté).
Pour les ressources de cet exemple, les résultats pour les ID d’instance donnent :
Nom de Ressource
ID d’Instance
SimGuruModSquad:Buff_Trait_Novelist
0xc8a4d404a5a3bb0e
SimGuruModSquad:Buff_TypewriterNovelist_Fail
0xef763f593d7b1d07
SimGuruModSquad:Buff_TypewriterNovelist_Success
0x86c68a94e577adc8
SimGuruModSquad:Loot_Buff_TypewriterNovelist_Fail
0xfecfa9ccb71b7a4c
SimGuruModSquad:Loot_Buff_TypewriterNovelist_Success 0xb6172a3815ab8ef1
SimGuruModSquad:object_TypewriterNovelist
0x889a604f0a722f69
SimGuruModSquad:trait_Novelist
0xed7000a97ea8f032
SimGuruModSquad:typewriterNovelist_Reminisce
0xa586620a4681b704
SimGuruModSquad:typewriterNovelistObject
0x889a604f0a722f69
SimGuruModSquad:NovelistStrings_ENG_US
0x00d4c1ffd5a99fdb
Partie 4 – Sripts Mods
Même si beaucoup de paramètres peuvent être modifiés et ajoutés en se servant des ressources
de tuning, quelques paramètres demandent la modification ou l’extension de scripts. Les Sims 4
utilisent Python 3.3.5. Il est possible d’ajouter vos propres scripts et de modifier / remplacer des
scripts du jeu.
Les scripts peuvent être ajoutés au jeu via le dossier ‘Mods’ (voir la section Installation du
Contenu Personnalisé) suivant 2 méthodes :
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
1.) Dans une archive zip contenant des scripts Python compilés :
a. Créez une archive zip vide dans le dossier ‘Mods’
b. Ajoutez vos scripts compilés (les scripts compilés portent une extension.pyo) dans
ce zip. Voici une méthode basique pour générer des fichier .pyo :
i. Lancez ‘python.exe –O’
ii. Importez votre fichier avec ‘import mon_fichier’
iii. Allez dans le dossier ‘__pycache__’
iv. Renommez le fichier ‘mon_fichier.cpython-33.pyo’ en ‘mon_fichier.pyo’
v. Mettez le fichier dans votre archive.
c. Si vous voulez que les autres voient ce que fait votre Mod, vous pouvez y ajouter
votre fichier .py (et pyc).
2.) Comme fichier indépendant dans un dossier de Scripts :
a. Créer un dossier portant le nom de votre Mod dans le dossier Mods.
b. Dans ce nouveau dossier créez un dossier appelé ‘Scripts’
c. Sauvegardez votre script Python dans ce dossier.
d. Les deux approches acceptent des packages Python (des dossiers imbriqués
contenant des fichiers Python).
Il est recommandé de distribuer les scripts Python dans des archives zip afin d’en faciliter
l’installation aux destinataires des Mods et aussi parce que les scripts Python compilés
améliorent les performances. La méthode indépendante est dédiée aux tests des scripts avant
leur distribution.
Vous pouvez remplacer les scripts de Maxis, toutefois et afin d’éviter des crashes du jeu, vos
scripts devront préserver les APIs de Maxis autant que possible. Afin de remplacer un script dans
un package secondaire (un script placé dans un sous-dossier qui contient un fichier
‘__init__.pyo’, votre Mod doit contenir tous les autres fichiers dans le même dossier. Ce type de
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972
Les Sims™ 4
Mod peut avoir besoin d’être mis à jour lorsque le jeu est aussi mis à jour. Il est donc
recommandé d’éviter cela autant que possible.
Un exemple de script Mod est fourni avec ce document : simsmodsquad-maslow.zip. Ce Mod
ajoute un nouveau code de triche à la console qui met au maximum tous les besoins des Sims du
lot courant. Sauvegardez le Mod dans votre dossier Mods, ouvrez la console de triche dans le jeu
(SHIFT+CTRL+C) et tapez la commande : maslow true.
Conclusion
Je vous remercie pour l’intérêt que vous témoignez dans la création de Contenu Personnalisé
pour Les Sims 4. Nous sommes toujours inspirés par vos créations et attendons avec impatience
de voir ce que vous inventez. N’hésitez pas à vous rendre sur les forums officiels des Sims 4 à
http://forums.thesims.com/.
Appendice A : Fichiers de Référence
Les fichiers suivants ont été inclus avec ce document :
PackageTemplate.bt
Fichier BT décrivant le format binaire du fichier
.package
PartDataTemplate.bt
Fichier BT décrivant le format binaire des fichiers de
ressource du type 0x034aeecb
simdata Template.bt
Fichier BT décrivant le format binaire des données
de tuning
StringTable Template.bt
Fichier
BT
ressources
décrivant
de
le
localisation
format
binaire
(ressource
du
des
type
0x220557da)
TuningDescriptions.zip
Fichier tdesc pour tout le tuning
simsmodsquad-maslow.zip
Exemple de script Python: mettre tous les besoins
des sims du lot au maximum
simsmodsquad-novelist.package
Exemple de Mod tuning: la creation de ce mode est
l’objet de ce document
Titre original : Creating Custom Content and Mods for The Sims™ 4
Auteur: SimGuruModSquad (Maxis / EA)
–
Traduction : Zano972

Documents pareils

les jeux vid o, de e

les jeux vid o, de e 1950-1960: les préludes de la création du jeu vidéo. Pour certain, le jeu vidéo à proprement parlé, débuterais en 1953. Au cours d'un salon qui conviait les hôtes à s'exercer à un jeu de morpion, s...

Plus en détail

Mémoire sur le jeu vidéo - Matthieu Billon Lanfrey

Mémoire sur le jeu vidéo - Matthieu Billon Lanfrey contrôle une fusée et doit faire exploser celle de son adversaire à l’aide de missiles. Les (2) Pour plus d’information sur la préhistoire du jeu vidéo : http://mapage.noos.fr/gamotek/Index.htm et ...

Plus en détail