How to add new subtitles for L4D2: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
= Creating Custom Subtitles in Left 4 Dead 2 =
= Cómo crear subtítulos personalizados en Left 4 Dead 2 =


This guide explains how to create custom subtitles for your own campaigns in **Left 4 Dead 2**.
Hola a todos, esta será una guía que se va a dividir por secciones de cómo añadir nuevos subtítulos.


== Step 1: Create a sound script ==
'''Nota:''' previamente tendrías que tener experiencia en usar Hammer, manejar archivos como '''.lmp''' y '''level_sounds.txt''', ya que esto implica modificar mapas.
First, create a file named: 
<code>your_campaign_level_sounds.txt</code>


Inside, define the sound event you want to subtitle. Example:
== Secciones ==
* Agregar subtítulos nuevos para campañas oficiales
* Agregar subtítulos nuevos para campañas custom
* Agregar subtítulos a tu propia campaña custom
 
== Agregar subtítulos nuevos para campañas oficiales ==
 
=== Primer paso ===
Tener ya el audio o los audios que vas a subtitular, para luego crear una carpeta llamada <code>maps</code> y ahí agregar 2 archivos:
* Un archivo <code>.lmp</code>
* Un archivo <code>level_sounds.txt</code>
 
=== Segundo paso ===
Abrir el archivo <code>level_sounds.txt</code> del mapa. 
'''Nota:''' los mapas oficiales no cuentan con este archivo, así que tendrás que crear uno nuevo. 
Esto es fácil: solo busca cómo se llama el mapa y crea el <code>level_sounds.txt</code> correspondiente.
 
*Ejemplo:* 
Dark Carnival mapa 4 = <code>c2m4_barns</code> 
→ El archivo tendría que llamarse: <code>c2m4_concert_level_sounds.txt</code>
 
'''Nota 2:''' si no sabes el nombre base del mapa, abre la consola del juego y escribe <code>map </code>. Ahí verás los nombres.
 
=== Tercer paso ===
Es simplemente poner el nombre del título y editar los valores. 
Ejemplo:


<pre>
<pre>
"npc.command_intro"
"npc.map4_hippie1"
{
{
     "channel"    "CHAN_VOICE"
     "channel"    "CHAN_VOICE"
Line 16: Line 39:
     "pitch"      "PITCH_NORM"
     "pitch"      "PITCH_NORM"
     "soundlevel" "SNDLVL_90dB"
     "soundlevel" "SNDLVL_90dB"
     "wave"      "sblitz/command_radio0.wav"
     "wave"      "map4/hippy/hippie1.wav"
}
}
</pre>
</pre>


*The identifier (e.g. <code>npc.command_intro</code>) will later be referenced in your subtitles.*
Una vez hecho, copia el nombre que está arriba de las llaves <code>{ }</code> y úsalo después en Hammer.
 
=== Cuarto paso ===
Abre el mapa ya descompilado en Hammer. En lugar de enlazar directamente al archivo <code>.wav</code>, inserta el nombre del sonido (p. ej., <code>npc.map4_hippie1</code>).
Luego compila el mapa.
 
=== Quinto paso ===
Abre el <code>.lmp</code> que previamente extrajiste del <code>.bsp</code> (ubicado en <code>left4dead2/maps</code>).
 
Ejemplo:
 
<pre>
c2m4_barns_l_0.lmp
</pre>
 
Una vez abierto, ve hasta el final del archivo. Luego abre el nuevo <code>.bsp</code> compilado y copia las líneas editadas.


== Step 2: Reference the sound name ==
[[File:Ejemplo.png|thumb|left|300px|Al final agregas las líneas que hiciste]]
Copy the name you defined (e.g. <code>npc.command_intro</code>). 
<br clear="all" />
This will be used inside your subtitle file.
[[File:Captura_de_pantalla_2025-08-30_230518.png|thumb|left|300px|Algo así parecido]]
<br clear="all" />


== Step 3: Create a closecaption file ==
Una vez hecho eso, arrastras el archivo <code>.lmp</code> al programa <code>lmpfix</code> para que este mismo lo arregle.
Now create a new file named: 
<code>closecaption_english.txt</code>
(or <code>closecaption_spanish.txt</code>, depending on the language).


