Współrzędne Local oraz World

Przestrzeń 3D jest reprezentowana przez trzy osie: X, Y i Z. Istnieją różne sposoby organizacji tych osi. Unreal Engine wykorzystuje ten typ:

Można to zobaczyć w „Widgecie tłumaczenia” aktorów:

Kliknij, aby powiększyć

Dowolne położenie w przestrzeni 3D można przedstawić za pomocą zestawu wartości X, Y i Z, wskazujących położenie na każdej osi. Te wartości są przechowywane w zmiennej „Lokalizacja”  aktora i są znane jako współrzędne świata 

Nierzeczywista jednostka to jeden centymetr. Aby użyć wartości „Lokalizacja” w Planie, można użyć następujących funkcji:

Funkcja „GetActorLocation” zwraca bieżącą pozycję aktora. Funkcja „SetActorLocation” ustawia nową pozycję dla aktora. „AddActorWorldOffset” używa wartości parametru „Delta Location” do modyfikowania bieżącej pozycji aktora. Poniższy przykład dodaje 1000 cm na osi X aktualnej pozycji aktora i nie modyfikuje wartości osi Y i Z.

Istnieje inna koncepcja znana jako współrzędne lokalne. Aby zrozumieć tę koncepcję, użyjemy schematu, który zawiera dwa komponenty „Static Mesh”.

Utwórz nowy plan typu „aktor”. W zakładce „Komponenty” dodaj nowy komponent typu „StaticMesh” i nadaj mu nazwę „Baza”. Przeciągnij nazwę „Base” i upuść na komponencie o nazwie „DefaultSceneRoot”:

Zrobiliśmy to tak, aby pozycja „Base” StaticMesh reprezentowała pozycję Blueprint. Ten StaticMesh stał się „Rootem” Planu. Dla tego komponentu wybierz Static Mesh „SM_AssetPlatform” i jako Material użyj „M_Tech_Hex_Tile”, które są częścią „Starter Content”:

Dodaj kolejny komponent „StaticMesh”, nadaj nazwę „PowerPill” i wprowadź następujące ustawienia:

W zmiennej „Location” w „PowerPill” umieść wartość „70cm” na osi Z:

To położenie „PowerPill” jest odniesione do „Root”, który jest komponentem „Base”, więc kiedy przesuniemy „Base”, „PowerPill” będzie podążał za tym ruchem, ponieważ zawsze musi znajdować się w pewnej odległości  od „Baza”  70 cm w osi Z. To względne położenie jest znane jako współrzędne lokalne .

Możesz zobaczyć, jak stał się Planem na karcie „Rzutnia”:

Pozycję komponentu „PowerPill” można uzyskać na dwa sposoby. Możemy uzyskać jego położenie względne, które w tym przykładzie byłoby (X = 0, Y = 0, Z = 70), lub możemy otrzymać jego położenie na świecie, które będzie pozycją na świecie komponentu „Root” plus względne położenie elementu składnik „PowerPill”. Poniższy obraz przedstawia te dwie opcje:

Pozycję komponentu można również zdefiniować na dwa sposoby za pomocą funkcji „SetRelativeLocation” i „SetWorldLocation”. Funkcja „SetRelativeLocation” definiuje nową pozycję komponentu względem funkcji „Root”, a funkcja „SetWorldLocation” otrzymuje jako parametr wejściowy współrzędną światową i definiuje pozycję komponentu, tak aby suma pozycji elementu głównego z pozycją komponentu jest równa informowanej współrzędnej światowej.

Funkcji „AddRelativeLocation” można użyć do zmodyfikowania względnej pozycji komponentu:


Źródło:https://romeroblueprints.blogspot.com/2015/08/world-and-local-coordinates.html