Mittwoch, 21. Januar 2015

Mappen: Tipp neue normal Pflanzen einfügen

Hallo,

da ich gerade mir am einfügen von Blumen und anderen Pflanzen zum "einmalen" "die Zähne ausgebissen" habe, mal ein Tipp wie dies funktioniert.
Für diese Pflanen gibt es eigen density maps, in welchen diese abgespeichert werden, also muss als erstes eine neue density Map angelegt werden.
Dafür konvertiert man eine vorhandene density map mit dem GRLconverter von Giants (beim Developer Networt zu erhalten) zu einer PNG Datei, diese wird dann mit einer Bildverarbeitung "eingeschwärzt" und wieder abgespeichert.
Dann wird diese nach der Pflanze genannt wie man sie im FoliageMultiLayer nennt. Ich nehme hier mal bushes - also bushes_density.png
Jetzt wird diese bushes_density.png in <Files> der map.i3d eigetragen mit einer Zahl höher als die höchste fileId die bereits existiert. Ich nehme mal die 500 (achtung als fileId wirklich eine Zahl nehmen die noch nicht genutzt wird ).

also:

<File fileId="500" filename="map01/bushes_density.png" relativePath="true"/>
Dann wird die neue foliage ebenfalls bekannt gemacht.
 <File fileId="501" filename="foliage/foliage_bushes_diffuse.dds" relativePath="true"/>



Nun wird die foliage_bushes erstmal in den Materials hinzugefügt, am ende von Materials vor </materials> - sieht eventuell so aus.

<Material name="foliageFlowers_mat" materialId="501" ambientColor="1 1 1" customShaderId="46">
      <Texture fileId="501"/>
      <CustomParameter name="alphaBlendStartEnd" value="70 75 0 0"/>
      <CustomParameter name="frequencyAndScale" value="0.3 0.1 0 0"/>
    </Material>
    <Material name="UnnamedMaterial" materialId="1388" diffuseColor="1 1 1 1" ambientColor="1 1 1">
    </Material>


Achtung -> die materialId muss größer sein als als jede andere materialID - die MaterialIds sind meist größer als die FileIds, da manche Sachen über mehrere materialIds verfügen.

[die "alphaBlendStartEnd" sagt aus wie weit dann die Sichtbarkeit im Spiel maximal sein wird.
Aufgrund von Performanze würde ich keinen Wert von höher "90 95 0 0" eintragen.
 Der Wert viewDistance beim FoliageMultilayer ist kann so in meinem Beispiel 80 betragen - beim 2. 100.]

Nun wird der neue Multilayer wie folgt eingetragen(am Ende von den FoliageMultiLayern vor <DetailLayer name="terrainDetail"...).

<FoliageMultiLayer densityMapId="500" numChannels="1" numTypeIndexChannels="0">
          <FoliageSubLayer name="bushes" numDensityMapChannels="1" materialId="501" cellSize="8" viewDistance="80" objectMask="65520" atlasSize="8" atlasOffsets="0.125 0" numBlocksPerUnit="0.7" width="1.6" height="1.4" widthVariance="0.1" heightVariance="0.2" horizontalPositionVariance="0.7"/>
        </FoliageMultiLayer>


Hier ist nun gut zu sehen, dass die densityMapId das File bushes_density.png ist und die Foliage die
foliage_bushes_diffuse.dds ist.


Achtung nichts weiter ändern, der <DetailLayer name="terrainDetail"...> bleibt unverändert , dies ist anders als bei LS11, LS13.

....
Es versteht sich von selbst vor jeglichen Änderungen der Map ein Backup sich anzulegen.
welche Dateien unbedingt zu sichern sind sollte jeder Mapper ja inzwischen wissen.
Ich persönlich sichere nur die Hauptdateien der map.i3d und den Ordner map01.

Ich hoffe ich konnte hiermit einigen anderen Mappern etwas auf die "Sprünge" helfen...

Keine Kommentare:

Kommentar veröffentlichen