* Allow user to install meshsync 0.13.2 from blender
* cleanup
* use local package instead of registry for dev purposes
* Copy setttings file to Unity project before adding entry to manifest
* Send server add command on manually sync
* Added a series of checks when trying to sync data
* If project dir is not legit, try to find an active server and get the path of the project it is running
* WIP: Create a Unity project with MeshSync installed and the scene synched through the Blender panel
* WIP versions dialog
* Cleanup
* exposed hub and editor version to panel
* Remove project creation functionality
* Notify And Quit messages are printed to console
* Get Meshsync package from resources folder of add-on
* Removed dependency to local meshsync installation
* Reverted changes to python files
* Reverting changes to the cpp/h files
* Blender 3.1 client
* Blender 3.0.1 Client
* Blender 2.93 client
* Blender 2.92 client
* Blender 2.91.2 client
* Blender 2.90.1 client
* Blender Client 2.83.18
* Using the IP address and editor server port configured by the user
* Changed UI to expose Editor path instead of hub path
* Expose Unity Editors install dir instead of Unity Hub dir
* Simplified code
* Used constants for editor commands
* Added back reverted changes to cpp/h files
* Moved installation related functions to a new file. Replaced operators with functions
* Editor Messages get message id and session id
* Common error handling across 3 sync buttons
* Common error handling across 3 sync buttons
* removed dead code
* updated v3.1.0
* Updated v3.0.1
* updated v2.93.7
* update for v2.92.0
* update for v2.91.2
* update for v2.90.1
* update for v2.83.18
* removed dead code
* Using with statement to ensure file is closed on all paths
* check package-lock for existance of package
* Create/Update server settings file with server port info
* used path.join for path concat
* Fix for bug with path comparison
* Dont try to install a scene server if there is one available
* UI for controlling auto config
* Find available sockets if autoconfig is on
* More specific parameters for sockets
* Ensure scene server is listening after installation. Fix for MacOS on how to launch process. Minor code quality improvements
* Handling for process launch failure
* Fix Editor postfix for Linux
* Fix for stop pollin if process is killed
* timeout for polling scene server after adding
* update blender 3.1
* update blender 3.0
* update blender 2.93.7
* update blender 2.92
* updated blender 2.91.2
* updated blender 2.90.1
* pass auto-setup arguments through command line arguments instead of injecting file
* Removed resources folder
* blender 3.3 support
* forgotten None argument for command to get project path
* Allow user to install meshsync 0.13.2 from blender
* cleanup
* use local package instead of registry for dev purposes
* Copy setttings file to Unity project before adding entry to manifest
* Send server add command on manually sync
* Added a series of checks when trying to sync data
* If project dir is not legit, try to find an active server and get the path of the project it is running
* WIP: Create a Unity project with MeshSync installed and the scene synched through the Blender panel
* WIP versions dialog
* Cleanup
* exposed hub and editor version to panel
* Remove project creation functionality
* Notify And Quit messages are printed to console
* Get Meshsync package from resources folder of add-on
* Removed dependency to local meshsync installation
* Reverted changes to python files
* Reverting changes to the cpp/h files
* Blender 3.1 client
* Blender 3.0.1 Client
* Blender 2.93 client
* Blender 2.92 client
* Blender 2.91.2 client
* Blender 2.90.1 client
* Blender Client 2.83.18
* Using the IP address and editor server port configured by the user
* Changed UI to expose Editor path instead of hub path
* Expose Unity Editors install dir instead of Unity Hub dir
* Simplified code
* Used constants for editor commands
* Added back reverted changes to cpp/h files
* Moved installation related functions to a new file. Replaced operators with functions
* Editor Messages get message id and session id
* Common error handling across 3 sync buttons
* Common error handling across 3 sync buttons
* removed dead code
* updated v3.1.0
* Updated v3.0.1
* updated v2.93.7
* update for v2.92.0
* update for v2.91.2
* update for v2.90.1
* update for v2.83.18
* removed dead code
* Using with statement to ensure file is closed on all paths
* check package-lock for existance of package
* Create/Update server settings file with server port info
* used path.join for path concat
* Fix for bug with path comparison
* Dont try to install a scene server if there is one available
* Ensure scene server is listening after installation. Fix for MacOS on how to launch process. Minor code quality improvements
* Handling for process launch failure
* Fix Editor postfix for Linux
* Fix for stop pollin if process is killed
* timeout for polling scene server after adding
* pass auto-setup arguments through command line arguments instead of injecting file
* Removed resources folder
* Removing debug code
* Allow user to install meshsync 0.13.2 from blender
* cleanup
* use local package instead of registry for dev purposes
* Copy setttings file to Unity project before adding entry to manifest
* Send server add command on manually sync
* Added a series of checks when trying to sync data
* If project dir is not legit, try to find an active server and get the path of the project it is running
* WIP: Create a Unity project with MeshSync installed and the scene synched through the Blender panel
* WIP versions dialog
* Cleanup
* exposed hub and editor version to panel
* Remove project creation functionality
* Notify And Quit messages are printed to console
* Get Meshsync package from resources folder of add-on
* Removed dependency to local meshsync installation
* Reverted changes to python files
* Using the IP address and editor server port configured by the user
* Editor Messages get message id and session id
* Scale instance transforms with meshsync scale factor to ensure correct positioning.
* Doing instance scaling locally for now until meshsync is updated.
* Fix for untiy matrix error
* Scale instance transforms with meshsync scale factor to ensure correct positioning.
* Doing instance scaling locally for now until meshsync is updated.
* Round normals to 2 decimal places to avoid issues with meshes being sent every frame
* Extracting rounding to meshsync math function
* Renaming method.
* Added bindings for object_instances CollectionPropertyRNA access and extended BlenderPyContext to interface between bindings and caller code. Added access via the iterators on msBlendContext::exportMesh (WIP)
* Correct usage of CollectionPropertyIterator, binded to instance_object for evaluating the RNAPointer to an Object
* Filtering out non meshes and non instances
* Created function for extracting instancing info, added code for storing instancing info in mesh transform
* Blender to Unity matrix corrections
* Instances are associated to the name of the mesh, not the name of the parent object
* Extract Geometry node tree input parameters and set them as variant data on the object with the geometry node modifier
* move names when setting variant
* macrs for compiling object instances code only for blender 3.0.0 and above. Better resource lifetime using exporter events
* Adding execute call to operator so it can be called from script.
* Compile fixes
* Fix for cleaning instances correctly, get updates from depsgraph on any mode (auto or manual)
* Support manual sync when loading new file
* Implemented instances manager on MeshSyncClient. Converted Geometry nodes class to a geometry nodes utility class
* Reduced amount of times instances are accessed. Delete message is populated and handled correctly with regards to the instancing info
* Better name generation for instance info
* fixed compilation error
* small change on name translation
* Using entity path as instance info path
* null check guard
* Covered use case where instances refer to meshes not in scene
* WIP modifier export
* Support for instances on geometry that is not part of the scene
* WIP blender properties
* WIP properties
* WIP properties
* Fix for Release compilation not rendering intermediate meshes
* Corrected cmake syntex for using c++17
* Avoid returning address of local var
* Code depending on geometry nodes compiles only on 3.0.0 and above
* Support to control geo node properties from unity.
* Fix for Python Lib check on Mac
* Fixed errors when compiling with XCode
* Removed unused extern properties that caused importation errors
* Import visibility based on collection
* Fix for compiation issues
* Implementing custom properties
* Support for Blender 3.1
* Make sure properties are not added twice.
* optimisation and refactoring
* Used Shared Vector instead of std::Vector for instacing info transforms
* small optimisations
* Geometry Nodes: Refactored how objects are accessed so objects outside the scene can be used. Refactored export callbacks for reusing exportation code for geometry node object inputs
* Removed Object Instance ReferenceType from geometry nodes instances
* Refactor: created a class that encapsulates the msblenContext state of bones, pending list and the transform manager. State objects are passed as arguments to export function for reusing export code with instances manager
* Geometry Nodes: Fix for associating objects through data id instead of object id
* Geometry Nodes: WIP refactor on accessing instances data
* Geometry Nodes: support for passing the path of parent for instances
* Geometry Nodes: Better support for exporting objects that are not part of the file
* Geometry Nodes: avoid exporting objects that exist in the scene
* Geometry Nodes: use unordered map instead of map for instances records
* Fix for exception on cleanup.
* Geometry Nodes: send local transforms for instances instead of world transforms
* Geometry Nodes: Simplification on local matrix calculcation
* Geometry Nodes: simplification on matrix calculations
* Geometry Nodes: small refactor on using how the geonode utility lamdas are used
* Geometry Nodes: moved RNA interfacing to appropriate classes
* Visibility: fix for collection visibility
* Geometry Nodes: use parallel for when converting matrices
* Fix for operator so it can be invoked from script
* Support for double properties
* Property fixes
* Fix to keep updating meshsync in background mode
* Update more frequently to run smoother
* CMakeList: Use C++17 instead of C++14
* BlenderPy objects for Depsgraph and DepsgraphObjectInstance
* Manager for instanceInfo collection
* Geometry Nodes utility
* Extract geometry instances
* Reverted RNA bindings to NodeTree
* WIP curve support
* Adding a way for the server to ask for a full sync.
* Use instance name instead of uuid to avoid problem where new prefabs are created every sync.
* cheeck layer visibility
* Fix for instance visibility
* Adding curve support
* Curve fixes.
* WIP curve refactor and mesh support.
* WIP mesh support.
* Adding pythhon callbacks during export stages
* Implementing setting of string properties.
* Added mesh support
* Removing not needed include.
* Removing not needed class.
* Reverting whitespace changes
* Cleaning up includes
* Reverting formatting
* clean up
* Fix for repeated modular registration
* Fix for deadlock.
* Removing not needed file
* Fix for registration when a file is loaded
* Removing not needed code.
* Refactoring
* Formatting fix
* Refactoring
* Refactoring
* Removing test code
* Reverting unwanted format change
* Format fix
* Format fix
* More formatting fixes
* Format fix
* Format fix
* Removing unused code.
* Extracted string constant.
* Fix to handle multiple meshes with the same name in geometry nodes.
* Removing unused code
* Refactoring to remove duplicate code.
* Refactoring to new class for curve handling.
* Format fix
* Refactoring
* Reverting format change
* Reverting format fixes
* Reverting format change
* Reverting format change
* Removing a dangerous empty line.
* Clean up
* format fix
* format fix
* Clean up
* Format fix
* Changing addon to put all files in a single directory and use blender version specific unity_mesh_sync.py as __init__.py
* Updating script for new folder structure
Co-authored-by: Sean Dillon <sean.dillon@unity3d.com>
Co-authored-by: Sean Dillon <sean.dillon@Seans-MacBook-Pro.local>
* Added bindings for object_instances CollectionPropertyRNA access and extended BlenderPyContext to interface between bindings and caller code. Added access via the iterators on msBlendContext::exportMesh (WIP)
* Correct usage of CollectionPropertyIterator, binded to instance_object for evaluating the RNAPointer to an Object
* Filtering out non meshes and non instances
* Created function for extracting instancing info, added code for storing instancing info in mesh transform
* Blender to Unity matrix corrections
* Instances are associated to the name of the mesh, not the name of the parent object
* Extract Geometry node tree input parameters and set them as variant data on the object with the geometry node modifier
* move names when setting variant
* macrs for compiling object instances code only for blender 3.0.0 and above. Better resource lifetime using exporter events
* Adding execute call to operator so it can be called from script.
* Compile fixes
* Fix for cleaning instances correctly, get updates from depsgraph on any mode (auto or manual)
* Support manual sync when loading new file
* Implemented instances manager on MeshSyncClient. Converted Geometry nodes class to a geometry nodes utility class
* Reduced amount of times instances are accessed. Delete message is populated and handled correctly with regards to the instancing info
* Better name generation for instance info
* fixed compilation error
* small change on name translation
* Using entity path as instance info path
* null check guard
* Covered use case where instances refer to meshes not in scene
* WIP modifier export
* Support for instances on geometry that is not part of the scene
* WIP blender properties
* WIP properties
* WIP properties
* Fix for Release compilation not rendering intermediate meshes
* Corrected cmake syntex for using c++17
* Avoid returning address of local var
* Code depending on geometry nodes compiles only on 3.0.0 and above
* Support to control geo node properties from unity.
* Fix for Python Lib check on Mac
* Fixed errors when compiling with XCode
* Removed unused extern properties that caused importation errors
* Import visibility based on collection
* Fix for compiation issues
* Implementing custom properties
* Support for Blender 3.1
* Make sure properties are not added twice.
* optimisation and refactoring
* Used Shared Vector instead of std::Vector for instacing info transforms
* small optimisations
* Geometry Nodes: Refactored how objects are accessed so objects outside the scene can be used. Refactored export callbacks for reusing exportation code for geometry node object inputs
* Removed Object Instance ReferenceType from geometry nodes instances
* Refactor: created a class that encapsulates the msblenContext state of bones, pending list and the transform manager. State objects are passed as arguments to export function for reusing export code with instances manager
* Geometry Nodes: Fix for associating objects through data id instead of object id
* Geometry Nodes: WIP refactor on accessing instances data
* Geometry Nodes: support for passing the path of parent for instances
* Geometry Nodes: Better support for exporting objects that are not part of the file
* Geometry Nodes: avoid exporting objects that exist in the scene
* Geometry Nodes: use unordered map instead of map for instances records
* Fix for exception on cleanup.
* Geometry Nodes: send local transforms for instances instead of world transforms
* Geometry Nodes: Simplification on local matrix calculcation
* Geometry Nodes: simplification on matrix calculations
* Geometry Nodes: small refactor on using how the geonode utility lamdas are used
* Geometry Nodes: moved RNA interfacing to appropriate classes
* Visibility: fix for collection visibility
* Geometry Nodes: use parallel for when converting matrices
* Fix for operator so it can be invoked from script
* Support for double properties
* Property fixes
* Fix to keep updating meshsync in background mode
* Update more frequently to run smoother
* CMakeList: Use C++17 instead of C++14
* BlenderPy objects for Depsgraph and DepsgraphObjectInstance
* Manager for instanceInfo collection
* Geometry Nodes utility
* Extract geometry instances
* Reverted RNA bindings to NodeTree
* WIP curve support
* Adding a way for the server to ask for a full sync.
* Use instance name instead of uuid to avoid problem where new prefabs are created every sync.
* cheeck layer visibility
* Fix for instance visibility
* Adding curve support
* Curve fixes.
* WIP curve refactor and mesh support.
* WIP mesh support.
* Adding pythhon callbacks during export stages
* Implementing setting of string properties.
* Added mesh support
* Removing not needed include.
* Removing not needed class.
* Reverting whitespace changes
* Cleaning up includes
* Reverting formatting
* clean up
* Fix for repeated modular registration
* Fix for deadlock.
* Removing not needed file
* Fix for registration when a file is loaded
* Removing not needed code.
* Refactoring
* Formatting fix
* Refactoring
* Refactoring
* Removing test code
* Reverting unwanted format change
* Format fix
* Format fix
* More formatting fixes
* Format fix
* Format fix
* Removing unused code.
* Extracted string constant.
* Fix to handle multiple meshes with the same name in geometry nodes.
* Removing unused code
* Refactoring to remove duplicate code.
* Refactoring to new class for curve handling.
* Format fix
* Refactoring
* Reverting format change
* Reverting format fixes
* Reverting format change
* Reverting format change
* Removing a dangerous empty line.
* Clean up
* format fix
* format fix
* Clean up
* Format fix
* Removing unused code.
* formatting fix
* Removing unused code.
* Using map instead of vector.
* Fix for retrieving objects from library
* Simplifying code.
* format fix
* exit method early if possible
* reducing nesting
* Refactoring
* Renaming things to be more clear
Co-authored-by: Sean Dillon <sean.dillon@unity3d.com>
Co-authored-by: Sean Dillon <sean.dillon@Seans-MacBook-Pro.local>
* Fix: apply scene settings before animation settings
* Blender: fixed issue where bones were not exported due to an API change for bDeformGroup (Vertex groups) in 3.0
* add unity_mesh_sync.py python script
* update doc
* update cmake
* material.cpp, which contains source code copied from Blender source code
* include "intern/guardedalloc", which is necessary for only Blender 3.2+
* wrap OB_CURVES_LEGACY
* use std::memcpy() to copy Object because it's copy constructor is deleted in Blender 3.2+
* Ensure python callback is only registered once to avoid getting too many callbacks.
* Applying callback fix to other Blender versions.
* Refactoring to only register the load handler once.
* Adding python bindings that will be needed to build meshes and curves.
* format fix
* Removing unused code.
* Formatting fix
* Renaming to be consistent
* remove auto
* use const in extractTransform()
* rename to IsRenderable() to IsNodeRenderable()
* reduce duplicate code in exportInstance()
* encapsulate duplicate code into ShouldExportNode()
* update package version
* update zip files
* add changelog
* sync package info to test projects
Others:
* ensure to build Mac plugins targeting 10.15 at minimum
* skip building modo plugins by default
* feat: 3ds Max 2022, 2023+ compatibility (#186)
* fix 3ds Max 2022+ SDK incompatibilities
* add 3ds Max 2022, 2023 and future 3ds Max versions to build list
add 3ds Max build filtering to CMakelists to exclude 3ds Max versions without actual SDK
* convert tabs to spaces
* update doc
Co-authored-by: Josef Wienerroither <FrogsInSpace@users.noreply.github.com>
* CMakeList: Use C++17 instead of C++14
* BlenderPy objects for Depsgraph and DepsgraphObjectInstance
* Manager for instanceInfo collection
* Geometry Nodes utility
* Extract geometry instances
* Reverted RNA bindings to NodeTree
* Fix: try to erase stale instances only when we expoort instances