Les Sims™ 4 - les dessous des sims
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
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
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
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
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...
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 ...