mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-25 05:14:40 +01:00
TVPaint: Fix 'repeat' behavior (#5412)
* adde frame start to repreat frame matching * removed "loop" from behaviors
This commit is contained in:
parent
8d96e42ff7
commit
80114b24fa
2 changed files with 8 additions and 6 deletions
|
|
@ -233,7 +233,7 @@ def get_layers_pre_post_behavior(layer_ids, communicator=None):
|
|||
|
||||
Pre and Post behaviors is enumerator of possible values:
|
||||
- "none"
|
||||
- "repeat" / "loop"
|
||||
- "repeat"
|
||||
- "pingpong"
|
||||
- "hold"
|
||||
|
||||
|
|
@ -242,7 +242,7 @@ def get_layers_pre_post_behavior(layer_ids, communicator=None):
|
|||
{
|
||||
0: {
|
||||
"pre": "none",
|
||||
"post": "loop"
|
||||
"post": "repeat"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
|
|
|||
|
|
@ -77,13 +77,15 @@ def _calculate_pre_behavior_copy(
|
|||
for frame_idx in range(range_start, layer_frame_start):
|
||||
output_idx_by_frame_idx[frame_idx] = first_exposure_frame
|
||||
|
||||
elif pre_beh in ("loop", "repeat"):
|
||||
elif pre_beh == "repeat":
|
||||
# Loop backwards from last frame of layer
|
||||
for frame_idx in reversed(range(range_start, layer_frame_start)):
|
||||
eq_frame_idx_offset = (
|
||||
(layer_frame_end - frame_idx) % frame_count
|
||||
)
|
||||
eq_frame_idx = layer_frame_end - eq_frame_idx_offset
|
||||
eq_frame_idx = layer_frame_start + (
|
||||
layer_frame_end - eq_frame_idx_offset
|
||||
)
|
||||
output_idx_by_frame_idx[frame_idx] = eq_frame_idx
|
||||
|
||||
elif pre_beh == "pingpong":
|
||||
|
|
@ -139,10 +141,10 @@ def _calculate_post_behavior_copy(
|
|||
for frame_idx in range(layer_frame_end + 1, range_end + 1):
|
||||
output_idx_by_frame_idx[frame_idx] = last_exposure_frame
|
||||
|
||||
elif post_beh in ("loop", "repeat"):
|
||||
elif post_beh == "repeat":
|
||||
# Loop backwards from last frame of layer
|
||||
for frame_idx in range(layer_frame_end + 1, range_end + 1):
|
||||
eq_frame_idx = frame_idx % frame_count
|
||||
eq_frame_idx = layer_frame_start + (frame_idx % frame_count)
|
||||
output_idx_by_frame_idx[frame_idx] = eq_frame_idx
|
||||
|
||||
elif post_beh == "pingpong":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue