Jump to content

[1.6] RJW Animation Framework


c0ffeeeee

Recommended Posts

Posted
2 hours ago, pussy_destroyer203 said:

Hey, I happen to try to download all packs regardless of whether I'm using them or not in the installer thingy that rjw provides, now, here is the thing, i got a lot of errors particularly seems to be affecting bestiality animations i think? specially since the errors disappeared after disabling Canines Animations and RJWAnimAddons-SeXtra2

 

Edit:

After downloading all pack that were available for 1.5 and edited them as the post above said, I realized that I got a lot of errors in other packs too, for example,

abscon-classic-animation-pack gave me tons of parse failure

and other animations pack gave me lots of Could not resolve cross-reference to Verse.Animation named X (wanter=animationDefs)

other erros that i got were stuff like

XML error: <workerType>Rimworld_Animations.PawnRenderNodeWorker_GraphicVariants</workerType> doesn't correspond to any field in type PawnRenderNodeProperties_GraphicVariants.

 

After all of this, my question is, it is safe to just ignore all of this errors? haven't tried it, I'm just going to sleep for today

I think I might've made a mistake with the above search and replaces, should have only been for animationdefs (the stage files), not the properties or any other file. Also, slight change

  • Ctrl + F Search and replace <animationParts> to <keyframeParts>

to
 

  • Ctrl + F Search and replace animationParts to keyframeParts

 

so that you actually get the closing tags

Posted

Also there's going to be some changes to the groupanimationdef structure, not as easy to solve with a ctrl+f search and will probably require modders to change things themselves, so watch out for that. It'll be a good update, this should make group anims fire more often and will give you more info on why certain animations play

Posted (edited)

For the three other people running RimWorld on Linux, you can update all the animations in a mod at once with the following grep / sed command lines. Only took 2 minutes to update all the v1.5 animation packs and they're now working pretty well in v1.6. Thanks for posting instructions on how to update the XML c0ffeeeee 👍

 

cd {base folder of mod}
grep -rlZ 'animationParts' ./ | xargs -0 sed -i 's/animationParts/keyframeParts/g'
grep -rlZ '<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>' ./ | xargs -0 sed -i 's/<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended<\/workerClass>/<workerType>Rimworld_Animations.AnimationWorker_KeyframesExtended<\/workerType>/g'

 

(obviously make a backup copy of the mod folder first! 🙂)

Edited by dr3r3r34
Added suggestion to backup first
Posted
On 9/7/2025 at 6:23 PM, dr3r3r34 said:

For the three other people running RimWorld on Linux, you can update all the animations in a mod at once with the following grep / sed command lines. Only took 2 minutes to update all the v1.5 animation packs and they're now working pretty well in v1.6. Thanks for posting instructions on how to update the XML c0ffeeeee 👍

 

cd {base folder of mod}
grep -rlZ 'animationParts' ./ | xargs -0 sed -i 's/animationParts/keyframeParts/g'
grep -rlZ '<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended</workerClass>' ./ | xargs -0 sed -i 's/<workerClass>Rimworld_Animations.AnimationWorker_KeyframesExtended<\/workerClass>/<workerType>Rimworld_Animations.AnimationWorker_KeyframesExtended<\/workerType>/g'

 

(obviously make a backup copy of the mod folder first! 🙂)


Ha ha, I'm on debian but didn't think to do it this way, I'm a noob 😛

Also, this works for the Anims 2.1 changes, but 2.2 changes (currently in the 1.6 branch on Gitgud) will need other changes to the defs too, that aren't as straightforward to do with grep

I'm pretty sure you can't... but then again, I'm a noob...

Posted (edited)

@c0ffeeeee: I do not want to impose, but, you know, it would be really nice, as you currently make wide-ranging changes to the mod, if you could find the time to process your merge requests. Some are probably unnecessary by now and could be rejected. Some are likely still useful and merging them _before_ you change the infrastructure underneath them would save the contributors and yourself time and make it less likely to introduce errors through porting.

 

At least one (of mine) fixes an issue somewhat unelegantly and asks for review and feedback, to create a better fix. - Even those are valuable, as - if nothing else - they show you the issues found, so you have to not find them yourself.

 

