Code Monkey home page Code Monkey logo

oscmooth's Introduction

Creating avatars and software!

Who am I?

I am a 3D Character Artist and Software Engineer who is passionate about crafting immersive avatars and developing tools to make it happen!

I created the Unified Expressions face tracking standard to help solve the fragmented face tracking standardization and manage several projects in relation to face tracking.

I specialize in:

  • 2D/3D Character Art and Design
    • Blender
    • Substance Painter
    • Substance Designer
  • Software Design
    • C, C++, C#, Python, Rust, JavaScript, Kotlin

More

oscmooth's People

Contributors

adjerry91 avatar camsavis avatar farfelu avatar hchoki avatar inconsolablecellist avatar regzo2 avatar virtualmarten avatar yukihoaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

oscmooth's Issues

Save genetated blendtrees as .assets

Currently the blendtrees only exist within the animator, it would be nice if they were generated as dedicated assets.
It'd make it possible for users to merge this into pre-existing direct blendtree setups.

create licance

hey, doin some cool stuff here. would be great if you added a license so we can use/contribute to this.

Issue with Unity 2022

Hi, I just upgraded my project to the latest Unity 2022 and OSC Smooth seems to have stopped working. The proxied parameter still receives the changes but the smoothing doesn't work anymore

Is there any known fix please?

Can't smooth parameters with "/" in their name

For some "organisation" reason, I like to have my parameters organised in a hierarchy using "/" in their name, as it is allowed by Unity & VRChat.

However when I want to apply the smoothing to a parameter like that I'm getting below errors:

Parameter name in the below example have been replaced with HierarchyTop/HierarchySecond/Parameter

Parent directory must exist before creating asset at Assets/OSCmooth/Generated/Anims/Animator_96973eed6e3d8a44b85d192500d74ab5/HierarchyTop/HierarchySecond/Parameter-1Smoother_96973eed6e3d8a44b85d192500d74ab5.anim.
UnityEngine.StackTraceUtility:ExtractStackTrace ()
OSCTools.OSCmooth.Util.AnimUtil:CreateFloatSmootherAnimation (UnityEditor.Animations.AnimatorController,string,string,string,string,single,single,bool) (at Assets/OSCmooth/Editor/OSCmoothUtil.cs:222)
OSCTools.OSCmooth.Util.AnimUtil:CreateSmoothingBlendTree (UnityEditor.Animations.AnimatorController,UnityEditor.Animations.AnimatorStateMachine,single,string,bool,single,string,string,string,string,string) (at Assets/OSCmooth/Editor/OSCmoothUtil.cs:296)
OSCTools.OSCmooth.Animation.OSCmoothAnimationHandler:CreateSmoothAnimationLayer () (at Assets/OSCmooth/Editor/OSCmoothAnimationHandler.cs:125)
OSCTools.OSCmooth.OSCmoothWindow:DrawGUI () (at Assets/OSCmooth/Editor/OSCmoothWindow.cs:290)
OSCTools.OSCmooth.OSCmoothWindow:OnGUI () (at Assets/OSCmooth/Editor/OSCmoothWindow.cs:42)
UnityEngine.GUIUtility:ProcessEvent (int,intptr)
UnityException: Creating asset at path Assets/OSCmooth/Generated/Anims/Animator_96973eed6e3d8a44b85d192500d74ab5/HierarchyTop/HierarchySecond/Parameter-1Smoother_96973eed6e3d8a44b85d192500d74ab5.anim failed.
OSCTools.OSCmooth.Util.AnimUtil.CreateFloatSmootherAnimation (UnityEditor.Animations.AnimatorController animatorController, System.String paramName, System.String smoothSuffix, System.String proxyPrefix, System.String directory, System.Single initThreshold, System.Single finalThreshold, System.Boolean driveBase) (at Assets/OSCmooth/Editor/OSCmoothUtil.cs:222)
OSCTools.OSCmooth.Util.AnimUtil.CreateSmoothingBlendTree (UnityEditor.Animations.AnimatorController animatorController, UnityEditor.Animations.AnimatorStateMachine stateMachine, System.Single smoothness, System.String paramName, System.Boolean driveBase, System.Single range, System.String directory, System.String smoothnessPrefix, System.String smoothnessSuffix, System.String proxyPrefix, System.String proxySuffix) (at Assets/OSCmooth/Editor/OSCmoothUtil.cs:296)
OSCTools.OSCmooth.Animation.OSCmoothAnimationHandler.CreateSmoothAnimationLayer () (at Assets/OSCmooth/Editor/OSCmoothAnimationHandler.cs:125)
OSCTools.OSCmooth.OSCmoothWindow.DrawGUI () (at Assets/OSCmooth/Editor/OSCmoothWindow.cs:290)
OSCTools.OSCmooth.OSCmoothWindow.OnGUI () (at Assets/OSCmooth/Editor/OSCmoothWindow.cs:42)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <eae584ce26bc40229c1b1aa476bfa589>:0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at <a259d3c004024353a2c217da97495055>:0)
UnityEditor.HostView.Invoke (System.String methodName) (at <a259d3c004024353a2c217da97495055>:0)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <a259d3c004024353a2c217da97495055>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <a259d3c004024353a2c217da97495055>:0)
UnityEditor.DockArea.OldOnGUI () (at <a259d3c004024353a2c217da97495055>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.EventDispatcher.OpenGate () (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <b6a7e1825c0b45d3b0729282e86cc687>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <344226e341014466b33f0c0fa34fcef5>:0)

Frametime Detection and Implementation

Create a frame time detection system (preferably late/infrequent-update as to limit performance overhead) and implement it to drive the smoothing multiplier parameters. May also make it so that all animations consolidate to a single parameter to limit extra animation drivers.

Everything breaks if IsLocal already exists in the animator as a bool (rework)

If IsLocal is already used as a boolean in the controller, OSCmooth should not add it as an additional float parameter as the duplicate parameter breaks the controller. If the type must be a float, and the controller already contains it as a bool, OSCsmooth MUST not only update the type of the existing parameter, it must also walk the entire controller (including sub-state machines) updating the type of every transition condition using IsLocal to swap it from a boolean condition to a float condition.

Not Seeing FX layer

Hey! When I open the OSCmooth panel under tools and select FX in the drop down, it doesn't pull it up to select the parameters and everything. It just sees it blank. Same with Action Layer. It will only detect the Base Layer, it seems.

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.