Проблема, с которой вы сталкиваетесь, касается нереста сетки или получения правильной ориентации? (то есть ортогональный проектор, обращенный к камере)
Нерест сетки достаточно прост, может быть выполнен либо через Чертежи, либо в коде.
В «Чертежах» вы должны установить определенные предварительные условия, а затем выбрать, чтобы создавать игроков на основе условий. Фактическое решение для кодирования будет выглядеть примерно одинаково.
Если относительно ориентации, то этот ответ будет вам помочь, найти на UnrealEngine форумах:
https://answers.unrealengine.com/questions/62126/how-do-i-render-a-dynamic-mesh-with-orthographic-p.html
EDIT:
После долгих волос вытягивать и документации серфинга, здесь код, из-за которого все работает.
ADynamicMeshSpawner::ADynamicMeshSpawner()
{
// Set this actor to call Tick() every frame. You can turn this off to improve performance if you don't need it.
PrimaryActorTick.bCanEverTick = true;
// Using a SphereComponent is not particularly necessary or relevant, but the cube refused to spawn without a root component to attach to, or so I surmise. Yay Unreal. =/
USphereComponent* CubeComponent = CreateDefaultSubobject<USphereComponent>(TEXT("RootComponent"));
RootComponent = CubeComponent;
CubeComponent->InitSphereRadius(40.0f);
CubeComponent->SetCollisionProfileName(TEXT("Pawn"));
// Create and position a mesh component so we can see where our cube is
UStaticMeshComponent* CubeVisual = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("VisualRepresentation"));
CubeVisual->AttachTo(RootComponent);
static ConstructorHelpers::FObjectFinder<UStaticMesh> SphereVisualAsset(TEXT("StaticMesh'/Game/StarterContent/Shapes/Shape_Cube.Shape_Cube'"));
if (SphereVisualAsset.Succeeded())
{
CubeVisual->SetStaticMesh(SphereVisualAsset.Object);
CubeVisual->SetRelativeLocation(FVector(-200.0f, 0.0f, 100.0f));
CubeVisual->SetWorldScale3D(FVector(2.0f));
}
// Create a material to be applied on the StaticMeshComponent
static ConstructorHelpers::FObjectFinder<UMaterial> Material(TEXT("Material'/Game/StarterContent/Materials/M_Tech_Hex_Tile_Pulse.M_Tech_Hex_Tile_Pulse'"));
if (Material.Object != NULL)
{
TheMaterial = (UMaterial*)Material.Object;
}
CubeVisual->SetMaterial(0, TheMaterial);
}
headerfile выглядит следующим образом:
UCLASS()
class MYPROJECT_API ADynamicMeshSpawner : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ADynamicMeshSpawner();
// Called when the game starts or when spawned
virtual void BeginPlay() override;
// Called every frame
virtual void Tick(float DeltaSeconds) override;
// Pointer to the material that needs to be used
UMaterial* TheMaterial;
};
Конечный результат выглядит следующим образом в редакторе:
я поставил его так, что экземпляр моего класса «DynamicMeshSpawner» будет генерироваться каждый раз, когда я нажимаю «P» на клавиатуре. Когда экземпляр этого класса создается, он вызывает конструктор, который порождает куб с применяемым материалом. Я создал экземпляр экземпляра класса в BluePrints, используя узел SpawnActor.
условие, которые требуются для нерестовых вещей, очевидно, будет зависеть от применения.
Этот метод работает для обычных материалов, но не для экземпляров материалов. Я считаю, что вам нужно будет внести изменения в тип TheMaterial, вызов ConstructorHelper и литье из справочника материалов в TheMaterial, чтобы заставить его функционировать.
Я уверен, что это будет работать и с анимированными материалами, что означает, что 2D-анимация должна быть преобразована в материал какого-то рода.
Возможно, приведенная ниже ссылка поможет.
https://forums.unrealengine.com/showthread.php?6744-Flipbook-material-to-recreate-an-animated-gif
EDIT 2:
Ниже очень хороший набор примеров о том, как процедурно создавать объекты в Unreal. Оставляем его здесь для потомков, и в случае, если кто-нибудь придет посмотреть.
https://github.com/SiggiG/ProceduralMeshes/
Я думаю, вы должны смотреть в процедурную статическую сетку и создание материала. В API UE4 это не очень хорошо обслуживается, но вы можете начать с https://docs.unrealengine.com/latest/INT/API/Plugins/ProceduralMeshComponent/index.html и https: // wiki. unrealengine.com/Procedural_Materials – vipw
@vipw О, я прочитал их ... Я просто не могу заставить их работать. Если у вас есть * пример * из них * на самом деле работает *, вы можете воспользоваться истекшим 200-очковым бонусом по этому вопросу. – Doug
У меня есть что-то работающее на основе этого кода: https://wiki.unrealengine.com/Procedural_Mesh_Component_in_C%2B%2B:Getting_Started Другой, более сложный пример: https://github.com/LaP0573/ue4-fbx -importer/blob/master/ProcedureuralEntity.cpp – vipw