Commit Graph

337 Commits

Author SHA1 Message Date
Campbell Barton
31e3b7790a Keymap: preference for extended shading menu
This brings back the option to have x-ray & overlay toggle.
2018-11-24 11:24:34 +11:00
Brecht Van Lommel
e1c393b51a Keymaps: fix broken LMB select and transform tweak in 2D editors. 2018-11-23 17:12:57 +01:00
Gaia Clary
322cf89a14 Partial rewrite of the Collada Module for Blender 2.8
Most important changes are in the Animation exporter and Animation Importer.
There is still some cleaning up to be done. But the Exporter/Importer basically
work within Blender 2.8

Some details:

User Interface:
The interface has been reorganized to look more like the FBX interface.

New options in user interface:

* keep_keyframes:
  When sampling the distance between 2 keyframes is defined by
  the sampling rate. Furthermore the keyframes defined in the
  FCurves are not exported. However when this option is enabled
  then also the defined keyframes will be added to the exported fcurves

* keep_smooth_curves:
  When sampling we do not use FCurves. So we also have no Curve handles
  for smooth exporting. However when this option is enabled, Blender
  does its best to recreate the handles for export. This is a very
  experimental feature and it is know to break when:

  - the exported animated objects have parent inverse matrices
    different from the unit matrix
  - The exported objects have negative scaling

  There may be many other situations when this feature breaks.
  This needs to be further tested. It may be removed later or replaced
  by something less wonky.

BlenderContext:
is a new class that contains the bridge to Blender. It contains
pointers to the current export/import context plus derived values
of Depsgraph, Scene, Main

Reporting:
I reorganized the output on the Blender Console to become more
informative and more readable

Preservation of Item names:
name attributes are now encoded with XML entities. This makes
sure that i can export/import names exactly defined in the tool.
This affects material names, bone names and object names.

Hierarchy export:
* Object and Bone Hierarchies are now exported correctly
  by taking the Blender parent/child hierarchy into account
* Export also not selected intermediate objects

  Problem:
  When we export an Object Hierarchy, then we must export
  all elements of the hierarchy to maintain the transforms. This
  is especially important when exporting animated objects, because the
  animation curves are exported as relative curves based on the
  parent-child hierarchy. If an intermediate animated object is missing
  then the exported animation breaks.

  Solution:
  If the "Selected" Optioon is enabled, then take care
  to also export all objects which are not selected and hidden,
  but which are parents of selected objects.

Node Based Material Importer (wip):
Added basic support for Materials with diffuse color and
diffuse textures. More properties (opacity, emission) need
changes in the used shader.
Note: Materials are all constructed by using the principled BSDF shader.

Animation Exporter:
* Massive optimization of the Animation Bake tool (Animation Sampler).
  Instead of sampling each fcurve separately, i now sample all
  exported fcurves simultaneously. So i avoid many (many!)
  scene updates during animation export.
* Add support for Continuous Acceleration (Fcurve handles)
  This allows us to create smoother FCurves during importing Collada
  Animation curves. Possibly this should become an option ionstead of
  a fixed import feature.
* Add support for sampling curves (to bake animations)
* The animation sampler now can be used for any animation curve.
  Before the sampler only looked at curves which are supported by
  Standard Collada 1.4. However the Collada exporter currently
  ignores all animation curves which are not covered by the 1.4.1
  Collada Standards. There is still some room for improvements
  here (work in progres)

  Known issues:

    * Some exports do currently not work reliably, among those
      are the camera animations, material animations and light animations
      those animations will be added back next (work in progres)

    * Exporting animation curves with keyframes (and tangents)
      sometimes results in odd curves (when parent inverse matrix is involved)
      This needs to be checked in more depth (probably it can not be solved).

    * Export of "all animations in scene" is disabled because the
      Collada Importer can not handle this reliably at the
      moment (work in progres).

* Support for Animation Clip export
  Added one extra level to the exported animations
  such that now all scene animations are enclosed:

  <Animation name="id_name(ob)_Action">
    <Animation>...</Animation>
    ...
  </Animation>

Animation Importer:
* Import of animations for objects with multiple materials
  When importing multiple materials for one object,
  the imported material animation curves have all been
  assigned to the first material in the object.

Error handling (wip):
The Importer was a bit confused as it sometimes ignored fatal
parsing errors and continued to import. I did my best to
unconfuse it, but i believe that this needs to be tested more.

Refactoring:

update : move generation of effect id names into own function
update : adjust importer/exporter for no longer supported HEMI lights
cleanup: Removed no lopnger existing attribute from the exporter presets
cleanup: Removed not needed Context attribute from DocumentExporter
fix    : Avoid duplicate deletion of temporary items
cleanup: fixed indentation and white space issues
update : Make BCAnimation class more self contained
cleanup: Renamed classes, updated comments for better reading
cleanup: Moved static class functions to collada_utils
cleanup: Moved typedefs to more intuitive locations
cleanup: indentation and class method declarations
cleanup: Removed no longer needed methods
update : Moved Classes into separate files
cleanup: Added comments
cleanup: take care of name conventions
...    : many more small changes, not helpful to list them all
2018-11-23 17:08:14 +01:00
Campbell Barton
a6eb9a3e21 Tool System: uv lasso/box select options
These tools now support (new, add, subtract),
(xor, and) could be supported but are complicated by UV's sticky
selection modes.
2018-11-23 17:52:52 +11:00
Campbell Barton
e829e47b55 Keymap: remove 'Z' key to toggle bone-select
Alt-Z already does this.
2018-11-23 12:28:18 +11:00
Campbell Barton
abf9c628b2 Keymap: restore grease pencil keys for default map
Pie menu for draw modes is now on the 'Z' key.
2018-11-23 11:44:31 +11:00
Campbell Barton
4022a16fbe Keymap: adjustments to shading keys
- Z shows pie menu (removed wire/xray toggles).
- Alt-Z toggles x-ray.
- Shift-Z toggles wireframe.
- Shift-Alt-Z toggles overlays.

Note that toggle overlays had no binding for 2.7x,
this is likely not a heavily used option and could even be left out.
2018-11-23 11:39:44 +11:00
Campbell Barton
d9215b064c Cleanup: keymap wrapper for tool-setting operator 2018-11-22 16:58:46 +11:00
Campbell Barton
5155572fc7 Keymap: add popup keymap
Allow manually mapping keys for the popup toolbar.

Useful for tools that don't have immediate access,
add transform, annotate & measure.
2018-11-22 16:52:57 +11:00
Campbell Barton
4fa693f627 Keymap: always show pie menu w/ tab-pie-menu pref
Wasn't working well with armatures used ctrl-tab
to switch to pose mode, making tab always switch to pose mode
w/ this preference enabled.

Now always show pie-menu.
2018-11-22 09:09:42 +11:00
Campbell Barton
7e50813d58 Keymap: Use Z to toggle wire instead of xray
This now works like 2.7x more or less exactly,
x-ray is enabled by default for wire so unless users change this,
it will enable x-ray too.
2018-11-22 09:01:00 +11:00
Campbell Barton
d52c41b040 Keymap: 3D view pref for tab to show pie menu
This behaves like the 2.7x pie menu add-on,
for users who prefer single-key access to all modes.
2018-11-22 08:14:20 +11:00
Campbell Barton
360fd9ac2c Keymap: correct error in grease pencil change 2018-11-22 07:48:34 +11:00
Campbell Barton
d78f1eb916 Keymap: remove annotation keymap editmode toggle
This is now used for grease pencil objects.
2018-11-22 06:51:47 +11:00
Campbell Barton
4c63ea2bc8 Keymap: Adjust shading key bindings
- 'Z' now toggles xray
  (convenient, 2.7x-like binding to show occluded).
