Skip to content

Commit

Permalink
Merge branch '208-storyboard-shots-time-linking' into 'main'
Browse files Browse the repository at this point in the history
Resolve "Storyboard shots time linking"

Closes #208

See merge request blender/public-projects/shotmanager-addon!116
  • Loading branch information
jatubi committed Oct 10, 2022
2 parents 70a88aa + 59c9124 commit 791faba
Show file tree
Hide file tree
Showing 90 changed files with 5,757 additions and 1,884 deletions.
69 changes: 66 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,70 @@
-----
## 2.0.225 (2022-09-02)
**Release**
- Improved documentation
## 2.1.24 (2022-10-11)
- Added a function applyVideoSettings() in the rendering process to change the rendering file
format in a cleanest way (to be continued)
- Fixed a bug when plablast video appeared all black when called without Project Settings

-----
## 2.1.23 (2022-10-01)
- Added a button to set the time range to shot or take range in the Frame Range toolbar
- Improved the Storyborad Frame Editing Mode button
- Improved the API (documentation, samples, code)

-----
## 2.1.22 (2022-10-01)
- Fixed keymap for draw mode to work when the mouve is over the add-on panel

-----
## 2.1.21 (2022-09-30)
- Revamped the UI of the Animated Frame Transformation to minimize UI ambiguities

-----
## 2.1.20 (2022-09-29)
- Several fixes related to the continuous draw mode
- Fixed storyboard frame that was not duplicated following to a take duplication
- Added shot name in the Render panel, near Current Shot label
- Refactored the Duplicate Shot dialog box and added a checkbox for color variation
- Added a key map for activating the draw mode on a current shot

-----
## 2.1.5 (2022-09-27)
- Fixed a crash on Storyboard Grid because of Python 3.10 code

-----
## 2.1.4 (2022-09-14)
### Interactive Shots Stack
- Added an info component
- Added mode and scale keyframe changes when a shot clip is manipulated

### Code
- Added a sample widget to the gpu components library

-----
## 2.1.3 (2022-09-12)
- Fixed regression bug on Convert Camera Binding
- Fixed the detached grease pencil transform lock state
- Added a function to get the canvas frame when missing

-----
## 2.1.2 (2022-09-12)
- Fixed the type of shot that was set to Storyboard when a storyboard frame was added

-----
## 2.1.1 (2022-09-12)
**Beta Release**
### Keymaps
- Separated key mappings per category
- Added a Preferences parameter to toggle the vertical arrows used to navigate from shot to shot
- Made the up arrow go to next shots by default instead of previous ones

### Shots Stack UI
- Added a Preferences setting to make the shots stack starts at the specified lane
- Set the first lane to 1 instead of 0 to see the keys of the Summany lane

-----
## 2.0.226 (2022-09-12)
### Shots Stack UI
- Added a user preference to automaticaly detect the sceen display factor (Windows only)

-----
## 2.0.224 (2022-08-24)
Expand Down
19 changes: 18 additions & 1 deletion doc/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,24 @@
# Contributing

Shot Manager is a production tool. At the moment it is not yet opened to external contributions. Any feedback is very welcome though.
Shot Manager is a production tool. At the moment it is not yet completely opened to external contributions. Any feedback is very welcome though.


## Documentation

The technical documentation is currently being written.

In particular some focus is being done to a UI components structure based on BGL and GPU and used to create advanced
UI components in the various editors of Blender.
As an example, the Interactive Shots Stack and the Sequence Timeline and based on it.
Read more about it here: [gpu 2D library](../shotmanager/gpu/gpu_2d/doc_gpu_2d_components.md)

### Interactive Shots Stack
[Shots Stack notes](../shotmanager/overlay_tools/interact_shots_stack/doc_interac_shots_stack.md)


## Configuration of the development environment

The development is made with Visual Studio Code.

The requirements dev file is here: [requirements-dev.txt](../requirements-dev.txt]

30 changes: 30 additions & 0 deletions doc/devnotes_addon.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,33 @@ supported.
### Naming:
- Shot: Association of a period of time in the 3D scene, given by a start and a end, and a point of view, given
by the camera held by the shot.


## Props, the main properties class
Terminology:
We distinguish the "selected shot", which is the one selected in the shots list, from the "current shot",
which is the shot actualy displayed in the viewport and identified in the shots list with an orange icon
in the first column.


## Shot select, set current, set to Draw Mode

The manipulation behaviors are defined in the Shot Manipulations rollout of the add-on Preferences.
They are all part of the add-on preferences settings, so any change is applied to every scenes.

Key functions and operators to manage those manipulations are:

### When a shot becomes selected
- *In props.py:* The update() function of selected_shot_index: IntProperty holds all the actions done when
a shot is selected

- The fact that a shot that has just been selected should be made as the current one is defined by the
function props.selectedShotShouldBecomeCurrent()

### When a shot becomes current
- *In shots.py:* The operator uas_shot_manager.set_current_shot holds all the actions done when a shot is
made current
- In props.setCurrentShotByIndex()

### When a shot has to be set to Draw mode
- To set the draw mode of a shot, when in Continuous mode: uas_shot_manager.greasepencil_select_and_draw
17 changes: 17 additions & 0 deletions doc/shot_manager_api.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
Shot Manager Python API
Main concepts
The add-on Shot Manager is made of 2 parts:

the Shot Manager itself (or SM), located in a 3D workspace and used to define and manipulate all the camera shots in a scene;
the Video Shot Manager (or VSM), located in a Video Sequence Editor workspace, it is dedicated to check the videos and exports (experimental at the moment)
Both parts are instanced located in a scene. There can be only one (or zero) instance of them in a given scene. The VSM needs a SM (and necesseraly have) in its owning scene.

Shot Manager
The Shot Manager is the main property class. Basically it contains a set of takes (CollectionProperty) and each take has a set of shots (CollectionProperty).

The functions available in the API are spread in several files, in a logical and object-oriented approach, according to the manipulated entities. They are not classes though, just C-like functions.

In Shot Manager the UI and functionnal part are - as much as possible - separated. 2 properties are a bit inbetween though: the current shot and the selected shot (they are indices, not pointers to the shot instances). The current shot is more than a UI information since the concerned shot has a special behavior (its camera is the one used by the scene for example). The selected shot refers to the highlighted item in the shots list (which is also the take). Many actions are based on it so it has also to be considered as a functional information. In spite of that the add-on can be completely manipulated without the use of the interface, and takes that are not set as the current one can be changed in exaclty the same way as the current one.

Video Shot Manager
The VSM is currently not exposed in the API.

0 comments on commit 791faba

Please sign in to comment.