Child Of vertex group fails when controled by Particle System #54108

Open
opened 2018-02-20 17:29:32 +01:00 by Serge Lyatin · 13 comments

System Information
Win10 64bit

Blender Version
Broken: 2.79

Short description of error
Child Of constraint fails on rotation from PS

Exact steps for others to reproduce the error
Open file, play animation on every layer

First layer: Empty with Child Of constraint is controled by Plane's transform animation -> works OK
Second layer: Empties with Child Of are controled by Plane's Particle System (via Explode) -> Location is maintained, but rotation is non-synchronized
Third layer (example of how previous case is expected to work): Empties parented to 3 vertices are controled by same PS - OK
Child_Of_test.blend

**System Information** Win10 64bit **Blender Version** Broken: 2.79 **Short description of error** Child Of constraint fails on rotation from PS **Exact steps for others to reproduce the error** Open file, play animation on every layer First layer: *Empty* with *Child Of* constraint is controled by Plane's transform animation -> works OK Second layer: *Empties* with *Child Of* are controled by Plane's *Particle System* (via *Explode*) -> Location is maintained, but **rotation is non-synchronized** Third layer (example of how previous case is expected to work): Empties parented to *3 vertices* are controled by same PS - OK [Child_Of_test.blend](https://archive.blender.org/developer/F2327792/Child_Of_test.blend)
Author

Added subscriber: @SergeL

Added subscriber: @SergeL
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Sorry this report hasnt been answered in quite a while.

Just to be sure:
I see a difference in layers 2 and 3:

  • for me layer 2 shows empties following face orientation (Z-axis is sticking to the facenormal correctly, but rotation around Z is sliding)
  • layer 3 shows empties with Z-axis is sticking to the facenormal correctly, and rotation around Z is not sliding

So we are talking about the (sliding around Z-Axis) rotation in layer 2, right?

Sorry this report hasnt been answered in quite a while. Just to be sure: I see a difference in layers 2 and 3: - for me layer 2 shows empties following face orientation (Z-axis is sticking to the facenormal correctly, but rotation around Z is sliding) - layer 3 shows empties with Z-axis is sticking to the facenormal correctly, and rotation around Z is not sliding So we are talking about the (sliding around Z-Axis) rotation in layer 2, right?
Author

Yeah, rotation sliding on Z is bothering me

Yeah, rotation sliding on Z is bothering me
Member

OK, will have a look

OK, will have a look
Philipp Oeser self-assigned this 2018-04-27 16:11:38 +02:00
Member

Added subscriber: @JoshuaLeung

Added subscriber: @JoshuaLeung
Member

This doesnt seem to be related to a ParticleSystem in particular.
It just works well with object transformations on the target (same as your First Layer example), but not so well with object data transformations...

Here is a simpler testcase:
Child_Of_test_simpler.blend

  • select plane, rotate in objectmode -> constraint works as expected
  • go into editmode (all verts selected), rotate them all --> constraint shows issue described above

Will check whats going on in contarget_get_mesh_mat() later, but also getting @JoshuaLeung on board [in case this is real simple for him?]

This doesnt seem to be related to a ParticleSystem in particular. It just works well with object transformations on the target (same as your `First Layer` example), but not so well with object **data** transformations... Here is a simpler testcase: [Child_Of_test_simpler.blend](https://archive.blender.org/developer/F3060297/Child_Of_test_simpler.blend) - select plane, rotate in objectmode -> constraint works as expected - go into editmode (all verts selected), rotate them all --> constraint shows issue described above Will check whats going on in [contarget_get_mesh_mat() ](https://developer.blender.org/diffusion/B/browse/master/source/blender/blenkernel/intern/constraint.c;57405054b21ccc3a1aee3ab8bcae66cf8f7ca5fb$544) later, but also getting @JoshuaLeung on board [in case this is real simple for him?]
Philipp Oeser removed their assignment 2019-03-28 20:52:29 +01:00
Member

Added subscribers: @ideasman42, @brecht

Added subscribers: @ideasman42, @brecht
Member

Checked this again and atm it just averages positions and normals of participating verts.
A rotation is derived from the resulting averaged normal alone - thus not being 'stable'.

While I guess it is possible to improve the situation (at least if enough verts are actually in the group -- then by constructing a virtual tri and doing something similar to ob_parvert3?),
I would first like to check if this is considered a bug, or if should be postponed as TODO?

@ideasman42, @brecht: opinions?
[stepping down from this for the time being... sorry this has been on my desk for so long without results...]

Checked this again and atm it just averages positions and normals of participating verts. A rotation is derived from the resulting averaged normal alone - thus not being 'stable'. While I guess it is possible to improve the situation (at least if enough verts are actually in the group -- then by constructing a virtual tri and doing something similar to `ob_parvert3`?), I would first like to check if this is considered a bug, or if should be postponed as TODO? @ideasman42, @brecht: opinions? [stepping down from this for the time being... sorry this has been on my desk for so long without results...]

Not sure about the right behavior, would consider quite low priority.

Not sure about the right behavior, would consider quite low priority.

Added subscriber: @dr.sybren

Added subscriber: @dr.sybren

In #54108#650572, @lichtwerk wrote:
A rotation is derived from the resulting averaged normal alone - thus not being 'stable'.

This is inherently limited, as there are infinitely many rotations that map one vector onto another one. As such this is a design limitation, and I'll mark this as Known Issue.

> In #54108#650572, @lichtwerk wrote: > A rotation is derived from the resulting averaged normal alone - thus not being 'stable'. This is inherently limited, as there are infinitely many rotations that map one vector onto another one. As such this is a design limitation, and I'll mark this as Known Issue.

I guess it was accidentally changed to the wrong subtype then.

I guess it was accidentally changed to the wrong subtype then.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#54108
No description provided.