Update Files
This commit is contained in:
67
leenkx/blender/lnx/logicnode/draw/LN_draw_image_sequence.py
Normal file
67
leenkx/blender/lnx/logicnode/draw/LN_draw_image_sequence.py
Normal file
@ -0,0 +1,67 @@
|
||||
from lnx.logicnode.lnx_nodes import *
|
||||
|
||||
|
||||
class DrawImageSequenceNode(LnxLogicTreeNode):
|
||||
"""Draws a sequence of image (images changing over time). The file names
|
||||
of images used in a sequence need to follow a certain pattern:
|
||||
`<prefix><frame-index>.<extension>`, `<prefix>` is an arbitrary filename
|
||||
that must be constant for the entire sequence, `<frame-index>`
|
||||
corresponds to the frame number of the image in the sequence.
|
||||
`<extension>` is the file extension (without a period ".").
|
||||
|
||||
Image file names for a valid 2-frame sequence would for example
|
||||
look like this:
|
||||
|
||||
```
|
||||
myImage1.png
|
||||
myImage2.png
|
||||
```
|
||||
|
||||
@input Start: Evaluate the image filenames and start the sequence.
|
||||
If the sequence is currently running, nothing happens. If the
|
||||
sequence has finished and `Loop` is false, this input restarts
|
||||
the sequence.
|
||||
@input Stop: Stops the sequence and its drawing.
|
||||
@input Image File Prefix: See `<prefix>` above.
|
||||
@input Image File Extension: See `<extension>` above.
|
||||
@input Color: The color that the pixels of the images are multiplied with.
|
||||
@input X/Y: Position of the images, in pixels from the top left corner.
|
||||
@input Width/Height: Size of the images in pixels. The images
|
||||
grow towards the bottom right corner.
|
||||
@input Start Index: The first `<frame-index>` of the sequence (inclusive).
|
||||
@input End Index: The last `<frame-index>` of the sequence (inclusive).
|
||||
@input Frame Duration: Duration of a frame in seconds.
|
||||
@input Loop: Whether the sequence starts again from the first frame after the last frame.
|
||||
@input Wait For Load: If true, start the sequence only after all
|
||||
image files have been loaded. If false, the sequence starts immediately,
|
||||
but images that are not yet loaded are not rendered.
|
||||
|
||||
@output On Start: Activated after the sequence has started. This output
|
||||
is influenced by the `Wait For Load` input.
|
||||
@output On Stop: Activated if the sequence ends or the `Stop` input
|
||||
is activated. This is not activated when the sequence restarts
|
||||
due to looping.
|
||||
"""
|
||||
bl_idname = 'LNDrawImageSequenceNode'
|
||||
bl_label = 'Draw Image Sequence'
|
||||
lnx_section = 'draw'
|
||||
lnx_version = 1
|
||||
|
||||
def lnx_init(self, context):
|
||||
self.add_input('LnxNodeSocketAction', 'Start')
|
||||
self.add_input('LnxNodeSocketAction', 'Stop')
|
||||
self.add_input('LnxStringSocket', 'Image File Prefix')
|
||||
self.add_input('LnxStringSocket', 'Image File Extension')
|
||||
self.add_input('LnxColorSocket', 'Color', default_value=[1.0, 1.0, 1.0, 1.0])
|
||||
self.add_input('LnxFloatSocket', 'X')
|
||||
self.add_input('LnxFloatSocket', 'Y')
|
||||
self.add_input('LnxFloatSocket', 'Width')
|
||||
self.add_input('LnxFloatSocket', 'Height')
|
||||
self.add_input('LnxIntSocket', 'Start Index')
|
||||
self.add_input('LnxIntSocket', 'End Index', default_value=1)
|
||||
self.add_input('LnxFloatSocket', 'Frame Duration', default_value=1.0)
|
||||
self.add_input('LnxBoolSocket', 'Loop', default_value=True)
|
||||
self.add_input('LnxBoolSocket', 'Wait For Load', default_value=True)
|
||||
|
||||
self.add_output('LnxNodeSocketAction', 'On Start')
|
||||
self.add_output('LnxNodeSocketAction', 'On Stop')
|
Reference in New Issue
Block a user