diff --git a/astro.config.mjs b/astro.config.mjs index 1d90a22..6cfb021 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -50,6 +50,8 @@ export default defineConfig({ // Each item here is one entry in the navigation menu. { label: 'Getting started', link: '/posesextension/intro/' }, { label: 'Installation', link: '/posesextension/setup/' }, + { label: 'Structure', link: '/posesextension/structure/' }, + { label: 'Action Controller', link: '/posesextension/action/' }, ], }, ], diff --git a/src/content/docs/posesextension/action.mdx b/src/content/docs/posesextension/action.mdx new file mode 100644 index 0000000..ddea0ee --- /dev/null +++ b/src/content/docs/posesextension/action.mdx @@ -0,0 +1,31 @@ +--- +title: BUDDYWORKS Poses Extension - Action Controller +description: Locomotion-agnostic pose framework. +--- +import { Aside } from '@astrojs/starlight/components'; + +### Poses&Dances +![PE Action Controller Poses&Dances Layer.](./img/003.png) + +By default, PE will be inactive and wait for any kind of input. +Whenever PE/Set is greater than 0, the layer will advance to *Warmup*, which is responsible to put the avatar in a posable state. + +Once that is done, we move on to the state selected with PE/Set. Dances and Poses are treated the same here, only difference being how they use the PE/Float value. +- **Poses:** Motion Time +- **Dances:** Speed + +A direct transition from Warmup to Restore should ensure that the logic works and syncs reliably in case of fast or invalid inputs. + +For visual differentiation, we just split Poses and Dances with the middle line, poses being on the top half and dances on the bottom half. This might get packed into statemaschines in the future if needed. + +If PE/Set changes away from the current active set, the layer will advance to *Restore* and loop back. +**Restore** re-engages tracking, essentially reversing changes done in **Warmup** + +### Support Logic +![PE Action Controller Support Layer.](./img/004.png) +This layer is used for any additional functions. + +Currently, it is responsible for making the infinite circle loop work whenever the value of PE/Float hits 0 or 100. +For the GGL Variant, an additional local check is done to make sure this function only runs when the user interacts with PE, but not with GGL. + + \ No newline at end of file diff --git a/src/content/docs/posesextension/img/001.png b/src/content/docs/posesextension/img/001.png new file mode 100644 index 0000000..3cdf12a Binary files /dev/null and b/src/content/docs/posesextension/img/001.png differ diff --git a/src/content/docs/posesextension/img/002.png b/src/content/docs/posesextension/img/002.png new file mode 100644 index 0000000..c92da16 Binary files /dev/null and b/src/content/docs/posesextension/img/002.png differ diff --git a/src/content/docs/posesextension/img/003.png b/src/content/docs/posesextension/img/003.png new file mode 100644 index 0000000..0c68c76 Binary files /dev/null and b/src/content/docs/posesextension/img/003.png differ diff --git a/src/content/docs/posesextension/img/004.png b/src/content/docs/posesextension/img/004.png new file mode 100644 index 0000000..071f073 Binary files /dev/null and b/src/content/docs/posesextension/img/004.png differ diff --git a/src/content/docs/posesextension/intro.mdx b/src/content/docs/posesextension/intro.mdx index b1e4590..6460b45 100644 --- a/src/content/docs/posesextension/intro.mdx +++ b/src/content/docs/posesextension/intro.mdx @@ -7,5 +7,8 @@ import { Aside } from '@astrojs/starlight/components'; *Locomotion-agnostic pose framework.* #### Welcome to the Poses Extension Docs +Poses Extension is a Locomotion-agnostic pose/emote framework prefilled with various poses made for photography. -## WIP +The following pages will tell you some things about the system. + + \ No newline at end of file diff --git a/src/content/docs/posesextension/setup.mdx b/src/content/docs/posesextension/setup.mdx index b1e4590..f014024 100644 --- a/src/content/docs/posesextension/setup.mdx +++ b/src/content/docs/posesextension/setup.mdx @@ -1,11 +1,28 @@ --- -title: BUDDYWORKS Poses Extension +title: BUDDYWORKS Poses Extension - Setup description: Locomotion-agnostic pose framework. --- import { Aside } from '@astrojs/starlight/components'; -*Locomotion-agnostic pose framework.* +### Setup -#### Welcome to the Poses Extension Docs +Setup is easy, just add the prefab to your avatar and you are ready to go! -## WIP +![Toolbar menu import.](./img/001.png) + + +### Which version to pick? +As you might have seen, there are two variants to pick: +- **Spawn Prefab... =** The default version of Poses Extension +- **Spawn Prefab... (GGL Experimental) =** A variant of Poses Extension for GoGo Loco + +To save parameter space in GoGo Loco setups, the GGL Experimental variant will make use of existing GGL parameters, specifically Go/Float and Go/VRCEmote. This makes Poses Extension free to use, but adds a breaking point whenever GoGo Loco does any major changes. + +Please assume that Poses Extension will only work with the latest version of GoGo Loco. Any other release MIGHT work, but is not supported. + + + +### And the other options? +You will see two additional options in the toolbar menu, these are just for convenience and allow you to spawn in the regular GoGo Loco prefabs. If GoGo Loco is not imported, these options will be greyed out. + +![Toolbar menu ggl option.](./img/002.png) \ No newline at end of file diff --git a/src/content/docs/posesextension/structure.mdx b/src/content/docs/posesextension/structure.mdx new file mode 100644 index 0000000..ddfec03 --- /dev/null +++ b/src/content/docs/posesextension/structure.mdx @@ -0,0 +1,27 @@ +--- +title: BUDDYWORKS Poses Extension - Structure +description: Locomotion-agnostic pose framework. +--- +import { Aside } from '@astrojs/starlight/components'; + +### Parameters + +##### Standalone +- **PE/Set [INT]:** Defines the currently picked pose set. (Like standing, sitting etc.) +- **PE/Float [Float]:** Used for pose selection and dance speed. +- **PE/Exit [Bool]:** *Unsynced* parameter used as condition placeholder for to-Exit transitions. + +##### GGL Variant +- **InStation [Bool]:** *Unsynced* Default Parameter used by GGL for conditional checks. +- **PE/Exit [Bool]:** *Unsynced* Parameter used as condition placeholder for to-Exit transitions. +- **PE/Active [Bool]:** *Unsynced* Local condition ensuring the support logic is only run for PE functions. +- **Go/Float [Float]:** Similiar to PE/Float, used for any radial selections by GGL. +- **Go/VRCEmote [INT]:** GGL parameter that does pretty much everything. PE uses some of its pose-space. + +### Action Layer + +- **BUDDYWORKS Poses Extension - Poses&Dances:** Main Layer for the pose and emote logic. +- **BUDDYWORKS Poses Extension - Support Logic:** Additional layer, currently used for the bi-directional free-rotation radial. + + + \ No newline at end of file