wOS Animation Extension - Integrate animations on all player models seamlessly

Lately there have been a lot of coders, including myself, that have been making addons that require integrating animations for all player models to use. As it stands, integrating animations into all player models globally requires someone to $IncludeModel them into the default m/f/z_anm.mdl files. Due to many different people wanted to integrate different animations, this leads to a lot of overwriting and compatibility issues.

By creating this base I’m hoping to fix this problem. With this animation base, clients will be able to easily choose which animations they want integrated with their players actively, and allows modelers/developers to make extensions that don’t conflict with each other. Another big note is that the client will not have to restart the game anymore to have these integrations take effect. The only time they will have to restart is when initially downloading the addon. After that, all the extension slots are pre-included by the base and they can simply go through the workshop, download an extension, and have it take effect once it’s done downloading. Servers will be able to push their own extensions, and developers can update their extensions actively.

Developers/Modelers will have to compile their model into these extension slots. This will allow the system that I mentioned previously. There are 20 slots pre-included, and I have added my own official ones that won’t take up any slots. If someone would want their extension made official they just need to contact me and I’ll put it in.

Ironically yes, this is another m/f/z_anm.mdl recompilation, so it will have conflicts with previously integrated systems. If you want a particular animation set functioning on the base, post it here or message me on steam and I’ll have a look at what I can do. The developer will also be able to fix it themselves if they choose.

Information for Developers

If you’re going to make an extension, I recommend you compile your animations into a separate model and $IncludeModel it into a separately compiled extension. This’ll make it a lot easier for me to make it an official extension. Compiling the extension is extremely easy, with the QC following this format:



$modelname player/wiltos/anim_extension_modX.mdl // Where X is a number from 1 to 20
$IncludeModel "YOUR ANIMATION MODEL PATH HERE"


and an example QC here:



$modelname player/wiltos/anim_extension_mod5.mdl // The extension name
$IncludeModel "player/dod_player_shared.mdl" // Includes all shared DOD:S Player animations


Easy stuff and I’m sure if you’re making your own animations you probably know how to do this anyway.

Custom Hold Types

If you want to make your own hold types, create a file in


lua/wos/anim_extension/holdtypes

with the following format



local DATA = {}

DATA.Name = "Melee Combination" -- Overall name of the hold type
DATA.HoldType = "melee-combo" -- String used when defining within a SWEP
DATA.BaseHoldType = "melee2" -- The base hold type ( All non-modified ACT entries will be inherited from this )
DATA.Translations = {}

-- DATA.Translations[ ACT_MP_STAND_IDLE ]                    = 2680
-- DATA.Translations[ ACT_MP_WALK ]                        = 2683
-- DATA.Translations[ ACT_MP_RUN ]                            = 2685
DATA.Translations[ ACT_MP_CROUCH_IDLE ]                    = ACT_HL2MP_IDLE_CROUCH_KNIFE 
DATA.Translations[ ACT_MP_CROUCHWALK ]                    = ACT_HL2MP_WALK_CROUCH_KNIFE
-- DATA.Translations[ ACT_MP_ATTACK_STAND_PRIMARYFIRE ]    = 2688
DATA.Translations[ ACT_MP_ATTACK_CROUCH_PRIMARYFIRE ]    = ACT_HL2MP_GESTURE_RANGE_ATTACK_KNIFE 
-- DATA.Translations[ ACT_MP_RELOAD_STAND ]                = IdleActivity + 6
-- DATA.Translations[ ACT_MP_RELOAD_CROUCH ]                = IdleActivity + 6
-- DATA.Translations[ ACT_MP_JUMP ]                        = 3160
-- DATA.Translations[ ACT_MP_SWIM ]                        = IdleActivity + 9
-- DATA.Translations[ ACT_LAND ]                            = ACT_LAND

wOS.AnimExtension:RegisterHoldtype( DATA )


You can set up your ACT translations in the following formats:



DATA.Translations[ ACT_MP_ATTACK_STAND_PRIMARYFIRE ]    = ACT_HL2MP_GESTURE_RANGE_ATTACK_KNIFE  -- ACT ENUM
DATA.Translations[ ACT_MP_ATTACK_STAND_PRIMARYFIRE ]    = 1132 -- ACT ID number
DATA.Translations[ ACT_MP_ATTACK_STAND_PRIMARYFIRE ]    = "wos_judge_attack" -- Sequence Name


