Cómo continuar creando un mapa en UE4

Buen día a todos


En un artículo anterior, describimos cómo crear un nivel tomando la sección Yandex.Map como referencia. Queda por hablar sobre el "pavimento" de las carreteras y sobre los matices que encontré usando World Composition, como un método para optimizar un mapa grande.



Carreteras


Por supuesto, las carreteras "dibujadas" por un nivel de textura estirado son bastante adecuadas para su uso (por ejemplo, para un simulador de aire), pero para un simulador de automóvil se requiere un enfoque más detallado. El componente más adecuado para crear carreteras en la UE es Spline, al menos "secciones largas y continuas". Todavía no he encontrado intersecciones y cruces, lo más probable es que tengan que crear objetos separados con sus manos.


Spline hay dos tipos: Blueprint Splines y Landscape Splines . Los primeros tienen enormes capacidades de personalización y están bien desmontados.Juegos épicos en el canal. Con su ayuda, puede controlar la creación de objetos a lo largo del camino a la vez (señales, cercas, zanjas, líneas eléctricas), pero no encontré la funcionalidad para combinar con el paisaje en Blueprint Splines, y ajustar cada metro del camino con mis manos debajo del paisaje (o viceversa) no es con qué quieres comenzar un proyecto. Por lo tanto, elegí Landscape Splines para crear carreteras en la primera versión del nivel, simplemente tomando la "Herramienta Editar Splines" y haciendo clic en la textura. Resultó dos Splines, una para una carretera de asfalto, la otra para un camino de tierra. La encrucijada se realiza simplemente superponiendo una sobre otra. Para "materializar" Spline, es necesario que los segmentos configuren Malla. Tomé el terminado de Vehicle Game, allí la pista también se hizo como Landscape Splines (Epic Games Launcher> Unreal Engine> Library> Vault), cortando una pieza compleja sobre las pistas del material.¡Resultó un gran camino de tierra! No fue posible repetir ese truco para el asfalto, así que tomé la misma malla, cambié la textura en el material del camino de tierra al de asfalto (como este ) y lo aplicó en Spline con escala Z = 0.2, resultó bastante bien. Al final, no debes olvidarte de deformar el paisaje bajo Splines, que se hace con solo un botón, y las carreteras están listas:



Composición mundial


YouTube , , , . UE : World Composition Level Streaming. «» ( , UE ). «», Level Streaming Volumes ( ), .


World Composition 4 4 16 1 1 . , — «» . , — Scale . .. Z-Scale , Z-Scale, ( 16).


World Composition , . , , , :

  1. Make current. , , ( Levels), \ . «» Persistent Level. PlayerStart «», UE , .
  2. MyGameInstance.cpp UE World Composition: Persistent Level > Persistent Level > > > . , .. , , . , , =) , . Desafortunadamente, mi conocimiento en UE no me permitió reproducir una solución de este hilo uno a uno, solo hice una Clase C ++ del tipo "GameInstance" y la especifiqué en las propiedades del proyecto. MyGameInstance.h y MyGameInstance.cpp respectivamente:

    #pragma once
    
    #include "CoreMinimal.h"
    #include "Engine/GameInstance.h"
    #include "MyGameInstance.generated.h"
    
    UCLASS()
    class SAMPLE_01_API UMyGameInstance : public UGameInstance
    {
    	GENERATED_BODY()
    	
    public:
    	virtual void LoadComplete(const float LoadTime, const FString& MapName) override;
    };
    

    
    #include "MyGameInstance.h"
    #include "Engine/World.h"
    #include "Engine/WorldComposition.h"
    #include "Engine/LevelStreaming.h"
    
    void UMyGameInstance::LoadComplete(const float LoadTime, const FString & MapName)
    {
    	Super::LoadComplete(LoadTime, MapName);
    	
    	UWorld* World = GetWorld();
    	
    	// WorldComposition won't work in Standalone mode without next statement
    	if ( World->WorldComposition ) {
    		const TArray<ULevelStreaming*> TilesStreaming = World->WorldComposition->TilesStreaming;
    		World->ClearStreamingLevels();
    		World->SetStreamingLevels(TilesStreaming);
    	}
    	
    	// "Pause" game till streaming complete
    	GEngine->BlockTillLevelStreamingCompleted(World);
    }
    


Eso es todo por ahora. Los planes hablan sobre la creación del menú de inicio y el minimapa en el juego. Gracias.


All Articles