It's a minor version. But the fixes are useful. Only the Player has been fixed.
- Changed the handling of Camera Scale and Y-axis Scale. These two options have now been moved to the Settings module as global settings.
- Improved the handling of adjusting camera settings. You can now see the camera position change as you adjust the parameters.
- Added the option to set the Base Centre Height in the Settings module, you can now set the base height position of the person without having to adjust the position of the person.
- Force Disable IK is now adjusted to be a storable data item. You can now specify whether your VMD data is data with IK or not.
- The Y-axis default for Camera Position Offset is now changed to 0.
- Fixed an issue where the person's position was inadvertently reset when Enable Initial Motion Adjustment was selected.
- Fixed the issue of abnormal camera position when returning to WorldUI in some cases.
- Fixed the issue that the camera focus feature could not display atom names correctly.
- Fixed the issue of foot anomalies that could occur when initialising motions.
This is a big step.
This version fixes the often-criticised Camera problem with the mmd2timeline/MMDShow Player feature.
- Adjusted camera operations to fix camera shake and frame skipping in some cases.
- Add Camera Position Reference, the camera will automatically adjust the start position according to the selected atom. If you need to adjust the start position of the person, this option will help you to make the camera follow the position of the person.
- Added "Y Axis Scale" option for camera motion. This option solves the problem that VMD's camera data is too high in some cases. The reason for this phenomenon is that MikuMikuDance person models are taller than VaM's. In addition to this option, it is recommended to adjust the scale of the person to make it a bit bigger.
- Yes, this version also fixes the problem with the motion when scaling Person. @ElderDD
- Expression toggle changed to Expression Scale. To deal with expressions that are too big or too small in some VMDs.
- Added head and neck joint orientation adjustment. @Stars&Garters
Version 1.3 has a compatibility issue. It caused the plugin not run on lower versions of VAM. This version fixes the issue.
( Still recommend you upgrade to the latest version of VAM for better experience )
This is a minor update.
My holiday will be over soon. This version will probably stay up for a while. If you find any problems or have any feature requests, please give us feedback and we may be able to fix them in the future.
- Adjusted processing logic for custom camera atoms. Selected WindowCamera is now supported and an atom with Embody plugin attached will be selected automatically. If the Embody plugin is attached to the target atom, the Embody Active status can be automatically synchronised with the Camera Active status, and does not need to be set by Trigger.
- Fixed the problem that the receiver whose target type is Bool when setting a trigger cannot correctly determine whether the value can be updated by the plug-in.
- The default value for global motion scale is changed to 0.85, and the default value for person's motion scale is changed to 1. Unless the person's motion scale is changed directly, it will be executed using 0.85 as the value for the motion scale.
Have fun.
1. There is now a "Sync Mode" feature in the Settings interface that allows you to choose whether the progress is "SyncWithAudio" or "SyncWithGame". The default is "SyncWithAudio". Using the "SyncWithGame" mode allows you to use third-party plug-ins for frame-by-frame recording.
2. Added the audio source selection feature. Now you can select an AudioSource in the scene for audio playback.
3. Adjusted the precision processing when updating the playback progress according to the audio synchronisation, the Camera may be a bit more stable due to this effect.
4. Adjusted Camera control mode. Added "WindowCamera" and "Atom" modes, WindowCamera replaces the previous WindowCamera option, Atom option allows you to give the Camera data to a specified Empty atom, you can use EmBody to bind to the specified Empty atom for the Camera to follow the processing, the Camera may be a little more stable due to this effect.
5. Added support for MMD playlist playback in var packages. It is now possible to package MMD data and playlist files in var and load them from the Player. This means that you can now share MMD data with var packages.
Now the Player feature offers open Actions and Triggers. You can invoke them in your scene.
This version provides a new component Trigger, it sets the trigger event of the Player.
Select the trigger on the left side of the Trigger component and set the trigger action on the right side (the right interface learns the implementation idea of ActionGrouper, special thanks to @JayJayWon).
Trigger can provide different types of data such as StringChooser, String, Bool, Float, etc. If you set the trigger with the same type of target, it can be update by the trigger data.
Open Actions:
- Play/Pause - Toggles Play status between Play and Pause.
- Play - Start play.
- Stop - Stop play.
- Prev - Switches to the previous item in the playlist.
- Next - Switches to the next item in the playlist.
- Import From Folder - Import content from a directory to current playlist. The audio and VMD data files of each item need to be in a separate directory, and the selected directory should be one level up from this separate directory.
- Load From Folder - Loads a MMD from a single directory.
- Load File - Loads a file to the current MMD.
- Clear All - Clears all items of the playlist.
- Remove Current - Removes current item from the playlist.
- Import From File - Imports a playlist from a saved playlist file.
- Export Playlist - exports current playlist to a file.
- Load All - Loads all recorded items to current playlist.
- Load Favorite - Loads all favorite items to current playlist.
- Toggle Favorite - Toggles the favorite and non-favorite status of the currently playing item.
- Toggle Play Mode - Toggles the play mode.
- Reset Person Motion - Reset the person motion model.
Open Triggers:
- Script Loaded Trigger - Triggered when the Player script has finished loading, will only be executed once. It will provide a value of type Bool which will be True only.
- Start Playing Trigger - Triggered when the Player starts loading a piece of item (it may not be playing, it may be paused). A value of type String will be provided with the title of the content to be played.
- Play Next Trigger - Triggered when the player switches to the next item. This is a trigger with no value, and is triggered when an event occurs.
- Is End Trigger - Triggered when the playback is finished and ready to play the next item. This is a trigger with no value that is fired when the event occurs.
- Favorited Trigger - Triggered when current item is favorited. This is a trigger with no value, and is triggered when the event occurs. (Also triggered when switching between playing item, if the new item has a different favored status than the previous item)
- Not Favorite Trigger - A trigger for current item to be unfavorited. This is a trigger with no value and is triggered when the event occurs. (Also triggered if the new item has a different favorite status than the previous item when switching playback item)
- In Init Mode Trigger - A trigger that enters initialization mode. It means that the player has entered the wait mode after initialization. This is a trigger with no value and is triggered when an event occurs.
- In Play Mode Trigger - Trigger for entering play mode. It means that the player has entered the play mode after loading the playlist. This is a trigger with no value and is triggered when an event occurs.
- In Edit Mode Trigger - Trigger for entering edit mode. It means that the player has entered edit mode. This is a trigger with no value that is triggered when an event occurs.
- In Load Mode Trigger - Trigger for entering load mode. It means that the player has entered the mode during the loading of a playlist. This is a trigger with no value and is triggered when an event occurs.
- Camera Activated Trigger - The camera control is activated trigger. This trigger is fired to indicate that the player is controlling the camera for camera movement playback. This is a trigger with no value that fires when an event occurs.
- Camera Deactivated Trigger - The camera control is not activated trigger. This trigger is triggered when the player is not controlling the camera for camera deactivation (either because there is no camera deactivation file or the user has opened the UI or paused the playback). This is a trigger that has no value and fires when the event occurs.
- Progress Trigger - Playback progress update trigger. This trigger will continuously provide the progress data when the playback progress changes, and it will continuously provide the data of Float type.
- Playing Status Trigger - Playing status trigger. This trigger will be triggered when the playing/stopping status is changed, it will provide a value of type Bool which represents whether the player is playing or not.
- Play Mode Changed Trigger - Play Mode Changed Trigger. This trigger will be triggered when the play mode changed, it will provide a value of type String, the string may be "Default", "Random", "Repeat", "Once".
This is a major update! The biggest update is the addition of “play” function.
1. Supports the direct Play function.
This feature is mainly contributed by noone77521.he put a lot of time and effort on it.Great appreciate to his work!
The player have some innovation on playlist,person setting,etc.
The player's function reference to some existing plugins.
# ride feature of camera learns part of Passenger's implementation.
# focus feature of camera is inspired by Searchlight, and its UI uses Searchlight's implementation.
other minor update:
2. Supports "force disable IK" toggle,for some vmd not support IK
3. Modify the MatchTarget method to support multiple person atom.
Thanks to hub for introducing the team collaboration mechanism. this help me cooperation with other developers.
Every suggestion is welcome!