- 'D' shows the draw-type pie-menu.
2018-11-22 06:51:00 +11:00
Campbell Barton
2ad4cd097a Keymap: remove D-Key shortcuts for annotations
Use tools for annotations instead.
2018-11-22 06:44:32 +11:00
Campbell Barton
44612e07fe Keymap: use Ctrl-Tab to toggle fcurve/graph editor
Suggested by Pablo Vazquez.
2018-11-22 05:59:02 +11:00
Brecht Van Lommel
e8b9ff78dc Keymaps: a few small improvements.
* Annotation tools now have Alt+LMB as for erase, like sculpt.
* In the LMB keymap, Shift+RMB drag now transforms 3D cursor for easy snapping.
* Curve edit mode draw is now only availble as tool, solves 3D cursor conflict.
2018-11-21 19:31:20 +01:00
Campbell Barton
f8c16b0175 Cleanup: move bpy_extras.keyconfig_utils to own module
bpy_extras were meant to be useful high-level helper functions for
script authors to perform common operations,
to avoid writing to verbose API's.

bpy_extras.keymap_utils contains some specialized API calls
mainly intended for Blender's own internal use.

Move keymap import export to internal API.
2018-11-20 11:06:01 +11:00
Campbell Barton
d870e7d930 Keymap: skip save prompt for default keymap
See T57880
2018-11-20 10:15:33 +11:00
Campbell Barton
47139c69d7 Keymap: only use delete confirmation for X-key
Only use confirmation w/ X-key since this is more likely to be pressed
by accident. Delete-key delete doesn't confirm.

Part of D3953 by @Zachman w/ edits
2018-11-20 10:06:02 +11:00
Campbell Barton
5f9de429ac UI: show keyconfig prefs directly under preset
The keyconfig preset and it's preferences were too far apart,
show the preferences under the preset in a collapsible box.
2018-11-20 09:15:53 +11:00
Campbell Barton
8617594515 Keymap: remove 3ds and maya keymaps
These aren't well maintained and as far as we know
never gained wide adoption.

Remove, we can focus efforts on other key-maps, see: T54963.
2018-11-20 08:15:53 +11:00
Campbell Barton
c9f24a5690 WM: remove interaction presets
These only exposed a few options, which didn't end up helping
much to make Blender's key-map fit the behavior of other applications.
2018-11-20 08:11:46 +11:00
Pablo Vazquez
de231887b4 Themes: Remove deprecated themes.
Most themes have missing/wrong settings due to the new editors in 2.8

A Call-for-content has been made at devtalk.blender.org for the community to contribute new ones.
2018-11-19 12:31:08 +01:00
Campbell Barton
740adf2a4b Cleanup: style 2018-11-19 13:37:18 +11:00
Campbell Barton
472b114761 Fix keymap loading multiple times
Blender defaults data-file was loading it's own key-map
with a capital 'B', the preset would load it again w/ a lowercase name.

