• Hi Guest!

    We have posted a new VaM2 dev log on Patreon, starting a monthly cadence of written progress updates between Beta releases. Highlights include the new Gizmos System, Selection Carousel, and Modes System with Context-Specific Editing. Beta1.2 is 15 of 21 items complete.

    Read the full post on Patreon, or follow progress on the public Trello roadmap.
Manual Force & Torque

Plugins + Scripts Manual Force & Torque

Download [<1 MB]

HelicalPink

New member
Joined
Oct 11, 2024
Messages
3
Reactions
9
HelicalPink submitted a new resource:

Manual Force & Torque - A plugin for applying Forces and/or Torques to person atom rigidbodies.

This plugin was made to allow fully manual control of Force and/or Torque on Person Atoms.

It is intended as a supporting tool for adding more variety and subtle motion to scenes, and works well together with plugins like TimeLine.

You can freely control when movement starts and returns, making it useful for adding detailed movement and fine adjustments when combined with body part controllers.

Force and Torque can be applied individually to each body part, and each part can be turned ON...

Read more about this resource...
 
Great idea of a plugin, however it doesn't work:
Code:
!> Compile of HelicalPink.ManualForce.1:/Custom/Scripts/HelicalPink/ManualForce/ManualForce.cs failed. Errors:
!> [CS1501]: No overload for method `CreateButton' takes `3' arguments in <Unknown> at [47, 17]
!> [CS]: Mono.CSharp.InternalErrorException: (23,30): HelicalPink.ManualForce.Init() ---> Mono.CSharp.FatalException: No overload for method `CreateButton' takes `3' arguments
  at Mono.CSharp.Report.Error (Int32 code, Location loc, System.String error) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Report.Error (Int32 code, Location loc, System.String format, System.String arg1, System.String arg2) [0x00000] in <filename unknown>:0
  at Mono.CSharp.OverloadResolver.ReportOverloadError (Mono.CSharp.ResolveContext rc, Mono.CSharp.MemberSpec best_candidate, IParametersMember pm, Mono.CSharp.Arguments args, Boolean params_expanded) [0x00000] in <filename unknown>:0
  at Mono.CSharp.OverloadResolver.ResolveMember[MethodSpec] (Mono.CSharp.ResolveContext rc, Mono.CSharp.Arguments& args) [0x00000] in <filename unknown>:0
  at Mono.CSharp.MethodGroupExpr.OverloadResolve (Mono.CSharp.ResolveContext ec, Mono.CSharp.Arguments& args, IErrorHandler cerrors, Restrictions restr) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Invocation.DoResolveOverload (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Invocation.DoResolveInvocation (Mono.CSharp.ResolveContext ec) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext rc) [0x00000] in <filename unknown>:0
  at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags flags) [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at Mono.CSharp.Method.Emit () [0x00000] in <filename unknown>:0
  at Mono.CSharp.TypeDefinition.Emit () [0x00000] in <filename unknown>:0
  at Mono.CSharp.ClassOrStruct.Emit () [0x00000] in <filename unknown>:0
  at Mono.CSharp.Class.Emit () [0x00000] in <filename unknown>:0
  at Mono.CSharp.TypeDefinition.EmitContainer () [0x00000] in <filename unknown>:0
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0
  at Mono.CSharp.NamespaceContainer.EmitContainer () [0x00000] in <filename unknown>:0
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0
  at Mono.CSharp.NamespaceContainer.EmitContainer () [0x00000] in <filename unknown>:0
  at Mono.CSharp.TypeContainer.EmitContainer () [0x00000] in <filename unknown>:0
  at Mono.CSharp.ModuleContainer.EmitContainer () [0x00000] in <filename unknown>:0
  at Mono.CSharp.AssemblyDefinition.Emit () [0x00000] in <filename unknown>:0
  at DynamicCSharp.Compiler.McsDriver.Compile (System.Reflection.Emit.AssemblyBuilder& assembly, System.AppDomain domain, Boolean generateInMemory) [0x00000] in <filename unknown>:0
  at DynamicCSharp.Compiler.McsCompiler.CompileFromSettings (Mono.CSharp.CompilerSettings settings, Boolean generateInMemory) [0x00000] in <filename unknown>:0  in  at [0, 0]
 
Also, looking at screenshots in the UI.. how do you actually control 0-1 force/torque? All I see is selection of body parts and settings force/torque target values.. there's no slider for movement, so how do you trigger it at all?
 
Been experimenting with your plugin and it works as I'd hoped. There's one thing I noticed that can be a bit dangerous though. If the forces are active when you open a menu, like the hub, or scene browser, that zeroes all the forces momentarily. But when you close the menu, they reactivate instantly, causing a violent jerk. In one case so far resulting in an explosion.
Not sure if this could be detected by the plugin and worked around somehow.
 

Similar threads

Back
Top Bottom