Wollte euch mal zeigen, wie ich neuerding das Mapping der Koordinaten von Landkarten mache.
Es gibt bereits eine Anleitung, wo man sich die Koordinaten ausrechnen kann. Doch diese ist etwas "kopfzermürbend".
Hier mein Ansatz, für dessen Anwendung man ein 3D-Programm braucht. Ich verwende hier 3dsMax.
1. Erstmal ein Kartenitem laden.
2. Eure neue 2D-Textur von der Landkarte auf das rechteckige Kartenobjekt legen. (keine UVW Map verwenden, da sonst die Koordinaten nicht mit der Ingamekarte zusammenpassen könnten)
3. Die Karte unterhalb des 3D-Meshes platzieren. (siehe Bild)
[Bild: 3D_2DMapping.PNG]
4. Karte entsprechend ausrichten, dass markante Punkte übereinstimmen.
5. Vertex-Auswahl anschalten und einen der äußersten Kartenpunkte markieren.
6. Jetzt könnt ihr die Koordinaten für die 2D-Karte anhand der Vertexkoordinaten ablesen. Im obigen Beispiel ist der untere Rand der Karte mit Y: -95995,83 abzulesen. Der rechte Rand mit X: 1950,063.
7. Vertexkoordinaten im Scriptitem (abgerundet) eintragen:
Code:
func void use_ItWr_Map_Hafen()
{
var int Document;
if (Npc_IsPlayer (self))
{
B_SetPlayerMap (ItWr_Map_Hafen);
};
Document = Doc_CreateMap ();
Doc_SetPages (Document, 1);
Doc_SetPage (Document, 0, "LoA_Map_Hafen.tga", FALSE);
Doc_SetLevel (Document, "LOA\WORLD.ZEN");
//left top right bottom
Doc_SetLevelCoords (Document, -31522, -67969, 1950, -95995);
Doc_Show (Document);
};
8. Analog für linken und oberen Rand anhand Schritt 5-7 für links-oberen Vertex wiederholen.
9. fertig!