Fórum Lost Gamer
Como adicionar música no carregamento do mapa - Versão de Impressão

+- Fórum Lost Gamer (https://forum.lostgamer.com.br)
+-- Fórum: Farming Simulator 19 (https://forum.lostgamer.com.br/forumdisplay.php?fid=3)
+--- Fórum: Ajuda (https://forum.lostgamer.com.br/forumdisplay.php?fid=17)
+---- Fórum: Tutoriais (https://forum.lostgamer.com.br/forumdisplay.php?fid=66)
+---- Tópico: Como adicionar música no carregamento do mapa (/showthread.php?tid=57)



Como adicionar música no carregamento do mapa - LuanTavares127 - 14-05-2021

Primeiro você precisará ter a música que deseja em formato .ogg mono. (Caso já tenha, ignore o passo 1)

Passo 1: Caso sua música não esteja no formato correto mencionado acima, você pode entrar neste site [Para ver os links, por favor se registre no fórum aqui ou faça seu login aqui] e seguir os seguintes passos:

   Passo 1.1: Clique no botão Selecionar arquivos.

  [Imagem: 1.png]

   Passo 1.2: Selecione a música desejada.

   Passo 1.3: Após carregado a música, clique em ... e selecione o OGG, assim como mostra a imagem abaixo.

  [Imagem: 2.png]

   Passo 1.4: Clique na engrenagem Definições ao lado botão do passo 1.3.

  [Imagem: 3.png]

   Passo 1.5: Modifique o Canais de Áudio para Mono (1.0).

  [Imagem: 4.png]

   Passo 1.6: Clique no botão Converter.

  [Imagem: 5.png]

   Passo 1.7: Aguarde o site receber e converter sua música. Após finalizado aparecerá um botão chamado Descarregar a direita. Clique nele e salve em algum lugar dentro das pastas do seu mapa, como por exemplo: maps/sounds/musica.ogg.

  [Imagem: 6.png]


Passo 2: Você precisará ter o arquivo map_sound.xml e map_sound.i3d. (dependendo da base que você usou, o início no nome do arquivo pode variar, por exemplo "mapDE_sound.xml")

  Passo 2.1: Abra os arquivos do seu mapa e verifique se existe algum arquivo chamado map_sound.i3d (ou seu nome variante), geralmente ele se encontra dentro da pasta maps. Se ele já existe, vá para o passo 2.2. Caso não exista, abra algum editor de texto ou de códigos (bloco de notas, Visual Studio Code, Notepad++, ou equivalentes) e cole o seguinte código:
 
<?xml version="1.0" encoding="iso-8859-1"?>

<i3D name="untitled" version="1.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://i3d.giants.ch/schema/i3d-1.6.xsd">
  <Asset>
    <Export program="GIANTS Editor 64bit" version="8.2.2"/>
  </Asset>

  <Files>
  </Files>


  <Materials>
  </Materials>


  <Shapes>
  </Shapes>


  <Dynamics>
  </Dynamics>

  <Scene>
    <TransformGroup name="audio_group" nodeId="5">
      <Camera name="audio_map_view" translation="0 250 0" rotation="-93.4377 2.97938 -3.86388e-06" nodeId="646" fov="60" nearClip="0.1" farClip="10000" orthographic="true" orthographicHeight="2250"/>
    </TransformGroup>
  </Scene>

</i3D>
  Salve este arquivo com o seguinte nome: map_sound.i3d dentro da pasta maps do seu mapa.

  Passo 2.2: Dentro dos arquivos do seu mapa, localize o arquivo map_sound.xml (lembrando que pode haver variação no início do nome), se já existir, abra o arquivo e verifique se a linha logo abaixo está condizente com o caminho do seu arquivo sound.i3d (ou sua variante):
 
<ambient3d filename="CAMINHO/NOME DO ARQUIVO SOUND.i3d" indoorVolumeFactor="0.4" indoorLowpassGainFactor="0.45"/>
  Se estiver correto, apenas ignore este passo 2.2, caso contrário, corrija o caminho/nome do arquivo.

  Caso não exista, abra novamente algum editor de texto ou de códigos (bloco de notas, Visual Studio Code, Notepad++, ou equivalentes) e cole o seguinte código:
 
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<sound>
    <ambient3d filename="CAMINHO/NOME DO ARQUIVO SOUND.i3d" indoorVolumeFactor="0.4" indoorLowpassGainFactor="0.45"/>
    <ambient indoorFlag="1">
        <!--
            state:  out-/indoor
            bit:    1
            dec.:   1

                    night/day
                    2
                    2

                    hail    rain
                    3       4
                    4       8


            -> worldStateFlags && mask == flags

        -->
        <!-- BASIS -->

        <!-- anytime except for rain & hail -->
        <sample type="basis" file="$data/sounds/maps/environment/shared/xml/wind_generic5.wav"      volume="0.30"  indoorVolumeFactor="0.00"  flags="0" mask="29" />

        <!-- anytime AND rain -->
        <sample type="basis" file="$data/sounds/maps/environment/shared/xml/rain1.wav"          	 volume="0.80" flags="8" mask="25" indoorVolumeFactor="0.00" />

		<!-- anytime AND rain AND in vehicle -->
        <sample type="basis" file="$data/sounds/maps/environment/shared/xml/rain_interior.wav"      volume="0.50" flags="9" mask="25" indoorVolumeFactor="0.50" />

        <!-- LAYER -->
        <!-- night AND sun -->
        <!-- <sample type="basis" file="$data/sounds/maps/fauna/shared/xml/cricket1.wav"        	   volume="0.15" indoorVolumeFactor="0.00" flags="0" mask="31" /> -->

    </ambient>
    <surface>
        <!--
            materialId      layer name
			0				field
            1               dirt
            2               grass
            3               beachSand
            4
            5               leaves
            6               gravel
            7               rock, asphalt, plate (also used for 'on object')

            Note:
        -->

        <material materialId="0"  name="field"        type="wheel" loopCount="0" template="DEFAULT_SURFACE_FIELD" />
        <material materialId="1"  name="dirt"         type="wheel" loopCount="0" template="DEFAULT_SURFACE_DIRT" />
        <material materialId="2"  name="grass"        type="wheel" loopCount="0" template="DEFAULT_SURFACE_GRASS" />
        <material materialId="3"  name="sand"         type="wheel" loopCount="0" template="DEFAULT_SURFACE_SAND" />
        <material materialId="4"  name="sound"        type="wheel" loopCount="0" template="DEFAULT_SURFACE_SOUND" />
        <material materialId="5"  name="leaves"       type="wheel" loopCount="0" template="DEFAULT_SURFACE_GRASS" />
        <material materialId="6"  name="gravel"       type="wheel" loopCount="0" template="DEFAULT_SURFACE_GRAVEL" />
        <material materialId="7"  name="asphalt"      type="wheel" loopCount="0" template="DEFAULT_SURFACE_ASPHALT" />
        <material materialId="98" name="railroad"     type="wheel" loopCount="0" template="DEFAULT_SURFACE_RAILROAD" />
        <material materialId="99" name="shallowWater" type="wheel" loopCount="0" template="DEFAULT_SURFACE_WATER_SHALLOW" />

        <material materialId="0"  name="field"        type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_FIELD" />
        <material materialId="1"  name="dirt"         type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_DIRT" />
        <material materialId="2"  name="grass"        type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_GRASS" />
        <material materialId="3"  name="sand"         type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_SAND" />
        <material materialId="4"  name="sound"        type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_SOUND" />
        <material materialId="5"  name="leaves"       type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_GRASS" />
        <material materialId="6"  name="gravel"       type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_GRAVEL" />
        <material materialId="7"  name="asphalt"      type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_ASPHALT" />
        <material materialId="99" name="shallowWater" type="footstep" loopCount="1" template="DEFAULT_FOOTSTEP_WATER_SHALLOW" />

        <material materialId="0"  name="field"        type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_FIELD" />
        <material materialId="1"  name="dirt"         type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_DIRT" />
        <material materialId="2"  name="grass"        type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_GRASS" />
        <material materialId="3"  name="sand"         type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_SAND" />
        <material materialId="4"  name="sound"        type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_SOUND" />
        <material materialId="5"  name="leaves"       type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_GRASS" />
        <material materialId="6"  name="gravel"       type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_GRAVEL" />
        <material materialId="7"  name="asphalt"      type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_ASPHALT" />
        <material materialId="99" name="shallowWater" type="hoofstep" loopCount="1" template="DEFAULT_HOOFSTEP_WATER_SHALLOW" />
    </surface>
	
    <cutting>
        <sample name="tree" file="$data/sounds/cutting/treeFall.wav" />
    </cutting>
	
    <object>
        <fillSound01 template="DEFAULT_SILO_FILL" linkNode="0" />
    </object>
</sound>
  Salve este arquivo como map_sound.xml onde preferir.
  Repare que na linha 3 do código acima, você deve informar o caminho/nome do arquivo corretamente conforme o caminho/nome do arquivo que você tem, usando como exemplo o arquivo criado no passo 2.1: maps/map_sound.i3d.

  Passo 2.3: Localize nos arquivos do seu mapa o arquivo map.xml (ou sua variante, como exemplo: mapDE.xml) e encontre a seguinte linha:
     
<sounds filename="$data/maps/mapDE_sound.xml" />
  Substitua o diretório do $data/maps/mapDE_sound.xml (o nome do xml pode variar) original pelo arquivo "map_sound.xml" (ou sua variante) do seu mapa, como por exemplo: xml/map_sound.xml (o diretório varia conforme a localidade de onde se encontra o seu arquivo .xml).

Passo 3: Agora abra o seu arquivo map_sound.i3d (ou sua variante) com algum editor de texto ou de códigos (bloco de notas, Visual Studio Code, Notepad++, ou equivalentes) e siga os passos abaixo:

  Passo 3.1: Localize a tag </Files> e adicione na linha acima desta tag a seguinte linha:
 
<File fileId="9999" filename="CAMINHO/NOME DO ARQUIVO.wav"/>
  Coloque o caminho e o nome correto de onde se encontra sua música dentro do seu mapa e mantenha o .wav no código apenas (sim, o arquivo é .ogg e dentro do código é .wav).

  Passo 3.2: Agora localize a tag </Scene> e adicione na linha acima desta tag a seguinte linha:
 
<AudioSource name="musica_intro" nodeId="9999" fileId="9999" range="80" innerRange="60" volume="1" loops="0"/>

  Passo 3.3: Localize a tag </UserAttributes> e adicione na linha acima desta tag as seguintes linhas:
 
<UserAttribute nodeId="9999">
  <Attribute name="playByDay" type="boolean" value="true"/>
  <Attribute name="playByNight" type="boolean" value="true"/>
  <Attribute name="playDuringHail" type="boolean" value="false"/>
  <Attribute name="playDuringRain" type="boolean" value="false"/>
  <Attribute name="playDuringSun" type="boolean" value="true"/>
  <Attribute name="playExterior" type="boolean" value="true"/>
  <Attribute name="playHour" type="boolean" value="true"/>
  <Attribute name="playHourEnd" type="float" value="24"/>
  <Attribute name="playHourInverted" type="boolean" value="false"/>
  <Attribute name="playHourStart" type="float" value="0"/>
  <Attribute name="playInsideBuilding" type="boolean" value="true"/>
  <Attribute name="playInterior" type="boolean" value="false"/>
  <Attribute name="retriggerMaxDelay" type="float" value="0"/>
  <Attribute name="retriggerMinDelay" type="float" value="0"/>
</UserAttribute>
  Caso em seu código não haja a tag </UserAttributes>, localize a tag </i3D> e adicione na linha acima desta tag as seguintes linhas:
 
<UserAttributes>
  <UserAttribute nodeId="9999">
    <Attribute name="playByDay" type="boolean" value="true"/>
    <Attribute name="playByNight" type="boolean" value="true"/>
    <Attribute name="playDuringHail" type="boolean" value="false"/>
    <Attribute name="playDuringRain" type="boolean" value="false"/>
    <Attribute name="playDuringSun" type="boolean" value="true"/>
    <Attribute name="playExterior" type="boolean" value="true"/>
    <Attribute name="playHour" type="boolean" value="true"/>
    <Attribute name="playHourEnd" type="float" value="24"/>
    <Attribute name="playHourInverted" type="boolean" value="false"/>
    <Attribute name="playHourStart" type="float" value="0"/>
    <Attribute name="playInsideBuilding" type="boolean" value="true"/>
    <Attribute name="playInterior" type="boolean" value="false"/>
    <Attribute name="retriggerMaxDelay" type="float" value="0"/>
    <Attribute name="retriggerMinDelay" type="float" value="0"/>
  </UserAttribute>
</UserAttributes>
  Agora salve seu arquivo apertando ctrl + s e seja feliz com a sua música de introdução ao seu mapa enquanto ele carrega no Farming Simulator 19.

Caso haja alguma dúvida, comente aqui em baixo que irei ajudá-lo.