• Hi Guest!

    We are extremely excited to announce the release of our first Beta for VaM2, the next generation of Virt-A-Mate which is currently in development.
    To participate in the Beta, a subscription to the Entertainer or Creator Tier is required. Once subscribed, download instructions can be found here.

    Click here for information and guides regarding the VaM2 beta. Join our Discord server for more announcements and community discussion about VaM2.
PoseHelper

Plugins + Scripts PoseHelper

Download [0.03 MB]
[There are no changes in plugin's pose mechanics]
* MorphLister UI reworked (VaM common InputField prefab is used now!)
+ MorphLister prevented to run on a non-person atoms

There is still an UI issue exists: saved morphs values files are browsed without preview thumbnails. Will try to fix it later.

UI reworked:
MorphLister-v06.pngMorphLister-v06-marks.png
[There are no changes in plugin's pose mechanics]
+ New separate plugin MorphLister.cslist intended for organize your custom morphs lists.
+ Added various PoseHelper morph features: saving/loading morphs values according bank(s) list.
* Bugfix Morph loading with single bank list.
Remark: ugly interface is because of my low skills in VaM plugin system. I will try to make it more convenient. Some help with
UnityEngine.UI.InputField appreciated.


This is a continuation for morph system. Now you have a *better* possibilities to organize your custom morph list in (possibly) many banks for all your characters/needs. For this a new plugin module MorphLister is introduced. It is a separated plugin for the morph list creation and you do not need it to be applied on your char all-the-time. It is aimed to create a morph list file (still a .json file that still can be edited manually) that can be loaded in PoseHelper plugin to edit particular morphs values from the list. A list consist of one or more banks helping you to arrange a body zones, some char special features, etc.
Designed workflow is as follow. In the following text the words in brackets are the plugin UI controls references. You query filtering a container that can be [all] system's morphs list or an existed [bank] or a previous query [result] with a filtering [flags], selected [region] and a regular expression ([regex]) to produce a new filtering [result]. The filters are discussed later. The result can be added (union) or removed from the selected [bank]. The on-button numbers in brackets show the current elements count in the corresponding [container]. You can glance the [result] morphs (first ten of them only) in action on the current char with [test] button (press again to undo) but be aware it can produce very strange results! You can type-in the exact morph name and press enter to see some [information] for the morph. Also you can replace some morph's names in the [result] list with [regex] [replace] to produce a "mirrored" bank for the right/left hand for example (discussed later).
That way you organize banks(s) or desired morphs. You can [add]/[delete]/rename each bank, [copy] its content to a new bank, [hide] it from the PoseHelper and [save]/[open] banks list to/from a file (.json).
MorphLister-v05-marks.png
Now let's move to the thing that are not user-friendly at all.
The [flags] are a set of boolean (true or false) values organized in a text representation: there is a list of a letters and a specific letter triggers requirement of specific value state. For example "f" letter means "favorite" morph flag and "d" is "driven". So that "f!d" [flags] text value leaves morph that are favorite AND NOT driven. The [help] button shows all letter flags for you.
The [regex], let say, is not so easy to learn. But you can use it in a simplest way just typing a word (sub string) you want find. Type "hip" for example and try it out. There are plenty helpers for you in the internet. Tip: C# Regex.Match with RegexOptions.IgnoreCase is used.
The [replace] feature works only for the [result] list. To make it work on a bank just query the bank with no filtering first. That will produce the [result] with the [bank] content. Tip: C# Regex.Replace is used. There is an example in the video below how to use it in simplest way.
+ Morph feature (in progress).
* Undo stack expanded to 15.

Now you can edit morphs value right from the new tab in the plugin UI! The plugin supplied with some short list of built-in morphs. But you can override default morph list with file:
[vam]\Custom\Scripts\Nickon\PoseHelper\MorphBanks.json
The file content is defined as follow:
JSON:
{
   "bank 1 name" : [
      "morph name 1",
      "morph name 2"
    ],
    "bank 2 name" : [
      "morph name 3",
      "morph name 4"
    ]
}

To disable this feature just put the above file with empty content.
The plugin generate new morph file list every time it applied on a person:
[vam]\Custom\Scripts\Nickon\PoseHelper\AllMorphs-[person_name].json
You can use this file to fill in your own MorphBanks.json

* body measurement mechanics slightly changed
* undo/redo bugfixes (still, expected to be bugged ;)
* limbs mirror ability now does not move target limb root point
* hips rotation now is independent from the torso* rotation (green)
+ chest/hips rotation value now rotates arms/legs root point (for some extent for chest rotation)
+ leg mirror now consider hip yaw (only)

Unfortunately, chest yaw rotation is discarded for arm roots points calculation, since this creates ambiguity for the reverse task.
* more undo/redo feature
* plugin disable/enable does full controllers read (undoable)
* limb mirroring now does hand/foot rotation based on direct angles
Back
Top Bottom