Use lowercase key-map names.
2018-11-19 13:11:33 +11:00
Campbell Barton
9f4e4d672c Cleanup: naming 2018-11-19 07:06:38 +11:00
Campbell Barton
3b48620098 Cleanup: naming 2018-11-19 07:04:24 +11:00
Campbell Barton
074cd53c19 Keymap: move left click select to a preference 2018-11-19 06:27:17 +11:00
Antonioya
991bb00762 GP: Rename GPENCIL_OT_brush_paint to GPENCIL_OT_sculpt_paint
This makes the operator name more consistent. Part of T57818
2018-11-18 18:07:16 +01:00
Campbell Barton
0cac506f6e Keymap: preference to swap space/shift-space keys
This option is for animators who may not use the tool-system much
(mostly staying in object/pose-mode with the transform-tool active).
2018-11-18 13:43:44 +11:00
Campbell Barton
c57951d903 Keymap: add user-prefs to the default keyconfig
Currently the only option is to use select-all as a toggle.
2018-11-18 12:45:14 +11:00
Campbell Barton
50a4a899fd Keymap: Default pref for select-all to toggle
Access in the UI next.
2018-11-18 12:39:31 +11:00
Brecht Van Lommel
54091d935f Fix inconsistent frame set event in graph compared to other animation editors. 2018-11-16 15:53:48 +01:00
Brecht Van Lommel
d5ab6af864 Keymaps: some more tweaks for left click select based on user feedback.
* More tools now combine with select click by only starting on drag.
* Alt+LMB works again as loop select as alternative to double click LMB.
2018-11-16 15:28:56 +01:00
Campbell Barton
cb79b691cd Cleanup: set variable for preference name 2018-11-16 15:00:27 +11:00
Campbell Barton
b24de94c29 Cleanup: de-duplicate 3d view select items 2018-11-16 10:51:33 +11:00
Brecht Van Lommel
988c4259e5 Keymaps: add double click loop select to RMB keymap. 2018-11-16 00:37:30 +01:00
Brecht Van Lommel
e18cc071f8 Fix Blender RMB keymap cursor being set when using border select. 2018-11-16 00:37:30 +01:00
Brecht Van Lommel
8510ef02f9 Fix Blender 2.7 keymap missing spacebar search menu. 2018-11-16 00:24:52 +01:00
Brecht Van Lommel
bf7af31e9f Keymaps: left click select keymap changes
Both the active tools and selection are now on LMB, which leads to
various conflicts.

For that reason the LMB keymap now has a couple of differences
compared to before. These changes do not affect the RMB keymap.

* Context Menu: W -> RMB
* Select Tool activate: None -> W
* Set Cursor: RMB -> Shift+RMB
* Loop Select: Alt+LMB -> double click LMB
* Mask Feather Vertex Slide: Shift+RMB -> Ctrl+Shift+RMB
* Node Select: only with LMB now, no RMB

The idea behind the W key Select Tool shortcut is that various
tools can't be combined with selection, unlike the RMB keymap.
So this works as a quick shortcut to drop a tool
and go back to selection.

Tools: set Select Box tool as default, rather than Cursor.

This goes along with coming LMB select keymap changes,
where we want the user to be able to LMB click to select by default,
rather than set the cursor.
The cursor will still be directly setabble with shift+RMB.
2018-11-16 09:54:50 +11:00
Campbell Barton
5215c42e3c Revert "Keymap: remove 3D cursor keymap"
This reverts commit 8ecc51e87f.

This is needed for keymaps that dont include cursor placement by
default.
2018-11-16 09:44:19 +11:00
Campbell Barton
be66428a8f Error in recent keymap update 2018-11-16 09:23:48 +11:00
Brecht Van Lommel
088be7eb2f Keymaps: replace select / action mouse system
For Blender builtin configurations the option to choose the select mouse remains
and is now also in the splash screen. It works by changing the keymap dynamically
in the script, rather than using special events.

The system of automatic switching of events was not flexible enough to deal with
side effects that require further keymap changes, so it is now under more manual
control in the script.

This breaks compatibility for some scripts and exported key configurations.
These can be fixed by replacing SELECTMOUSE, ACTIONMOUSE, EVT_TWEAK_S and
EVT_TWEAK_A with appropriate LEFTMOUSE, RIGHTMOUSE, EVT_TWEAK_L and
EVT_TWEAK_R events.

Other than that, there should be no functional changes.
2018-11-16 08:31:00 +11:00
Campbell Barton
8ecc51e87f Keymap: remove 3D cursor keymap
Rely on 3D view keymap, fixes T57843
2018-11-16 07:59:00 +11:00
Brecht Van Lommel
71fd7e610a Keymaps: minor code refactor after adding tools to default preset. 2018-11-15 12:50:33 +01:00
William Reynish
165c447691 Tool System: add curve tilt tool 2018-11-15 22:31:47 +11:00
Campbell Barton
02d77e5bf5 Keymap: use parameters for tool keymap 2018-11-15 12:54:44 +11:00
Campbell Barton
27eba3867a Keymap: move tool system keymaps into the default keymap
Note that tools can still define their keymaps,
since it's useful for add-ons.
2018-11-15 12:45:45 +11:00