You can set up an ACT to randomly cycle through animations by doing the following:



DATA.Translations[ ACT_MP_ATTACK_STAND_PRIMARYFIRE ]    = {  "wos_sequencename1", "wos_sequencename2", ACT_EXAMPLE, 1142 } -- Can be  done in any combination of the previously mentioned formats


The existence of a holdtype can be checked by searching this table:


wOS.AnimExtension.HoldTypes

and it will return all data in the format of the DATA table I put at first.

Information for Clients

Once you install the animation base you will need to let it download and restart your game. Once you do that, you should be able to open the context menu and see a new widget “wiltOS Viewer”. I’ve included this so you can check which animations are being applied to your model and find the sequence names.

Download

You can get it on the workshop here: http://steamcommunity.com/sharedfiles/filedetails/?id=757604550

Collection of official extensions are here: http://steamcommunity.com/workshop/filedetails/?id=848978803

I’ll probably make a collection of unofficial extensions as well, but since we don’t have any yet, can’t work with that :v:
**DISCLAIMER: **I’ve personally not seen how many sequences are allowed on a model before the game panics. If anyone has any information on that it’d be greatly appreciated.

I also incorrectly tagged this as a C++ module. This is not one.

great job with the framework! extremely useful for those who’re dealing with multiple animations

i don’t know much about modeling or animation compilation, but would it be possible from an engine standpoint to somehow expose $includemodel into lua? [sp]that’s probably not how it works and feel free to tell me why i’m wrong[/sp] surely if it is possible that would make things so much easier than having to deal with workarounds such as this.

I’m not really sure, but it has been requested before. I’d imagine it’s just difficult to work with, I can’t seem to find a source to it either.

If there was at least a source it’d be possible to try and get a module going. So far the only lead is the appendanimations function but that was mentioned a couple of years ago and didn’t go anywhere.

Does it only work on ValveBiped bones?

As far as I know yes. I haven’t been exposed to any non-standard bone structure, but if you have a model and it doesn’t work just link it here and I’ll see what I can do

I’ll look into setting up the Prone Mod to work with this, thanks!

I have an official extension pre-included for you. Just have Stiffy compile the extension as this:



$modelname player/wiltos/anim_extension_prone.mdl


I’ll add the workshop file you guys upload to the collection

Any news on this? An integration of Prone Mod to this animation system would be great!

Bunch of exams plus a fever strong enough to murder a family of six is delaying me, likely this weekend though.

If we can make this animations works in gmod, there will be damn fun gmod mods

I downloaded it right after this post were made and the animation is pretty good :v:

Dolphin dive to the end of time.

aww… The Double Action Boogaloo is not using Valve Biped, It’s using “DABBiped”… aww…

[editline]27th February 2017[/editline]

someone said diving?

Now that is beautiful

I was already beginning to do some The Specialists addon, completely forgot about Double Action

Collab? :v:

[editline]26th February 2017[/editline]

I’ll make an extension for double action. Message me when you’re on steam if you need help bringing it over

Now it’s almost done but needs more works.
Also, Action Half-Life 2’s animations are ported over to make this addon.

Updated the base to include the Action Half-life extension

Also added a way for developers to check if a particular extension is installed.



wOS.AnimExtension.Mounted[ "KEY HERE" ] --Checks to see if this particular extension is mounted


More information on the key register is on the workshop page of that extension.

I hate to be that guy, but how would I go about using these animations? I was trying to figure out how I might use them for my weapon base but I got pretty lost. I’m kind of getting back into working on GMod scripts.

Most of the use of these animations are by running the sequences. So you’ll want to be using the

GM:CalcMainActivity function / hook.

I’ve included an anim viewer to support more than 2000 listed sequences, so you can browse that with the menu ( it’ll be the wiltOS Viewer as a context widget ) and get the sequence names.

From there it’s up to you how you use it. I’ve made a sword system, rolling, now rebel’s made diving, just have fun with it!

There is a slight problem with Age of Chivalry as some sequences overwrite them. I think the physgun animations break.

Actually some of the ACTs got retained in converting all the stuff over so you can have a look at them. I’m not sure how to list ACTs though, I’ll put out an update once I find out.

Thanks for the write up! I’m already excited to get into animating and having alternate sped up or slowed down animations at my disposal.

wOS, makes you able to make cool stuffs
Even it allows you to make stylish shooting gallery