Update Version 0.6
Happy New Year
New year, new update. Unfortunately I was hoping to have this out well before the new year. I was actually planning to finish this update months ago with about twice the amount of content but due to irl obligations, having to rewrite large chunks of the program (in some instances multiple times), and good old fashion bugs, this ended up taking a lot longer than I wanted.
So what exactly is in this update? Unfortunately, the actual content is somewhat slim, mostly centered on adding more support for the use of parameters. This update ended up being mostly backend changes, and preparation for things to come–things that I hope will be significantly more exciting. I considered waiting until those parts were completed, but after several months of radio silence, I felt like it would be good to get something out there.
I also created a Blue Sky account. I will try to regularly post what I'm currently working on there, so the delay between updates isn't so empty.
Note: As with every update, be sure to backup your files before trying the update. There may be a few bugs that slipped through to the release version, despite extensive testing and bug fixing. The new implementation of parameters created a wide variety of edge cases that needed to be accounted for, and much of the delay with this update came from finding and fixing all those edge cases. It's likely that some of them made it past through testing–in fact, in the process of writing this, several new but now-squashed bugs were found–and will need to be patched later.
Miscellaneous Changes
Before getting to the main bulk of the update, here’s a few additional changes that were made.
- Improved Stability - Previously certain aspects of the simulation were tied to frame rate. Due to the nature of how Live2D models are updated, physics updates are performed on each frame. In older versions, this meant that collision detection was only done once per frame, leading to incredibly varied performance depending on framerate. This has been changed so that all calculations are done at regular intervals regardless of framerate.
- Removed Vertex Values on Deformers - Previously deformers gave the option to assign values to every vertex that was in the deformer, so that every vertex did not need to be set individually. This feature was never fully functional, as if an individual vertex had its values set to override the deformer value there was no way to remove the override. This then became vestigial as the option to select multiple vertices and assign their values at once made this option unnecessary and confusing, so it has been removed. This should have no bearing on loading saved models (given that it was never fully functional to begin with).
- Changed Vertex Gravity - The gravity of individual vertices was changed from a vertex direction, to a single rotation value. This gravity direction was always relative to the global gravity direction, meaning that if gravity was changed to not point downwards, each vertex would treat this new direction as if it was downward and fall accordingly. This has been replaced by “Angle Adjustment” which sets an angle in degrees to rotate the way the vertex falls. This should improve clarity, but also made it possible to use with parameters and have consistent rotation. This does mean that it is no longer possible to set the direction as being along the z axis, but the use cases for this seem limited enough that it felt like a necessary sacrifice. If I am wrong and there are people who are using this or want to use it, it could be added as a secondary field in a future update.
- Changed Rigging File Format - The json used to save physics rigging for models has been changed; however, old rigging should still load fine as it gets converted into the new format. This is only notable in that the plugin has to do this conversion every time the model is loaded. This should be a very marginal slowdown, but still it may be preferable to resave in the editor to update the rigging to the new format.
Parametrics
The way Physics+ uses parameters has been completely overhauled completely internally, expanding its usage and providing setup for future additions. This should provide a number of new options for customizations to the rigging of models and changing how elements move and react using parameters–fewer than may have been desired, but those will have to come in future updates.
- Added New Parameter Options for Vertices - Additional values besides anchor position can now be tied to parameters, allowing them to change in response to animations or facial tracking. Future updates plan to include options for edge elasticity, ribbon deformer’s stiffness, support edge’s length, among a wide variety of other things. Current options include:
- Radius
- Gravity Strength
- Gravity Angle
- Dampening
- Mass
- Note: Be extremely careful when altering the mass of vertices. Sudden changes to mass can cause explosive results to kinematics by suddenly changing the momentum of an object. If you are wanting something to simply be heavier, it may be safer to instead change gravity strength.
- Increased the Max Number of Parameters per Vertex - Vertices can now be tied to three or more parameters, for increased customization.
- Added Support For Repeat Parameters - Parameters in Physics+ now loop like those in Live2D when using the repeat option.
- Fixed Issues with Undoing and Redoing - In previous versions of Physics+, when a parameter key was removed and then added back–either by undoing and redoing its creation, or deleting it and then undoing that delete–the key would be re-added correctly, but the values of the vertex at that key would not be. This has been fixed to have the expected functionality.
Known Issues
- Using a large number of parameters for a single vertex can cause slowdown to the editor. This slowdown should be minimal to nonexistent when actually animating the model, and future updates should be able to mitigate the issue, but for now having a large number of vertices with 4+ parameters may cause lag when saving or starting the simulation.
- Currently all parameters function as though they have the repeat option enabled, which while uncommon, may occasionally cause issues. Fixing this will require updating the editor to the newest version of the Live2D SDK, which should come in a future update.
Future Plans
As I’ve alluded to several times, I have a number of exciting plans for expanding this project, and we’ve only really scratched the surface of what I want to do. Exactly what I’m working on for the next update, I’m keeping a bit under wraps–partially because I enjoy the surprise and partially because there is a distinct possibility that some of those plans might take longer or might not be immediately feasible–but it should greatly expand what all can be done with Physics+ and for that I hope you all look forward to… whenever it eventually comes out.
The update after that I’m planning to do an overhaul to the editor UI. I’ve gotten a good amount of feedback about certain elements of the UI that could be better clarified or made easier to use, and I would like to put those to use. I admit I’m not the best when it comes to designing UX, so any further feedback about what people would like to see would be greatly appreciated. One of the main priorities will be adding visual aspects to some of the values shown in the inspector, like displaying the radius and gravity direction of vertices directly onto them.
Overall, I’m excited for what’s to come, and I hope to continue to make it bigger and better with each update and that people will find good usage out of it. Thank you to everyone who has experimented with Physics+ and given this crazy project a try. Even though things have really only gotten started, and there’s not a huge number of users yet, I was still surprised with the reaction I got when I first uploaded this. I was honestly worried that no one would even give it a shot, and it would immediately fall into obscurity. So again, thank you greatly to everyone who has downloaded Physics+ or follows the project. It means the world to me.
Files
Get Physics+ for Live2D
Physics+ for Live2D
Soft body physics simulator for Live2D's Unity SDK and VtubeStudio.
| Status | In development |
| Category | Tool |
| Author | Absement |
Leave a comment
Log in with itch.io to leave a comment.