Il est très facile d’ajouter des unités à Cold Waters. Si vous avez des idées ou des envies de créer votre propre sous-marin ou votre propre navire, nous allons voir comment procéder. Sachez tout de même, que temps que les fichiers de textures ne seront pas ouvertes, il y aura des restrictions à ce niveau. Mais le choix est large pour trouver le modèle adéquat. C’est ce que j’ai fait pour l’Akula III Gepard. Tous les fichiers nécessaires à la création d’une unité sont déjà disponibles dans le jeu. Il faut simplement chercher dans le dossier default quand l’arborescence vous indique override. Par exemple, pour importer la liste des unités il faudra chercher dans :
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> default
[]-> vessels
|-> _vessel_list.txt
Si des fichiers du même nom modifiant le jeu sont déjà présents dans le dossier override, alors il faudra importer ces derniers et non ceux du répertoire default. Pour plus d’infos sur les mods dans Cold Waters, rendez-vous à http://games.alex-box.net/cold-waters-modifier-le-jeu/
Note : les dossiers sont représentés par des crochets []-> et les fichiers par des barres verticales |->
D’abord, nous allons créer l’arborescence pour que notre nouvelle unité soit installable avec JSGME.
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
Tout ce que nous allons créer maintenant se trouvera dans le dossier override.
Ajout de l’unité à la liste existante
Cette liste est dans un fichier nommé _vessel_list.txt qui lui même est dans le dossier vessels. Nous allons donc copier ce fichier et le placer dans notre mod après avoir pris soin d’y créer un dossier vessels. Si ce fichier existe déjà dans override/vessels/, importez celui-ci.
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
[]-> vessels
|-> _vessel_list.txt
Dans ce fichier donc, ajoutez le nom de votre unité en vous arrangeant pour qu’il ait un nom unique (ici avec le préfixe « j_ » (comme jouable). L’emplacement dans la liste influe directement sur l’ordre dans le jeu :
j_ssn_akula3 // => Le nom de l'unité que je vais créer usn_ssn_los_angeles_688i usn_ssn_los_angeles usn_ssn_narwhal [...]
Importer les paramètres de l’unité
Dans le même répertoire (vessels), importons les paramètres de l’unité. Le plus facile est de prendre une unité aux caractéristiques proches, puis de les modifier ensuite. Notez que pour l’unité soit jouable, il faudra ajouter des paramètres (A voir impérativement plus bas dans cet article). Ensuite renommer le fichier avec le nom donné à votre unité dans la liste créée ci-dessus. Notre mod ressemble maintenant à cela :
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
[]-> vessels
|-> _vessel_list.txt
|-> j_ssn_akula3.txt
Pour le moment, nous importons les fichiers. Ensuite nous modifierons les paramètres…
Toujours dans le dossier vessels, créons deux dossiers nommés profile et signature.
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
[]-> vessels
|-> _vessel_list.txt
|-> j_ssn_akula3.txt
[]-> profile
[]-> signature
D’abord importez l’image représentant la signature acoustique de votre nouvelle unité dans le dossier signature. La modification de cette image est simple avec éditeur d’image (Photofiltre p.e.) et conseillée pour avoir une signature unique de votre nouvelle unité. Cette image doit être sous forme PNG et avoir le même nom donné à votre unité (dans la liste) suivi du suffixe « _sig » . Notre mod :
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
[]-> vessels
|-> _vessel_list.txt
|-> j_ssn_akula3.txt
[]-> profile
[]-> signature
|-> j_ssn_akula3_sig.png
Dans le dossier profile, nous importons l’image du profile de notre unité, celle qui figurera dans le manuel d’identification. Cette image doit correspondre à l’unité de laquelle est dérivée la vôtre. Par exemple, pour l’Akula III, je me suis inspiré du Victor II. J’ai donc pris son image de profile, l’ai importé dans le dossier profile puis l’ai renommé avec le nom donné dans la liste suivi du suffixe « _profile » .
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
[]-> vessels
|-> _vessel_list.txt
|-> j_ssn_akula3.txt
[]-> profile
|-> j_ssn_akula3_profile.png
[]-> signature
|-> j_ssn_akula3_sig.png
Pour finir, créons le fichier qui accueillera la description de notre nouvelle unité. Créons d’abord un dossier language_en, puis dans ce dossier, un autre nommé vessel et pour finir le fichier de description portant le nom de notre unité suivi du suffixe « _description » . L’état de notre mod :
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
[]-> vessels
|-> _vessel_list.txt
|-> j_ssn_akula3.txt
[]-> profile
|-> j_ssn_akula3_profile.png
[]-> signature
|-> j_ssn_akula3_sig.png
[] -> language_en
[]-> vessel
|-> j_ssn_akula3_description.txt
Dans ce fichier, vous pouvez y mettre ce que vous voulez, il faudra simplement respecter les balises suivantes (en gras) :
[Unit Reference] ShipClass=Akula III // Le nom de votre unité Description=Classe Akula III Gepard - SSN K-335. History=Le Gepard - K-335 est le seul sous-marin de classe Akula III ayant été achevé. Il est plus imposant l'Akula II. Les dernières technologies ont été utilisées par la réduction de son bruit. Le Gepard est le sous-marin russe le plus avancé avant que les sous-marins des classes Severodvinsk et Borei ne soient mis en service. [Player Ship Instances] PlayerClassNames=Gepard // La liste des noms possibles pour les sous-marins de cette classe PlayerClassHullNumbers=K-335 // Numéros séparés par des virgules, // et en directe correspondance avec la liste ci-dessus. // exemple : //[Player Ship Instances] //PlayerClassNames=Gepard, Cougar, Tigre //PlayerClassHullNumbers=K-335, K-339, K-333
Voilà, tous les fichiers sont importés. Modifions maintenant les données de notre nouvelle unité.
Modifications des paramètres
Ouvrez le fichier j_ssn_akula3.txt et modifiez les paramètres désirés. Ce n’est pas très difficile à comprendre. Notez tout de même les commentaires pour les parties importantes voir indispensables pour que l’unité soit jouable.
Designation=SSN ShipType=SUBMARINE PlayerHUD=hud/russian // Obligatoire pour que l'unité russe soit jouable // le dossier hud est également à créer. Cf. mod Akula III joint Length=110 Beam=9.70 HullHeight=0.08 Displacement=12770 Crew=73 Range=20000 HullNumbers=FALSE [Movement] SurfaceSpeed=20 SubmergedSpeed=33 AccelerationRate=0.27 DecelerationRate=0.08 RudderTurnRate=0.75 TurnRate=2.2 PivotPointTurning=0.256 DiveRate=5 SurfaceRate=5 BallastRate=0.25 Waterline=0.0 SubmergedAt=0.111 CavitationParameters=20,-100 PropRotationSpeed=-450,450,450 TestDepth=1800 EscapeDepth=600 // Conseillé pour jouer en campagne [Acoustics & Sensors] SelfNoise=115 ActiveSonarReflection=25 ActiveSonarModel=wp_shark_gill PassiveSonarModel=wp_shark_gill TowedArrayModel=wp_shark_tail AnechoicCoating=TRUE RADAR=wp_snoop_tray RADARSignature=SMALL [Weapon Systems] TorpedoTypes=wp_uset-80,wp_test-71,russian_moss,wp_ss-n-16 TorpedoNumbers=15,0,5,5 TorpedoTubes=6 NumberOfWires=4 TubeConfig=1,1,1,1,1,1 TorpedoTubeSize=21 TubeReloadTime=200 NoisemakerName=wp_noisemaker NumberOfNoisemakers=20 NoisemakerReloadTime=20 // La partie Subsystem permet l'affichage de l'unité. Cette partie est indispensable. [Subsystems] LabelPosition=360364.3,28 BOWSONAR=FRONT LabelPosition=59.9,193.2 TOWED=REAR LabelPosition=409.7,193.3 PERISCOPE=SAIL LabelPosition=409.7,151.4 ESM_MAST=SAIL LabelPosition=409.7,171.9 RADAR_MAST=SAIL LabelPosition=364.3,49.4 TUBES=FORE,FRONT LabelPosition=229.6,193.2 FIRECONTROL=FORE LabelPosition=229.6,172.2 PUMPS=MID,AFT LabelPosition=59.9,27.7 PROPULSION=AFT,REAR LabelPosition=59.9,172.2 RUDDER=REAR LabelPosition=59.9,48.7 PLANES=SAIL,REAR LabelPosition=190.8,49 BALLAST=MID LabelPosition=190.8,28 REACTOR=MID // La partie Flooding Display permet l'affichage quand l'unité est innodée. Cette partie est indispensable. [Flooding Display: x,width,ymin,ymax] FLOODING1=160,45,-77,-39 FLOODING2=107,58,-77,-39 FLOODING3=47,61,-77,-39 FLOODING4=-23,74,-77,-39 FLOODING5=-90,59,-76,-39 DamageControlPartyY=-31 [Model] ModelFile=ships/wp_ssn_victor2/wp_ssn_victor2 // L'Akuala III est dérivé du model du Victor II //Hull and Deck MeshPosition=0,0,0 MeshRotation=0,0,0 MeshHullCollider=wp_ssn_victor2_coll_hull MeshSuperstructureCollider=wp_ssn_victor2_coll_ss Material=ships/wp_ssn_victor1/wp_ssn_victor1_mat MaterialTextures=ships/wp_ssn_victor1/wp_ssn_victor_tx,ships/wp_ssn_victor1/wp_ssn_victor_spec,ships/wp_ssn_victor1/wp_ssn_victor_nm Mesh=wp_ssn_victor2 MeshPosition=0,0,-0.645 MeshRudder=wp_ssn_victor2_rudder MeshPosition=0,0.0723,0.40 MeshBowPlanes=wp_ssn_victor2_bowplanes MeshPosition=0,0,-0.658 MeshSternPlanes=wp_ssn_victor2_sternplanes MeshPosition=-0.0,0,-0.722 MeshProp=wp_ssn_victor2_prop // Partie indispensable pour que l'unité soit contrôlable [1] Material=ships/materials/usn_masts MeshPosition=-0.0072,0.075,0.317 MastHeight=0.085 MeshMast=usn_ssn_los_angeles_periscope MeshPosition=0,0.075,0.3036 MastHeight=0.085 MeshMast=usn_ssn_los_angeles_esm_mast MeshPosition=-0.003,0.075,0.3487 MastHeight=0.085 MeshMast=usn_ssn_los_angeles_radar_mast // FIN [1] [Weapon Systems] //Torpedo Mounts //Tube 1 MeshRotation=0,0,0 MeshPosition=0.01,0.03,0.56 TorpedoSpawnPosition=0.01,0.03,0.56 TorpedoEffectPosition=0,0,0.0232 //Tube 2 MeshRotation=0,0,0 MeshPosition=-0.01,0.03,0.56 TorpedoSpawnPosition=-0.01,0.03,0.56 TorpedoEffectPosition=0,0,0.0232 //Tube 3 MeshRotation=0,0,0 MeshPosition=0.0087,0.0126,0.565 TorpedoSpawnPosition=0.0087,0.0126,0.565 TorpedoEffectPosition=0,0,0.0232 //Tube 4 MeshRotation=0,0,0 MeshPosition=-0.0087,0.0126,0.565 TorpedoSpawnPosition=-0.0087,0.0126,0.565 TorpedoEffectPosition=0,0,0.0232 //Tube 5 MeshRotation=0,0,0 MeshPosition=0.0275,0.0125,0.575 TorpedoSpawnPosition=0.0275,0.0125,0.575 TorpedoEffectPosition=0,0,0.0232 //Tube 6 MeshRotation=0,0,0 MeshPosition=-0.0275,0.0125,0.575 TorpedoSpawnPosition=-0.0275,0.0125,0.575 TorpedoEffectPosition=0,0,0.0232 //Noisemaker Mount MeshRotation=0,0,0 MeshPosition=0,-0.056,-0.533 MeshNoisemakerMount=FALSE //Wake MeshPosition=0,0,0 BowWaveParticle=ships/particles/bowwave_sub PropWashParticle=ships/particles/bowwave_small CavitationParticle=ships/particles/wp_ssn_victor2_cavitation FunnelSmokeParticle=ships/particles/wp_ssn_victor2_bubbles EmergencyBlowParticle=ships/particles/wp_ssn_victor2_emergency_blow ParticleBowWavePosition=0,0,0.61 ParticlePropWashPosition=0,-0.035,-0.58 ParticleHullFoamPosition=0,0,0.45 ParticleHullFoamParameters=10,0.25,0.25,0.055,0,0,0.25 ParticleSternFoamPosition=0,0,-0.5 ParticleSternFoamParameters=25,0.25,0.15,0.025,0.01,0,0.25 KelvinWaves=1.9,1.9 EngineAudioClip=audio/units/submarine_engine_1 EngineAudioRollOff=LOGARITHMIC EngineAudioDistance=1,20 EngineAudioPitchRange=0.4,1 PropAudioClip=audio/units/submarine_propeller PropAudioRollOff=LOGARITHMIC PropAudioDistance=1,20 PropAudioPitchRange=0.1,0.6 PingAudioClip=audio/environment/sonar_ping_lf PingAudioRollOff=LOGARITHMIC PingAudioDistance=1,50 PingAudioPitch=1
Supplément
Pour terminer, si vous voulez que cette nouvelle unité apparaisse dans la campagne et dans les missions, qu’elle soit jouable ou contre vous, il faudra modifier les paramètres dans les fichiers suivants. Pour les campagnes :
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
[]-> campaign
[]-> campaign001
|-> summary.txt // Ajoutez la nouvelle unité à OtherVessels=
pour la rencontrer en campagne
[]-> missions
|-> Dans chaque fichier, ajoutez la nouvelle unité dans
le paramètre EnemyShipClasses=
[]-> campaign002
|-> summary.txt // Ajoutez la nouvelle unité à OtherVessels=
pour la rencontrer en campagne
[]-> missions
|-> Dans chaque fichier, ajoutez la nouvelle unité dans
le paramètre EnemyShipClasses=
Puis dans les fichiers pour les missions solos modifiez les fichiers singleXXX.txt :
Akula III
[]-> ColdWaters_Data
[]-> StreamingAssets
[]-> override
|-> Dans chaque fichier singleXXX.txt, ajoutez l'unité à
EnemyShipClasses= pour la rencontrer,
PlayerVessels= pour qu'elle soit jouable,
OtherVessels= pour qu'elle apparaisse dans le manuel d'identification
Vous pouvez télécharger cette nouvelle unité depuis https://drive.google.com.
Je pense avoir fait le tour. Mais si vous avez besoin d’aide, n’hésitez pas à poster à la suite de cet article. 🙂
Laisser un commentaire