armory3d / armory3d/armory

Parent rotation inheritance

Open
#1,008 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
C++
Stars
3.3k
Forks
353
Avg merge
3d 16h
Merged PRs (30d)
1

Description

If I use get rotation on a parented object that has been rotated by it's parent, the values returned are local, (i.e. 0,0,0)

This can cause problems, especially with nodes like 'look at' that control rotation, because the results are applied locally. Therefore the object may initially 'look at' the specified location, but when rotated by a parent object the 'look at node' does not update the rotation (even if activated each frame with On Update).

This could be solved by implementing vertex parenting (where the child inherits only location and not rotation), or even better, implementing an interface that allows control over what is inherited by parents: maybe a series of six check boxes for what to include or exclude from the parent relationship (loc x y z and rot x y z).

For attached blend, use space to print child rotation:
[test.zip](https://github.com/armory3d/armory/files/2589333/test.zip)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by opening the attached test.zip blend and using Space to print the child rotation, as described in the issue. Reproduce the parented-object and Look At behavior, then trace the existing parent transform handling. Done should mean the intended inherited rotation behavior is defined and the child rotation updates consistently when its parent rotates.

Written by the indexing model from the issue text.

Assessment

Tech stack
blender, cpp
Domain
computer-graphics, game-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.