Page MenuHome

Particle System UI issue/annoyance: setting Start later than End should increase End if necessary, rather than capping it
Open, Confirmed, LowPublic

Description

In Particle Systems, the Start frame must be less than the End frame, for logical reasons.

The UI currently enforces this by not letting you set a Start greater than the End, but it does it by capping the value you've just entered, which is inconsistent with other Start/End pairs elsewhere in the UI. Good practice would be to allow the user to set a Start to any value, and rather than capping it Blender should increase the End frame as necessary.

Say you want a particle system to emit from 1500 to 1600 frames. You create a new particle system, which defaults to 1f to 200f. You should be able to enter new values for Start and End in that order.

What currently happens:

  • you click the Start parameter, type "1500" and Tab to the next parameter - End
  • Oops - Blender has capped the Start to 200.
  • you realise your mistake and set the End frame to 1600
  • then you can set the Start frame to 1500

What should happen

  • you click the Start parameter, type "1500" and Tab to the next parameter - End
  • Blender has already increase the End frame to 1500, but no matter - you type "1600", hit Enter... all done.

To see how it should work, play with the sequence Start and End boxes in a Timeline window. They behave sensibly.

Details

Differential Revisions
D2701: Fix for T51289
Type
Bug

Event Timeline

Aaron Carlisle (Blendify) changed Type from To Do to Bug.Apr 22 2017, 5:07 PM
Aaron Carlisle (Blendify) raised the priority of this task from Confirmed, Low to Needs Triage by Developer.
Aaron Carlisle (Blendify) closed this task as Invalid.
Aaron Carlisle (Blendify) claimed this task.
This comment was removed by Aaron Carlisle (Blendify).
Aaron Carlisle (Blendify) triaged this task as Confirmed, Low priority.

I do agree with @Howard Matthews (howiem) here. The timeline does behave sensibly:
You start with timeline being set 1 - 250.
You want the sequence to go from 300 to 600.
You start by entering 300 into start frame. Because Blender doesnt allow startframe to be larger than endframe, endframe is automatically changed to 300.
So you can happily continue to enter 600 into endframe.
That's workflow that makes sense to me :)
Should work like that everywhere.

Ok after @Luca Rood (LucaRood) talked with the artist in the studio this is not what we want. So the question is how urgent is this and are there other areas that should change.

Blender is indeed super inconsistent here:

  • All simulations do accept start frame larger than end frame. (softbody, cloth, dynapaint, fluid etc.)
  • Timeline works as expected.
  • Seems it's really mainly the particles that have the bad behavior.
Aaron Carlisle (Blendify) removed Aaron Carlisle (Blendify) as the assignee of this task.

This would be a good quick hack for someone.

Danrae Pray (spockTheGray) claimed this task.

New dev here - going to hack away at this :)

Hi. First time contributtor and absolute rookie on this kind of things. So, for a school project we had to pick and work on a couple of issues from here, and we chose this one for it seemed pretty simple and quick. Then we were instructed to try to submit it and while trying to find where to, we just now saw there is already a solution here, basically identical to ours. But as it is still set as open, here's ou solution anyway.

We basically did the same thing as @Danrae Pray (spockTheGray), on lines 825 and 842 but added/subtracted an instant to the adjusted value, simply so the animation always has a set time different from zero.

This is my first time contributing. I noticed we are not setting a clamp to this like we do for timeline (see "rna_scene.c" lines 881 and 891 for functions called "rna_Scene_end_frame_set" and "rna_Scene_start_frame_set").