Age | Commit message (Collapse) | Author |
|
adding new windowmanager module, and the first bits of new editors
module.
|
|
Added a new function which specially caters for auto-recalculation of paths after updates (such as keyframing).
Currently, all that differs between this and pose_calculate_path, is that it only recalculates for bones with paths. Also, it only updates what it needs to (minimum frame range affected).
Warning: WIP commit (hopefully it compiles ok)
|
|
error)
|
|
replaced some magic numbers
|
|
-> Constraint Influence Ipo now can be local, linked to constraint itself
You enable this in the IpoWindow header, with the Action icon to the left
of the Ipo Type menu. The button tooltips give the clue as well.
Tech note: the Ipo now can get directly linked to a constraint, and is
being called during regular pose constraint solving.
Actions (and drivers in actions) are being calculated *before* pose
constraint solving. Result of actions then is written in bones, which
then solves the entire pose.
This means you can have a driver on both the constraint, as on the action
channel for the constraint! Not that I'm going to debug that easily :)
Additional fix: Joshua added a copy/paste IpoCurve feature, but he broke
the functionality to be able to paste in an empty ipo channel. That now
works again
|
|
=========
Merge of the famous particle patch by Janne Karhu, a full rewrite
of the Blender particle system. This includes:
- Emitter, Hair and Reactor particle types.
- Newtonian, Keyed and Boids physics.
- Various particle visualisation and rendering types.
- Vertex group and texture control for various properties.
- Interpolated child particles from parents.
- Hair editing with combing, growing, cutting, .. .
- Explode modifier.
- Harmonic, Magnetic fields, and multiple falloff types.
.. and lots of other things, some more info is here:
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite_Doc
The new particle system cannot be backwards compatible. Old particle
systems are being converted to the new system, but will require
tweaking to get them looking the same as before.
Point Cache
===========
The new system to replace manual baking, based on automatic caching
on disk. This is currently used by softbodies and the particle system.
See the Cache API section on:
http://wiki.blender.org/index.php/BlenderDev/PhysicsSprint
Documentation
=============
These new features still need good docs for the release logs, help
for this is appreciated.
|
|
This commit *should* fix these problems for good. It seems that my attempts at optimising the code (by exiting a loop once the first match was found) were causing it to fail.
I've also made the code aware of handle swapping. I noticed that the handles were not being corrected appropriately after negative scaling.
|
|
* Added a new option to only calculate a certain number of frames before/after the current frame instead of defining a frame range. This is useful in certain cases on longer timelines, to be able to view the paths for certain regions quicker.
* When inserting a keyframe, if a bone already has path drawing on, the path for that bone will get automatically recalculated. More testing is required to see if there are any more cases where this would be useful. Also, a global setting to turn this on/off would be a good idea.
Todo (requested but not yet implemented):
* Parts of path before/after current frame could get drawn with different colours
|
|
but somehow this still managed to work fine last night.
|
|
When scaling all the control-points in the IPO Editor with negative scales, the control-points would end up "sticking together", and cancelling/undo would not help.
|
|
When using targetless-ik, the offset in rotation of the final transform from the rest-position was being incorrectly calculated.
Now, visual-rotation keyframing uses the space-switching code I wrote for constraints, to calculate the value to keyframe. So far, it seems to work quite well.
As the constraint space-switcher correctly handles hinged bones too (I think it should!), I've also removed the restriction of only allowing visual-rotation keying on bones that didn't have hinge set.
|
|
This adds fractional FPS support to blender and should finally
make NTSC work correctly.
NTSC has an FPS of 30.0/1.001 which is approximately 29.97 FPS.
Therefore, it is not enough to simply make frs_sec a float, since
you can't represent this accurately enough.
I added a seperate variable frs_sec_base and FPS is now
frs_sec / frs_sec_base.
I changed all the places, where frs_sec was used to my best knowledge.
For convenience sake, I added several macros, that should make life
easier in the future:
FRA2TIME(a) : convert frame number to a double precision time in seconds
TIME2FRA(a) : the same in the opposite direction
FPS : return current FPS as a double precision number
(last resort)
This closes bug #6715
Standard framerates not supported / breaks sync -- 23.967 29.967 etc.
https://projects.blender.org/tracker/?func=detail&aid=6715&group_id=9&atid=125
Please give this heavy testing with NTSC files, quicktime in/export
and the python interface.
Errors are most probably only spotted on longer timelines, so that is
also important.
The patch was tested by Troy Sobotka and me, so it most probably should
work out of the box, but wider testing is important, since errors are
very subtle.
Enjoy!
|
|
(note, still not realtime, but at least it redraws now)
|
|
When IPO-Keys were being shown, the y-values of the keyframes should not change during transform.
|
|
This commit fixes one of the bugs mentioned yesterday. Now cancelling a transform will result in the right behaviour.
|
|
As with the Action and NLA editors, I've refactored the transform code for the IPO editor to get rid of the special (and clunky) transform loop that had been created. The approach this time is closer to the one taken for the UV/Image editor.
What's New/Will-be-possible-in-the-future:
* Numeric input now works for the IPO editor
* Proportional Edit support for the IPO editor will eventually be added.
* Rotation (hopefully), once some hotkeys have been remapped
Known Problems:
* If a keyframe moves past neighbouring keyframes and the transform gets cancelled, it doesn't get restored correctly. This problem is quite icky to resolve (I've got a large hack for this, but that currently segfaults randomly).
* When scaling, the dashed-line (helpline) is drawn from the wrong starting co-ordinates. This does not affect the actual scaling though
* Trying to scale BezTriples with autohandles still doesn't work if either of the handles haven't been transformed yet. This behaviour was already present prior to this commit.
|
|
This commit fixes several bugs related to animating armatures. I've also tidied up the formatting in a few files along the way, and also commented the flags for this pose->flag.
What's new/fixed:
* Undo will no longer destroy entire un-keyframed poses. Now it behaves as expected, and only reverses the most recent change.
* On some files, POSE_DO_UNLOCK somehow got set on files and never cleared. The symptom of this was a file in which you suddenly could no longer pose an armature at all without using auto-keyframing. A check to prevent this from happening again has been added (it will also fix old files too)
Notes:
- Now, all PoseChannels get tagged with BONE_UNKEYED after they have been transformed. This flag prevents IPO data being flushed over these new values, even after undo.
- These tags only get removed on frame-changes or inserting new keyframes.
|
|
finishing since it was so slow)
this is mainly because adding pose keyframes recalculates every handle so importing became increasingly slow.
added a 'fast' argument to insertkey that python api's insertPoseKey can make use of since it alredy accepts a 'fast' option.
The ~4450 frame, 31 bone BVH imports in ~108sec now
Seperated editmode switch statement in space.c's event handling,
if editmode is disabled, or the images is a render or composite, UV editing operations are ignored.
In previous releases it has given an annoying warning if selecting or scaling is attempted when out of UV/Face mode.
|
|
Now it is possible to do Copy+Paste in the Action Editor, like in the IPO Editor. There are two new buttons in the Action Editor header for this, using the familiar icons.
* To copy...
Select the keyframes you wish to copy, and the channels that they occur in (except for ShapeKey mode, where it is not possible to select channels). Click copy button.
* To paste...
Place the current frame where you want the first of the keyframes from the buffer is to be pasted. Select all channels you wish the keyframes to be pasted into. Click paste button.
Currently, keyframes are only pasted into 'compatible' curves (i.e. LocX keyframes can only go to LocX, and so on). This may change after user feedback, if this is found to be too restrictive.
== Code Changes ==
I've made a few changes which allow this code to be nicer.
* renamed insert_vert_ipo to insert_vert_icu, as that represents its actual purpose better (and changed all occurrences I could find)
* created a new function, insert_bezt_icu, which does the actual inserting of provided BezTriple data to a given IpoCurve
* recoded insert_vert_icu to use this new function, and also the IPO-Editor keyframe pasting (i.e. pasting in Editmode)
|
|
Copy/pasting multiple ipo curves in editmode, segfaulted due to some misplaced code.
|
|
This commit fixes two minor mistakes made in the previous commit for this:
* forgot to advance to next ipo curve from buffer
* handles on the curves that got data pasted were not recalculated (those from the buffer were instead!)
|
|
When in EditMode for IPO-curves, keyframes are now pasted from the IPO-editor's copy/paste buffer instead of the entire curves being pasted. This makes it possible to 'move' keyframes from one IPO-curve to another.
* Only keyframes in the copy/paste buffer that are selected, are pasted
* All keyframes that are pasted, are pasted relative to the current frame, with the current frame being the location of the first pasted keyframe.
* Pasted keyframes replace exisitng keyframes if they occur at the same location.
|
|
- Numpad dot is shortcut key, same as in other windows.
(Peach feature request)
|
|
Made inserting new keyframes use a coarser threshold for determining when to replace existing keyframes with new ones. Now, it shouldn't create so many keyframes stacked on top of each other, but yet still keep some bizzare cases working.
|
|
This problem was resulted from the handles on keyframes not being mirrored as well. I thought that the handle resetting function would solve that, but obviously it didn't.
|
|
I've finally come to the conclusion that the old code used to clean up IPO-curves was utterly unsafe/unstable. It used to have a lot of memory-related bugs early on, which I had resolved, but still I found a file where this broke quite badly (thanks Cessen).
Now the code should be saner, as it does away with that evil memory copying that seems to be at fault. It would be advisable to have this properly tested for a few days before considering it for inclusion in 2.45 (stable) branch.
|
|
Woops! The code was using the wrong variable in one place.
|
|
|
|
This code was always kludgy and this clean it up a bit.
insertmatrixkey() has been properly renamed insertkey_float().
Matrix calculations have been excised from the interface code,
and placed in insertmatrixkey(), so that you can call it from
anywhere without preliminaries and the proper values are calced
based on the passed adr code.
By much request, several semi-bug reports and discussion with
production animators, visual keying is now used automatic
for objects and bones that have constraints that cause them
to ignore their Ipos (CopyLoc, TrackTo, etc.). In those cases,
visual keying is used instead of the normal Ipo insertion
method. This "auto" functionality is toggled from the
"Use Visual Keying" button found along with "Needed" and
"Available" in the Edit Methods prefs.
Logic as to which constraints trigger visual keying on
which adrcodes can be tweaked in match_adr_constraint()
src/editipo.c
This has been tested by a couple of people, myself included,
but I may not have hit every constraint case, so evolutionary
feedback is welcome.
|
|
* Replaced magic numbers (3rd argument for memcpy functions) with sizeof(float)*2 just to be safe, in case some weirdo compiler out there doesn't like them.
* Made a few comments a bit more descriptive
|
|
I-Key on Fields not working for Empty Object. Was wrongly only checking for Meshes.
|
|
Added two macros which are used to test if the active Action/IPO editor is displaying data from a scaled NLA-strip.
|
|
Small Action Editor feature to hopefully make keyframing quicker. Just press the IKEY in the Action Editor. Feedback on the (annoyance factor of the) popups welcome.
|
|
* Constraint sliders in Action Editor didn't update buttons window
* Homekey in IPO Editor didn't respect scaling.
* With Preview Range set, using the SKEY and EKEY hotkeys in the Timeline
to change the extents of it, resulted to the NLA editor not being
refreshed. (Note: I haven't actually seen this happening)
* Keyframing options 'Avail' and 'Needed' didn't work for Objects
when they had an ObAction. The problem was that the code assumed
that the object had an ipo-block associated with it, but that is
not the case when you have an Object Action for that object.
|
|
Two minor naming tweaks:
* Cloud -> Clouds
* DistNoise -> DistortedNoise
|
|
Last few bits and pieces - transforms should now work correctly with scaled IPO's
now.
|
|
Cleanups of code for this. Just removed un-necesarry checks.
|
|
Inser Keyframe on Current Frame now takes NLA/IPO scaling into account.
|
|
IPO-Keys (K) should now work with scaled IPO curves.
|
|
This commit resolves an issue dating back a few releases. When the IPO block being displayed in the IPO editor came from an Action being used as an Action Strip
in the NLA editor, the keyframes in the IPO editor were not displayed in 'NLA-time'.
There are however a number of things that still need work on so that they will play
nicely with these changes. Having said that, the IPO editor is still generally stable
for use (or should be). In case anything plays up, 'pin' the IPO view you're using
to turn off these changes.
This resolves Todo #4335.
Known Issues:
* When 'K' (show keys) mode is on, it doesn't work too too well yet. The display
in such situations will be a bit confusing.
* Pressing IKEY in the IPO editor (for inserting a keyframe on the current frame)
also doesn't work too well yet. It will insert a keyframe on the wrong frame.
* Transforms don't get any correction for scaling yet. This is only an issue when
snapping transforms to the grid, or relying on the delta numbers printed in the
header.
|
|
Checked every instance of testbase to see this dosnt break anything, also changed TESTBASE and TESTBASELIB, both were used incorrectly in places.
added error_libdata() for library error messages that are everywhere.
added object_data_is_libdata to test if the object and its data's are from a library.
fixed 2 crashs in adding Curve points to a library object (remember to check, verify_ipocurve returns NULL!)
made duplicating and making dupli's real for lib objects possible, disabled joining into lib armatures and meshes.
|
|
* colour -> color
* centre -> center
* normalise -> normalize
* modelling -> modeling
|
|
|
|
removed most custom add_*data* wrappers from Main.c
removed makeCurrent() from Text.c (was never in a release), use "bpy.texts.active = text" now
clamp new image sizes
made add_empty_action accept a string rather then a blocktype since the blocktype was only being used to choose one of 3 strings anyway.
|
|
Viewplane shift X,Y added to Ikey menu in camera buttons.
|
|
When scaling in the IPO-editor, axis-clamping was not respected still
(in order to preserve the old behaviour of flipping over the x/y axis).
However, now there is a mirroring tool for IPO curves, so the old
behaviour is no longer needed.This makes things more consistent.
|
|
IpoWindow: panel properties didn't show the "Visible curves" box values
unless you clicked curve once.
|
|
Inserting keys (using Ikey in 3d window) could crash if you have objects
selected, but no active.
|
|
keyframing backend stuff to a better place in code).
|
|
Moved function used for 'Visual' keyframing, to live with the rest of the
API calls I added for Pose-Mode bone snapping. Now, it is in a more
'releasable' state.
|