LifePlay-Revival/Source/LifePlayEditorTools/LPImportLandmarkMeshCommandlet.h
2026-10-22 21:10:39 +02:00

35 lines
2 KiB
C++

// Lot STM1 (STM1-SPEC-11, M3) : import d'un modele de monument (FBX) pour un pack de ville, sans interface.
//
// Importe le FBX par la fabrique du moteur (UFbxFactory, import automatise : aucune boite de dialogue), en un seul maillage
// (bCombineMeshes), avec materiaux et textures, dans un dossier neuf <racine>/Landmarks/<Nom>/. Rapporte, par section
// (groupe de polygones), le materiau, les triangles et les bornes. Puis, au choix : retire des sections (-RemoveSections),
// reduit le maillage (LOD0) a -MaxTriangles, plafonne les textures a -MaxTexture. Enregistre tous les paquets du dossier.
// Garde : dossier sous /lpm_city_*/(Landmarks|Houses)/ ou /Game/Heavy/StreetMap/(Landmarks|Houses)/, et neuf (jamais d'ecrasement).
// 1.2.1 : accepte aussi un .obj (lecteur OBJ du SDK FBX, couleurs unies du .mtl) ; -Lods=<t1>,<t2> ajoute des LOD reduits
// depuis le LOD0 (deja reduit) a ces budgets de triangles ; -LodScreen=<s1>,<s2> leurs tailles d'ecran (defaut 0,25 ; 0,083).
// 1.2.2 : sous un dossier Houses, les materiaux recoivent bUsedWithInstancedStaticMeshes (pose en HISM).
// 1.4.3 : -Materials=<emplacement>=<objet>;... pose des materiaux existants sur les emplacements du FBX, sans importer de
// materiau ni de texture (variantes d'un meme modele, textures partagees).
// Le fichier lu n'est jamais execute.
//
// Usage : -run=LPImportLandmarkMesh -Fbx=<fichier> -Package=</lpm_city_<v>/Landmarks/<Nom>/<Nom>>
// [-MaxTriangles=20000] [-Lods=<t1>,<t2>] [-MaxTexture=2048] [-RemoveSections=<i>,<j>]
// [-Materials=<emplacement>=<objet>;...] [-InspectOnly] [-Report=<f.md>]
// -InspectOnly : import en memoire et rapport des sections, rien enregistre.
#pragma once
#include "CoreMinimal.h"
#include "Commandlets/Commandlet.h"
#include "LPImportLandmarkMeshCommandlet.generated.h"
UCLASS()
class ULPImportLandmarkMeshCommandlet : public UCommandlet
{
GENERATED_BODY()
public:
ULPImportLandmarkMeshCommandlet();
virtual int32 Main(const FString& Params) override;
};