Czy problem, przed którym stoisz, dotyczy tarczy siatkowej lub uzyskania właściwej orientacji? (czyli rzut ortogonalny, przodem do kamery)
Tarła siatka jest dość łatwa, można to zrobić za pomocą Blueprints lub w kodzie.
W Blueprintach można ustawić pewne warunki wstępne, a następnie wybrać opcję odrodzenia aktorów w zależności od warunków. Rzeczywiste rozwiązanie kodowania będzie wyglądać tak samo.
Jeśli to dotyczy orientacji, to odpowiedź będzie pomocne dla Ciebie, znaleźć na Unreal Engine forach:
https://answers.unrealengine.com/questions/62126/how-do-i-render-a-dynamic-mesh-with-orthographic-p.html
EDIT:
Po wielu ciągnięcie za włosy i dokumentacji surfingu, oto kod, który sprawił, że rzeczy działały.
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 wygląda następująco:
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;
};
Wyjście końcowy wyglądał jak ten w edytorze:
ustawić go tak, że wystąpienie mojej klasie "DynamicMeshSpawner" będzie pojawiał się za każdym razem, gdy uderzę "P" na klawiaturze. Kiedy instancja tej klasy jest tworzona, wywołuje konstruktora, który spawnuje kostkę z zastosowanym materiałem. Zrobiłem instancję klasy spawning rzeczy w BluePrints za pomocą węzła SpawnActor.
Warunki, które wymagają do tarła rzeczy będzie oczywiście zależeć od zastosowania.
Ta metoda działa dla normalnych materiałów, ale nie dla materiałów. Sądzę, że musiałbyś wprowadzić zmiany w typie TheMaterial, ConstructorHelper i rzutowaniu z materiału referencyjnego na TheMaterial, aby mógł on funkcjonować.
Jestem przekonany, że to też będzie działać z materiałami animowanymi, co oznacza, że animacje 2D będą musiały zostać przekształcone w materiał jakiegoś rodzaju.
Być może poniższy link pomoże.
https://forums.unrealengine.com/showthread.php?6744-Flipbook-material-to-recreate-an-animated-gif
EDIT 2:
Poniżej znajduje się bardzo dobry zestaw przykładów, w jaki sposób tworzyć obiekty proceduralnie w Unreal. Zostaw to tutaj dla potomności i na wypadek, gdyby ktoś przyszedł.
https://github.com/SiggiG/ProceduralMeshes/
myślę, że trzeba zajrzeć do proceduralnego statycznej siatki i materialnego stworzenia. Wydaje się, że nie jest to zbyt dobrze dostosowane do API UE4, ale możesz zacząć od https://docs.unrealengine.com/latest/INT/API/Plugins/ProceduralMeshComponent/index.html i https: // wiki. unrealengine.com/Procedural_Materials – vipw
@vipw O, przeczytałem je ... Po prostu nie mogę ich zmusić do pracy. Jeśli masz * przykład * z nich * faktycznie działa *, możesz otrzymać wygasłą premię 200 punktów za to pytanie. – Doug
Mam coś działającego w oparciu o ten kod: https://wiki.unrealengine.com/Procedural_Mesh_Component_in_C%2B%2B:Getting_Started Kolejny, bardziej złożony przykład: https://github.com/LaP0573/ue4-fbx -importer/blob/master/ProceduralEntity.cpp – vipw