(... You also have a Merge Request by... yourself? Dunno what to make of that. I looked into it when I worked on !11 but could not make heads or tails of it - in either case, like all other Merge Requests it should be treated in exactly one of three ways:

  • be merged
  • be rejected
  • receive change requests by the maintainer (that's you)

)

 

It would be really nice.

Edited by Zsar
Posted (edited)
4 hours ago, Zsar said:

@c0ffeeeee: I do not want to impose, but, you know, it would be really nice, as you currently make wide-ranging changes to the mod, if you could find the time to process your merge requests. Some are probably unnecessary by now and could be rejected. Some are likely still useful and merging them _before_ you change the infrastructure underneath them would save the contributors and yourself time and make it less likely to introduce errors through porting.

 

At least one (of mine) fixes an issue somewhat unelegantly and asks for review and feedback, to create a better fix. - Even those are valuable, as - if nothing else - they show you the issues found, so you have to not find them yourself.

 

(... You also have a Merge Request by... yourself? Dunno what to make of that. I looked into it when I worked on !11 but could not make heads or tails of it - in either case, like all other Merge Requests it should be treated in exactly one of three ways:

  • be merged
  • be rejected
  • receive change requests by the maintainer (that's you)

)

 

It would be really nice.

Sure, I can take a look! I know, I'm a lazy maintainer, I really ought to look at my PRs more often...

If you have any PRs or anything you want me to take a look at, pls ping me on the rjw discord ^^

Edit: I just now made a branch for Animations 1.0 stuff, under branch 1.4. Pls make all pull requests for Anims 1.0 to that branch

Edited by c0ffeeeee
Posted
On 9/10/2025 at 1:57 AM, PJ004 said:

Can we pleas get the 1.5 version again? also the link for the 1.4 version leads the the download for the 1.6 version.

I want to apologize becurse i apperently i didnt know how to work with GidGud. for anyone who is wondering and is looking for the 1.5 version, if you click on "Master" right under the title "RJW-Animations" you can select the 1.5 version. (also all the other versions)

Posted

there is no compatibility with the nl facial animation mod, it causes almost all modded xenotypes to have their heads to be layered under their torso's

Posted

I still can't seem to figure out if this mod actually requires Hugslib? I've been using it WITHOUT it for awhile, which is obviously ill advised, but there hasn't been any problems..?

Posted
2 hours ago, HugzSX said:

I still can't seem to figure out if this mod actually requires Hugslib? I've been using it WITHOUT it for awhile, which is obviously ill advised, but there hasn't been any problems..?

You don't need hugslib anymore, I'm going to remove it for the next update

Posted
14 hours ago, c0ffeeeee said:

You don't need hugslib anymore, I'm going to remove it for the next update

Ok! Thank you for letting me know, I'm glad I wasn't crazy in disabling it. Love ALL your work!

Posted

Hey, I have no idea if this is the right place, but I keep getting this error. can anyone help? please and thanks!

 

Tried to use an uninitialized DefOf of type DMS_DefOf. DefOfs are initialized right after all defs all loaded. Uninitialized DefOfs will return only nulls. (hint: don't use DefOfs as default field values in Defs, try to resolve them in ResolveReferences() instead)
XML error: <workerType>Rimworld_Animations.PawnRenderNodeWorker_GraphicVariants</workerType> doesn't correspond to any field in type PawnRenderNodeProperties_GraphicVariants. Context: <animPropProperties Class="Rimworld_Animations.PawnRenderNodeProperties_GraphicVariants"><debugLabel>AnimalCumSpill</debugLabel><nodeClass>Rimworld_Animations.PawnRenderNode_GraphicVariants</nodeClass><workerType>Rimworld_Animations.PawnRenderNodeWorker_GraphicVariants</workerType><tagDef>RenderNodeTag_AnimalCumSpill</tagDef><absoluteTransform>True</absoluteTransform><parentTagDef>Root</parentTagDef><texPath>AnimationProps/Cum/Spill5</texPath><overlayLayer>Head</overlayLayer><baseLayer>80</baseLayer></animPropProperties>

Posted

Having trouble while a pawn is trying to rape CP

JobDriver threw exception in toil unnamed's initAction for pawn Toni driver=JobDriver_RapeComfortPawn (toilIndex=3) driver.job=(RapeComfortPawn (Job_2467292) A = Thing_Human181924 Giver = JobGiver_ComfortPrisonerRape [workGiverDef: null])
System.NullReferenceException: Object reference not set to an instance of an object
[Ref 717336F7]
  at Rimworld_Animations.GroupAnimationContext.FindAnyWorkingSet (System.Collections.Generic.List`1[T] actors) [0x00007] in <d172dcbb9c2f40ae86bd9f10f70a130b>:0 
  at Rimworld_Animations.GroupAnimationDef.CanAnimationBeUsed (System.Collections.Generic.List`1[T] actors, System.Collections.Generic.List`1[Verse.Pawn]& bestPermutation, System.Int32& highestPriority) [0x00056] in <d172dcbb9c2f40ae86bd9f10f70a130b>:0 
  at Rimworld_Animations.AnimationUtility.FindGroupAnimation (System.Collections.Generic.List`1[T] participants, System.Collections.Generic.List`1[Verse.Pawn]& pawnOrder) [0x0001e] in <d172dcbb9c2f40ae86bd9f10f70a130b>:0 
  at Rimworld_Animations.HarmonyPatch_JobDriver_SexBaseInitiator_Start.Postfix (rjw.JobDriver_SexBaseInitiator& __instance) [0x00115] in <d172dcbb9c2f40ae86bd9f10f70a130b>:0 
  at rjw.JobDriver_SexBaseInitiator.Start () [0x0030e] in <b83521ca65fa481e860c4308799e5105>:0 
    - POSTFIX rjwanim: Void Rimworld_Animations.HarmonyPatch_JobDriver_SexBaseInitiator_Start:Postfix(JobDriver_SexBaseInitiator& __instance)
    - POSTFIX RJW_Sexperience: Void RJWSexperience.RJW_Patch_VirginityRemover:Postfix(JobDriver_SexBaseInitiator __instance)
  at rjw.JobDriver_RapeComfortPawn+<>c__DisplayClass0_0.<MakeNewToils>b__4 () [0x00030] in /builds/amevarashi/rjw/1.6/Source/JobDrivers/JobDriver_RapeComfortPawn.cs:55 
  at Verse.AI.JobDriver.TryActuallyStartNextToil () [0x001b0] in <24d25868955f4df08b02c73b55f389fe>:0 
UnityEngine.StackTraceUtility:ExtractStackTrace ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Log.Error_Patch1 (string)
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.JobUtility.TryStartErrorRecoverJob_Patch1 (Verse.Pawn,string,System.Exception,Verse.AI.JobDriver)
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
Verse.AI.JobDriver:TryActuallyStartNextToil ()
Verse.AI.JobDriver:ReadyForNextToil ()
Verse.AI.JobDriver:Notify_PatherArrived ()
Verse.AI.Pawn_PathFollower:PatherArrived ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.AI.Pawn_PathFollower.TryEnterNextPathCell_Patch1 (Verse.AI.Pawn_PathFollower)
Verse.AI.Pawn_PathFollower:PatherTick ()
Verse.Pawn:Tick ()
Verse.Thing:DoTick ()
Verse.TickList:Tick ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.TickManager.DoSingleTick_Patch1 (Verse.TickManager)
Verse.TickManager:TickManagerUpdate ()
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition:Verse.Game.UpdatePlay_Patch1 (Verse.Game)
Verse.Root_Play:Update ()
 

Posted
16 minutes ago, Jfeyn said:

How do you download this?
The gitgud link appears to just have the uncompiled source files.

 

Click the blue "code" button on the top right and then click the "zip" option in the pop-up to download the zip file.

Unzip the file, then put that unzipped folder into your mods folder on Rimword.

  • 2 weeks later...
Posted

Hey, how do you actually import additional animations to the framework? I'm using libidinous loader and it just puts the animations in the load order beneath this framework, but it doesn't seem to actually use those animations in gameplay. Am I doing something wrong? Do I have to put them in a mod folder I just missed? Thanks.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...