**Important:** the word <code>closecaption</code> must be present in the filename, otherwise it will not work.
=== Sexto paso ===
Crear una carpeta llamada <code>resource</code> y dentro un archivo:
<code>closecaption_tu_idioma.txt</code>


== Step 4: Subtitle file structure ==
Contenido básico:
The file should follow this format:


<pre>
<pre>
// PLANTILLA
"lang"
"lang"
{
{
     "Language" "Latam"
     "Language" "Tu idioma"
     "Tokens"
     "Tokens"
     {
     {
         "testcommands" "<clr:255,0,0>This is red<I> and italics<B> and <cr>bold<B><I><clr:255,255,255> white again."
         "testcommands" "<clr:255,0,0>This is red<I> italics<B> bold <cr><clr:255,255,255>white again."
 
         "titulo_del_nombre" "<clr:255,255,255>Línea de subtítulo"
         "ambient.nocopyrightxmas" "<sfx><norepeat:15><clr:204,0,0>[Playing 'Christmas Spirit' by Shane Ivers.]"
     }
     }
}
}
</pre>
</pre>


* Each line starts with the sound event identifier. 
Ejemplo:
* After that, write the text to display. 
* You can use formatting codes like:
  * <code>&lt;clr:R,G,B&gt;</code> = text color. 
  * <code>&lt;sfx&gt;</code> = marks sound effects. 
  * <code>&lt;norepeat:15&gt;</code> = avoid repeating subtitles too often. 
  * <code>&lt;B&gt;</code>, <code>&lt;I&gt;</code> = bold/italic.


== Example: linking sound and subtitle ==
Sound script file:
<pre>
<pre>
"ambient.elev_music"
// EJEMPLO
"lang"
{
{
     "channel"   "CHAN_STATIC"
     "Language" "english"
     "volume"    "1"
     "Tokens"
     "soundlevel" "SNDLVL_NONE"
     {
    "pitch"     "PITCH_NORM"
        "npc.map4_hippie1" "<clr:255,255,255>hippie: Hola mundo"
     "wave"      "maps/mymap/elevator_music.wav"
     }
}
}
</pre>
</pre>


Subtitle file:
Guarda el archivo.
 
=== Séptimo paso ===
Crear un archivo <code>gameinfo.txt</code> en la misma carpeta, de esta forma:
 
<pre>
<pre>
"ambient.elev_music" "<sfx><norepeat:15><clr:255,158,71>[Elevator Music]"
resource > "closecaption_tu_idioma.txt"
gameinfo.txt
</pre>
</pre>


== Step 5: Place files ==
=== Octavo paso ===
* Place your <code>.txt</code> subtitle file inside: 
Arrastrar el archivo <code>closecaption_tu_idioma.txt</code> sobre <code>captioncompiler.exe</code> (que está en la carpeta <code>bin</code>).
  <code>resource\</code> (either in your map folder or a custom addon folder). 
* Make sure your <code>gameinfo.txt</code> references the folder correctly.
 
== Step 6: Compile subtitles ==
Finally, subtitles must be compiled with **captioncompiler**.


Open Command Prompt and run:
Esto debería generar: <code>closecaption_tu_idioma.dat</code> en la carpeta <code>resource</code>.


<pre>
'''Nota:''' si no funciona, abre CMD y escribe:
cd "C:\Program Files (x86)\Steam\steamapps\common\Left 4 Dead 2\left4dead2"
"../bin/captioncompiler" "../../&lt;your_folder&gt;/resource/closecaption_english.txt"
</pre>


Example:
<pre>
<pre>
cd "C:\Program Files (x86)\Steam\steamapps\common\Left 4 Dead 2\left4dead2"
cd C:\Program Files (x86)\Steam\steamapps\common\Left 4 Dead 2\left4dead2
"../bin/captioncompiler" "../../bts_patch/resource/subtitles_english.txt"
"../bin/captioncompiler" "../../left4dead2_subtitles_custom/resource/closecaption_tu_idioma.txt"
</pre>
</pre>


== Notes ==
(Asegúrate de ajustar la ruta y el nombre de la carpeta según tu instalación.)
* Always close your braces <code>{ }</code> properly in both files. 
* If the game does not display your subtitles, check encoding (UTF-8 without BOM) and paths. 
* You can add multiple languages by creating multiple files (e.g. <code>closecaption_spanish.txt</code>).


