Giter Site home page Giter Site logo

aasemulator's Introduction

Hi there ๐Ÿ‘‹

I made Garrys Mod addons 24/7 until I met some robonekos in VRChat.

I made VRChat content 24/7 until a certain non-epic e(ac)vent.

I currently work on ChilloutVR, mods & related unity scripts in my freetime.

ChilloutVR Unity Scripts

Project Issues
AASEmulator GitHub issues
AvatarPointerGenerator GitHub issues
CVR.BaseAnimatorPatch GitHub issues
SimpleAAS GitHub issues
QuickMaterialSwap GitHub issues

ChilloutVR Mods

I have developed various mods for ChilloutVR, all conveniently available in my big mod repository.

Repository Commits Issues Current Mods
NAK_CVR_Mods GitHub commit activity GitHub issues 26

Explore the repository to find exciting mods and enhancements for your ChilloutVR experience!

the furry pfp is a coding buff... probably

1153175003181875212

aasemulator's People

Contributors

notakidonsteam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

aasemulator's Issues

Add CVRParameterStream emulating.

CVRParameterStream is used to access a bunch of things.
InFBT, Time, battery levels, voice level, world transfer progress, ect being common use cases.

It is pretty much required for avatars. I am unsure how to approach this, as it will need some values scene-wide, player-specific, and avatar specific. Structure is not something I am good at, so initial implementation may get messy...

Add note about animation replacement.

ChilloutVR will replace animations on an avatar by name on initialization. This is to fix animations on older avatars using old old CCK versions.

This replacement system is garbage though as using name to replace causes headache for users to debug.

Add initialization on select.

It would be nice for bigger projects if not all avatars were immediately set up with AASEmulatorRuntime. Using the custom Editor GUI OnEnabled callback I can manually initialize the runtime on first select, which may be better than adding and initializing for all avatars in all scenes at once.

Implement AAS syncing shit.

AAS Syncing is funky :kzDanceVibeHappy:

It'll get the list from the animator. Anything without the # prefix is considered a synced parameter. It will sync over the network as the type it is in the animator, not what is selected in your AAS list. Every 0.1s a check is done locally to check a flag and see if anything changed/is in need of syncing, and every 2s the flag to trigger AAS sync is set to true anyways likely as redundancy.

When syncing, it does not use the current value in the animator, but instead, what is cached in the local AAS buffers. This means a parameter that does not have # and is not changed in a way that applies to the buffers won't sync changes to remotes. CVRAnimatorDriver, CVRTriggers, the AAS menus, etc. will set the animator parameter as well as write to the buffers for the next sync.

This means a parameter that is animated via animation clip that does not have the local # prefix won't sync to remotes, despite being a networked parameter, as it wasn't set in a way that also set the buffered values for syncing. There is also a check to see if any parameter is controlled by a curve anyways before applying, so should still be ignored, but I have not tested it.

When AAS syncing occurs, it will sync all parameters- not just the ones that changed. As stated above, the syncing will only occur if a parameter was changed or when the changed flag is forced set every 2s. You can write changes to sync every 0.1s but is guaranteed to happen every 2.1s.

Movement Behaviour Changes

When entering Sitting, crouch, prone, and flight are forced off.
When entering Flight, crouch, prone is forced off.

Weirdly enough you can still set the Crouching and Prone bools while in these two modes, but they are forced off when entering them.

Add Upright to AASEmulatorRuntime

In HalfBody, the Crouching and Prone bools are driven by an internal Upright value.
The defaults for transitioning is 0.75% for Crouching and 0.40% for Prone.

Make adding AASEmulator from inspector automatically configure it.

When AASEmulator component is added to a gameobject in the inspector, we should maybe automatically configure that object the same way the Enable AAS Emulator menu option does.

This would need testing though to ensure it does not break anything. Maybe when attempting to add, instantly remove and set up automatically, same way as menu dropdown?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.