### Search in Sort by:

 Everything Using UE4 Current Space

### Search help

• Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
• You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
• cat dog --matches anything with cat,dog or both
• cat +dog --searches for cat +dog where dog is a mandatory term
• cat -dog -- searches for cat excluding any result containing dog
• [cats] —will restrict your search to results with topic named "cats"
• [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

# Compose Transform bug?

 0 One of these 2 possibilities should give me out the same rotation as defined in the New Var 0 Variable but none of them does. Is this a bug or what other possibility is there? I also tried comparing the direction vectors, they were different as well. Product Version: UE 4.15 Tags: sdfsdfgdfgdfd.jpg (134.2 kB) more ▼ asked Apr 25 '17 at 03:13 PM in Using UE4 Davision 930 ● 100 ● 147 ● 200 alleysark Apr 25 '17 at 05:38 PM Transform A represents QST(A) that is Q(A)xS(A)xPx-Q(A) + T(A), where Q(A) is quaternion of A, S(A) is scale of A, and T(A) is translation of A . Combining two transforms A and B is: AxB = QST(AxB) Q(AxB) = Q(B)xQ(A) S(AxB) = S(A)xS(B) T(AxB) = Q(B)xS(B)xT(A)x-Q(B) + T(B) . Inverse transform of A is: QST(~A), where ~A is inverse of A Q(~A) = Q(~A) S(~A) = 1.f/S(A) T(~A) = - (Q(~A)xS(~A)xT(A)xQ(A)) . Convert transform A into relative transform of P is: ~P x A Scale = S(A)/S(P) Rotation = Q(A) x Q(~P) Translation = T(A)-S(A)/S(P) x [Q(A)xQ(~P)xT(P)xQ(P)xQ(~A)] (See TransformVectorized.h for more informations) . P: ActorTransform A: NewVar0 So, the above graph represents this equations: top node {~P x A} x P Q = Q(P) x {Q(A) x Q(~P)} = Rotate 'the rotation of A' by amount of P S = {S(A)/S(P)}xS(P) T = Q(P)xS(P)x{T(A)-S(A)/S(P) x [Q(A)xQ(~P)xT(P)xQ(P)xQ(~A)]}x-Q(P) + T(P) . and bottom node: P x {~P x A} Q = {Q(A) x Q(~P)} x Q(P) = Q(A) S = S(P)x{S(A)/S(P)} T = {Q(A) x Q(~P)}x{S(A)/S(P)}xT(P)x-{Q(A) x Q(~P)} + T(A)-S(A)/S(P) x [Q(A)xQ(~P)xT(P)xQ(P)xQ(~A)] . So.. bottom node should give us the same rotation as defined in NewVar0. I did not test that blueprint. Davision Apr 25 '17 at 06:26 PM Thanks for writing this all up! Blueprint does not have any Quaternion and I have never worked with Quaternion, also this is a bit much for me to compose with my simple Blueprint brain but I try :) So what you are saying is the bottom Print in that graph should print me the New Var 0 Rotation value? Because it is definitely not. What I want is rotation from world to local and then local to world which should give me then the same initial rotation value Meaning: A is New Var 0, ~P x A = N, {~P x N} x P = (rotation same as New Var 0)? (No clue what the ~ means) There is a Combine Rotations node and a Invert Rotation node in Blueprint, might I better of trying it to do with that instead? add new comment (comments are locked) 10|2000 characters needed characters left ▼ Viewable by all users