[[Category:Left 4 Dead 2]]
== Conclusión ==
[[Category:Subtitles]]
¡Listo! Eso sería todo para que aparezcan los subtítulos en las campañas oficiales en caso de que quieras añadir nuevos.
[[Category:Localization]]

Revision as of 21:20, 30 August 2025

Cómo crear subtítulos personalizados en Left 4 Dead 2

Hola a todos, esta será una guía que se va a dividir por secciones de cómo añadir nuevos subtítulos.

Nota: previamente tendrías que tener experiencia en usar Hammer, manejar archivos como .lmp y level_sounds.txt, ya que esto implica modificar mapas.

Secciones

  • Agregar subtítulos nuevos para campañas oficiales
  • Agregar subtítulos nuevos para campañas custom
  • Agregar subtítulos a tu propia campaña custom

Agregar subtítulos nuevos para campañas oficiales

Primer paso

Tener ya el audio o los audios que vas a subtitular, para luego crear una carpeta llamada maps y ahí agregar 2 archivos:

  • Un archivo .lmp
  • Un archivo level_sounds.txt

Segundo paso

Abrir el archivo level_sounds.txt del mapa. Nota: los mapas oficiales no cuentan con este archivo, así que tendrás que crear uno nuevo. Esto es fácil: solo busca cómo se llama el mapa y crea el level_sounds.txt correspondiente.

  • Ejemplo:*

Dark Carnival mapa 4 = c2m4_barns → El archivo tendría que llamarse: c2m4_concert_level_sounds.txt

Nota 2: si no sabes el nombre base del mapa, abre la consola del juego y escribe map . Ahí verás los nombres.

Tercer paso

Es simplemente poner el nombre del título y editar los valores. Ejemplo:

"npc.map4_hippie1"
{
    "channel"    "CHAN_VOICE"
    "volume"     "1.0"
    "pitch"      "PITCH_NORM"
    "soundlevel" "SNDLVL_90dB"
    "wave"       "map4/hippy/hippie1.wav"
}

Una vez hecho, copia el nombre que está arriba de las llaves { } y úsalo después en Hammer.

Cuarto paso

Abre el mapa ya descompilado en Hammer. En lugar de enlazar directamente al archivo .wav, inserta el nombre del sonido (p. ej., npc.map4_hippie1). Luego compila el mapa.

Quinto paso

Abre el .lmp que previamente extrajiste del .bsp (ubicado en left4dead2/maps).

Ejemplo:

c2m4_barns_l_0.lmp

Una vez abierto, ve hasta el final del archivo. Luego abre el nuevo .bsp compilado y copia las líneas editadas.

Al final agregas las líneas que hiciste


Algo así parecido


Una vez hecho eso, arrastras el archivo .lmp al programa lmpfix para que este mismo lo arregle.

Sexto paso

Crear una carpeta llamada resource y dentro un archivo: closecaption_tu_idioma.txt

Contenido básico:

// PLANTILLA
"lang"
{
    "Language" "Tu idioma"
    "Tokens"
    {
        "testcommands" "<clr:255,0,0>This is red<I> italics<B> bold <cr><clr:255,255,255>white again."
        "titulo_del_nombre" "<clr:255,255,255>Línea de subtítulo"
    }
}

Ejemplo:

// EJEMPLO
"lang"
{
    "Language" "english"
    "Tokens"
    {
        "npc.map4_hippie1" "<clr:255,255,255>hippie: Hola mundo"
    }
}

Guarda el archivo.

Séptimo paso

Crear un archivo gameinfo.txt en la misma carpeta, de esta forma:

resource > "closecaption_tu_idioma.txt"
gameinfo.txt

Octavo paso

Arrastrar el archivo closecaption_tu_idioma.txt sobre captioncompiler.exe (que está en la carpeta bin).

Esto debería generar: closecaption_tu_idioma.dat en la carpeta resource.

Nota: si no funciona, abre CMD y escribe:

cd C:\Program Files (x86)\Steam\steamapps\common\Left 4 Dead 2\left4dead2
"../bin/captioncompiler" "../../left4dead2_subtitles_custom/resource/closecaption_tu_idioma.txt"

(Asegúrate de ajustar la ruta y el nombre de la carpeta según tu instalación.)

Conclusión

¡Listo! Eso sería todo para que aparezcan los subtítulos en las campañas oficiales en caso de que quieras añadir nuevos.