Changelog¶
[1.1.0] - 2024-05-13¶
Features and Updates¶
- Improved parsing logic and added a new features to handle tvpaint not escaping characters
- Added option to set aliases in the dataclass fields to have more pythonic variable names
- Updated
Layer.render...functions to use the parent clips render instead ofgeorge.tv_save_image - Updated
renderfunctions to useFileseq.FrameSetinstead of a(start, end)this allows rendering of non consecutive ranges and makes range handling more streamlined. - Improved
utils.get_tvp_elementfunctions and added searchingby_regexas well - Updated all tests for compatibility with tvpaint 12
- Improved documentation and fixed some typos
- Move project from
poetrytohatch
George¶
- Added dataclass
george.RGBAColor - Added function
george.tv_pick_color - Added warning to
george.tv_save_imageas it outputs low quality images - added
to_extensionin SaveFormat
Project¶
- Added Support for Guidelines in george functions and python classes
- new module
george/grg_guidelines.py - new module
guideline.pywith classes :guideline.GuidelineImageguideline.GuidelineLineguideline.GuidelineSegmentguideline.GuidelineCircleguideline.GuidelineEllipseguideline.GuidelineGridguideline.GuidelineMarksguideline.GuidelineSafeAreaguideline.GuidelineFieldChartguideline.GuidelineAnimatorFieldguideline.GuidelineVanishPoint1guideline.GuidelineVanishPoint2guideline.GuidelineVanishPoint3
- Added
Project.guidelinesandProject.add_guideline_...functions toProjectclass
Scene¶
- Added new
Scene.split()function toScenebased on the new functiontv_SceneSplit. - Added new george function
tv_SceneCreate, however this functions doesn't seem to work for now, check bugs and breaking changes section.
Clip¶
- Added
Clip.ctg_layers()property toClip. - Added
Clip.folders()property toClip. - Added
Clip.camera_layer()property toClip. - Added
Clip.get_layers()property toClipwhich returns the clip's layers using filters (use this instead ofClip.layerswhen using TVP 12 or above) .AddedClip.camera_layer()property toClip. - [DEPRECATED]
Clip.layers()is deprecated and only returns animation layers (this remains unchanged from before) and ignores all new Folder, Camera and CTG layers. PreferClip.get_layers()instead. - Added support for new unescape logic to :
Clip.action_textClip.dialog_textClip.note_textProject.header_infoProject.authorProject.notes
Layers¶
tv_LayerMovenow takes afolder_idargument, more on this in the bugs sections.tv_LayerCreatenow takes alayer_typeargument to create a layer folder.- Added new object
LayerFolderwhich uses the new layer folder functions (e.g:tv_LayerFolderDelete). - Added new
Layer.folderproperty inLayer. - Added new
Layer.set_folder_positionfunction inLayerthough it is pretty finicky to use (check bugs and breaking changes section). - Added new object
CameraLayer. - Added new object
CTGLayerwhich uses the new CTG layer functions : *CTGLayer.squiggles_visible/tv_CTGSquigglesVisible. *CTGLayer.apply_changes/tv_CTGApplyChanges. *CTGLayer.sources/tv_CTGGetSource. *CTGLayer.add_sourcesandCTGLayer.remove_sources/tv_CTGSource. *CTGLayer.load_structure/tv_CTGLoadStructure. - Added new
Layer.is_ctg_layerproperty inLayer. - Added new
Layer.is_ctg_sourceproperty inLayer. - Added new
Layer.sourced_ctg_layersproperty inLayer. - Added
Layer.panfunction inLayer. - Added
Layer.cut,Layer.copy, andLayer.pastefunctions to theLayerclass. - Added
Layer.render_instancesfunction which only renders the instances in the layer not the whole sequence.
Camera¶
Camera.get_point_data_at()now returns a new read-onlyInterpolationCameraPointobject (inherited fromCameraPoint).Camera.get_point_data_at_frame()now returns a new read-onlyFrameCameraPointobject (inherited fromCameraPoint).CameraPointobject now has two new properties :CameraPoint.widthandCameraPoint.height.
Fixes¶
- fixed an issue with the values provided to
get_unique_name() - fixed
test_tv_clip_save_structure_jsonfile format - fixed misc small bugs/typos
TVPaint 12 Bugs and Breaking Changes¶
TVPaint 12 introduces a lot of welcome changes (especially for the artists) and some new needed functions for developers. However, it also introduces a lot of breaking changes and some new bugs.
To deal with these changes, as well as the new functions exclusive to TVPaint 12, we added a few decorators and functions :
| Method | Description |
|---|---|
min_version_compatible |
When used as decorator, checks if the tvp instance making the call is above the miniumum version needed. |
deprecated_warning |
When used as decorator, will log a warning message anytime the decorated function is called. |
is_tvp_version_below_12 |
Returns True if the tvp instances version is below 12, False otherwise. |
Below is also a list of the current breaking changes and bugs we noticed during development :
George Documentation¶
- George documentation is still not up to date and still contains many errors (seems stuck at some older TVP11 version), for now prefer the PyTVPaint documentation whenever possible.
General¶
- UI doesn't always update when values are set/updated via code, you either have to wait a few seconds for a refresh, or click somewhere else. This might lead to errors when users are using the UI at the same time.
C++ Plugin¶
- [BUG] plugin PIRF_HIDDEN_REQ and FILTERREQ_NO_TBAR don't seem to be working anymore, the plugin window is now visible and closing it kills the plugin with no way to restart it without restarting tvpaint.
Project¶
- [DEPRECATED/BREAKING]
tv_ProjectInfovalues offield_orderhave been removed so for now we provide it ourselves. - [BUG]
tv_project_save_sequencedoes not render empty instances even if they exist in the timeline.
Scene¶
- [BUG]
tv_SceneCreatedoesn't seem to work.
Clip¶
- [BUG]
tv_ClipSaveStructurejson %fi does not work for folder structure (in v11 and v12) - [BUG]
tv_ClipSaveStructurejson seems to output low quality images, this may use the same functiongeorge.tv_save_image.
Layers¶
- [ERROR]
tv_CTGGetSourcesis actually misspelled and is actuallytv_CTGGetSourcewithout thesat the end. - [ERROR]
tv_CTGGetSourcesactually requires and returns layer Ids not names. - Child layers have no way of knowing if they are in a folder layer or which one.
- A Folder layer has no way of knowing which layers are its children.
- [BUG] Creating a CTG layer from a folder crashes TVPaint.
- [BUG] Moving a layer that is already in a folder in the same folder crashes TVPaint.
tv_LayerMovecan now move layers into folders but the position is relative to the root and not the folder, this is not ideal, since we can't know if a layer is already in a folder or not, which adds a lot of uncertainty when moving layers in and out of folders.- Not providing a
FolderIDtotv_LayerMovedoesn't move the layer to the root, you just need to move outside the folder range for it to work, which again is pretty tough to do since we can't get the child layers of a folder and therefore their positions. - Moving a layer inside a folder can be done without providing a
FolderID, just by moving the layer in the folder's range. - [BUG] CTG layer sometimes takes a while to update in the UI (a few seconds), which means they can be unintentionally edited or reset before the update.
- CameraLayer is not really a layer and most layer functions will ignore it, prefer use of PyTVPaint
Cameraobject instead. - [BUG] Selecting the Camera Layer in the UI now disables/grays out most layer related tools (this is a new behavior), this causes a lot of errors when using pipeline tools or TVPaint panels as TVPaint now raises an error messages anytime you try to use a tool that is not camera related when the camera layer is selected.
- [BUG]
tv_LayerRenamedoes not work in TVP12 and will replace the name with an empty string, this is either a new bug or there is now a new argument that is needed but not documented. - [BREAKING] default layers name is now
Anim_Xand when these layers are queried for their names they return an empty string. - [BUG]
tv_layer_movestill sets position at (value-1) when value is superior to 0. - [BUG]
tv_preserve_setdoes not seem to work in TVP12 - [BUG]
tv_LayerColor setcolorwill fail when thenameargument is provided. - [BUG]
tv_LayerColor setcolorno longer returns -1 when given a bad color index. - [BUG]
tv_layer_moveno longer returns -1 when given a bad position. - [BUG]
tv_LayerCreateshould not be used when an empty string as it will consider the new variablelayer_typeas the name. - [BUG] Many layer functions that used to return -1 when given a bad layer id or position no longer do so, this can lead to silent errors and breaking behavior, this also breaks any way to check/validate these functions return values. The functions are :
tv_layer_settv_LayerSelectiontv_layer_killtv_LayerBlendingModetv_LayerStenciltv_LayerPreBehaviortv_LayerPostBehaviortv_LayerLockPositiontv_LayerMarkSet
Camera¶
- [DEPRECATED/BREAKING]
Camera.anti_aliasingno longer returns anti_aliasing, for now it always returns 1. - [DEPRECATED/BREAKING]
Camera.fpsno longer returns/sets fps, now only fps is Project fps. - [BUG] Most Camera values can still be edited/queried using
tv_CameraInfobut they are not immediately reflected in the UI, and so they can be unintentionally edited or reset. - [DEPRECATED/BREAKING]
tv_CameraInfovalues of pixel aspect ratio and fps have been "swapped" (since camera fps is no longer provided). - [BUG]
tv_CameraInterpolationdoesn't work properly in TVP12 and always returns an "empty" point.
Guidelines¶
tv_GuidelineModify "marks"doesn't seem to work, values are never changed, added function with a warning.
[1.0.2] - 2024-10-02¶
Fixes¶
- FIX save_dependencies functions #14
[1.0.1] - 2024-09-16¶
Fixes¶
- HOTFIX tv_save_sequence range handling
[1.0.0] - 2024-06-21¶
Added¶
- Releasing first production version after successful use in projects at Brunch Studio
[1.0.0b9] - 2024-05-28¶
Fixes¶
- FIX tv_load_sequence/tv_load_image always stretching loaded media
Features/Updates¶
- UPDATE default values for functions :
- grg_clip.tv_load_sequence
- grg_clip.tv_sound_clip_adjust
- grg_layer.tv_load_image
- grg_project.tv_load_project
- grg_project.tv_project_save_sequence
- grg_project.tv_frame_rate_project_set
- grg_project.tv_sound_project_adjust
[1.0.0b8] - 2024-05-22¶
Features/Updates¶
- UPDATE george.grg_clip.tv_clip_save_structure_json default values and param names
Fixes¶
- FIX Layer.new_background_layer not working when providing an image to set
[1.0.0b7] - 2024-04-30¶
Features/Updates¶
- UPDATE clip json export to handle all options (fill_bakcground, all_images, etc...)
- [BREAKING CHANGES] UPDATE tv_clip_save_structure_json default values
[1.0.0b6] - 2024-04-22¶
Features/Updates¶
- Updated documentation
- Added new functions in Layer class : render and render_instances
- Clamp values for position to minimum 0
- Updated
get_functions in classes to return None instead of raising an error when element not found - Update tests
- [BREAKING CHANGES] Updated function signatures and default values for:
- Clip.load_media
- Clip.render
- Clip.export_json
- Clip.export_psd
- Clip.export_csv
- Clip.export_sprites
- Clip.export_flix
- Clip.set_layer_color
- Layer.render_frame
- Project.render
- Project.render_clips
Fixes¶
- Fix layer position not setting position 0 correctly
- Fix mark_in/mark_out not set correctly
[1.0.0b5] - 2024-04-02¶
Fixes¶
- FIX client auto-connect not working properly
- FIX background colors set in Project class
[1.0.0b4] - 2024-03-28¶
Features/Updates¶
- Change
tv_background_setGeorge function signature to accepts a single color argument of typetuple[RGBColor, RGBColor] | RGBColor | Noneto be coherent withtv_background_get. #9
[1.0.0b3] - 2024-03-27¶
Added¶
- ADD background mode option in render functions
- UPDATE background mode and color functions in API
Fixes¶
- FIX render context setting save mode instead of alpha mode