Jump to content

[Project Zomboid] ZomboWin - A ZomboLewd Framework mod


Recommended Posts

Posted
37 minutes ago, heavensblood97 said:

I've got a potentially dumb question; how do you stop the zombies from just killing you when they catch you? 

I've tried a couple characters with this mod now, playing with harder settings so there's a chance I get caught out. Every time i've been swarmed or whatever else, they've just mauled me to death without assaulting me, which defeats the point a little bit. Am I missing something?

I dont really got your question, i mean, now u have a trait (and an option in settings) called "it follows", that u get killed after they fuck you once, if not they will keep doing it over and over again till you die from pain or sickness, it depends on your character traits 🤗

But if you mean that they dont fuck you and just bite you till death, maybe you have installed correctly the "ZomboWinDefeat"? 🤔

Posted
45 minutes ago, Yonchi said:

I dont really got your question, i mean, now u have a trait (and an option in settings) called "it follows", that u get killed after they fuck you once, if not they will keep doing it over and over again till you die from pain or sickness, it depends on your character traits 🤗

But if you mean that they dont fuck you and just bite you till death, maybe you have installed correctly the "ZomboWinDefeat"? 🤔


Yeah I know about the trait- what happens is the stripping works correctly, and then when I should be being assaulted, all the other zombies just damage me and kill me instead. I've seen the animation start a few times, but it never gets more than a few frames in before an attack from another zombie interrupts it 

Posted
1 hour ago, heavensblood97 said:


Yeah I know about the trait- what happens is the stripping works correctly, and then when I should be being assaulted, all the other zombies just damage me and kill me instead. I've seen the animation start a few times, but it never gets more than a few frames in before an attack from another zombie interrupts it 

Weird, let me give you my ZomboWinDefeat to see if it gets fixed ☺️

ZomboWinDefeat.rar

Posted
15 minutes ago, Yonchi said:

Weird, let me give you my ZomboWinDefeat to see if it gets fixed ☺️

ZomboWinDefeat.rar 1.38 MB · 0 downloads


I'll try yours anyway, but in the meantime I think I figured out what the issue is, at least partially; female zombies can't initiate the assault (I missed that part originally), so they're the ones who break it up. It seems to work if there's only a few zombies but if I get stuck in a grab chain, they kill me. 

Regardless it seems like something I can fix with the right option combo or mods, so thank you for your help

Posted
2 hours ago, heavensblood97 said:


I'll try yours anyway, but in the meantime I think I figured out what the issue is, at least partially; female zombies can't initiate the assault (I missed that part originally), so they're the ones who break it up. It seems to work if there's only a few zombies but if I get stuck in a grab chain, they kill me. 

Regardless it seems like something I can fix with the right option combo or mods, so thank you for your help


I recommend installing ZOMBORG from the Steam Workshop which will let you choose which gender all zombies spawn as, and playing with fewer but tougher/faster zombies

Posted
On 8/29/2024 at 9:20 PM, AlexTheMan21 said:

I before had a whole animation group just looking into this and our result was basically base game java code had some limiter of some sort but I can look into your specific case when I got time to see if it's the same or not 

The lifestyle mod has very interesting animations that I haven't seen in other mods, maybe it's possible since those who created lifestyle have managed to make great and well-made animations, if they can, you can guys you're great lol 😄

Posted (edited)

For the animation problems you're having with bones, it's a main asset with the game. If you try to change the number of bones of an already defined asset, youre likely going to get problems everywhere that original asset is called. For modding, its easy to make things based on the provided limitations but to actually change the main structure is pretty troublesome.

 

Moreso with the new build coming, the whole animation system is also getting a bit of an upgrade that will likely solve that issue, so there's not much need to worry about it for now till we see what can be done.

 

You'll be able to create animations using multiple dummies in a single file in the near future at the very least.

 

*the male penis model is also just currently a remodel of the front dress bone and is a cause for many smaller issues when applying animations back and forth.

 

**to answer your question ultimately, wait for the next build. You'll be able to utilize multiple dummies(defined bone sets) in a single file, you won't be able to do that with the current framework. It would be much easier to add a third animation as a possibility by undefining or unlimiting the male/female checks in zombowins code itself. Then you can assign the third animation to an additional dummy model by checking to see if a zombie is in a certain radius when you're initially grabbed.

Edited by twentytwoturtles
More details
Posted

To create a three way scenario

 

Start by creating a new value similar to the male/female values used by both the animation config and the dummy model spawner. Then to check it works, force the dummy handler to automatically spawn an additional model and assign the new value to it directly. then create a new animation config with the normal female and male parts but also add your new value as a part to play any random animation. Also remove all the other config files so only the new one will play. This should all work considering all zombowin boils down to is syncing 2 independent animations together, which means you just need to create more dummies with appropriate values to be synced together.

 

Once the new value you made works in game and plays an animation in sync with your character and the original dummy, then you simply add a check at the point the character is grabbed to either turn on your new value or to keep it off. Then also add a check at the zombie spawner to determine how many are spawned. Lastly add a check to the animation config files based on your value using the already existing tag system.

 

For the gender aspect, it would be easiest to have both dummy models spawn the same. It's tedious work but easily doable for anyone. The hardest part will be how you determine whether your new value is on or off. There's probably some zombie in certain radius logic you could use.

Posted

speaking of female zombies is it on the table to have them as a defeat option

first think i thought about when the new grapple system was announced was "damn...when we getting jumpscare reach arounds?"

Posted

yo guys when i use the mod and choose female gender game turns the menu black and when i load in the game evrything is pretty much invis any idea why?

Posted
19 minutes ago, g40df said:

yo guys when i use the mod and choose female gender game turns the menu black and when i load in the game evrything is pretty much invis any idea why?

Wdym? can u upload an image of it also with your mods using? 🤔

Posted

in game everything is invis or just turns pitch black and in menu when switching to female makes the whole screen black 

Posted (edited)
10 hours ago, twentytwoturtles said:

Moreso with the new build coming, the whole animation system is also getting a bit of an upgrade that will likely solve that issue, so there's not much need to worry about it for now till we see what can be done.

 

You'll be able to create animations using multiple dummies in a single file in the near future at the very least.

 

10 hours ago, twentytwoturtles said:

**to answer your question ultimately, wait for the next build. You'll be able to utilize multiple dummies(defined bone sets) in a single file, you won't be able to do that with the current framework.

And huge thanks for these details and explanations. 🤩

 

As I am stubborn I tried another approach this morning before reading your message.

PS: this time it was to add Bones to the buttocks, breasts, throat and one last one to the belly.


I confirm that the 'out of bounds for length' appears as soon as we try to create a new Bone or even just move too far from its point of origin a Bone already present in the base model provided with the game.
It is indeed the asset that blocks any attempt, and, as we are very close to the release of the B42, personally I give up and wait to see how we will be able to set this up with the new system.
I spent, in total, 6 days on it : it is currently impossible.

Period.

 

Once again : thanks for your clarification. 🫡

Edited by BlaBla012345
Posted
14 hours ago, g40df said:

in game everything is invis or just turns pitch black and in menu when switching to female makes the whole screen black 

Try and disable "improved hair menu" I had the same issue when selecting females until I disabled it.

Posted (edited)

@Korpion

Thanks for the bug report, I will look into that!

 

@g40df

There could be multiple reasons, you have to run ZomboWin in solo player and not boot up a server. If you use cheatmenu or debug menu and have your player invisible or ghost mode, they'll turn invisible during an animation. Some mods also conflicts with ZomboWin too so try it wthout other mods. Hope this helps somewhat!

 

@twentytwoturtles

You came and dropped some bomb animations and disappeared lol I'm glad you're still here!

 

@HatedReaper

Here is the unofficial, official NPC mod that I do all my NPC testing on, have fun! :)
https://steamcommunity.com/sharedfiles/filedetails/?id=3036260551
 

@BlaBla012345

I am excited for your 3some animations!!! Thank you for the predefeat animations! They look great and animates buttery smooth! Nice.

 

@Yonchi

Thanks for being tech support! :) 

Edited by SolarEdge
Posted

no like as soon as i click start boom character is invis and the menu glitch was fixed now it just my persons invis on start

Posted

Does anyone know a mod that prevents zombie decay? or keeps them fresh looking? as in my game its getting to the point where the zombies themselves are not lookin so good

Also a side thought but I think a patch for anthro surviors/zeds would be great personally

Posted (edited)

My friends and I have found  an error in the latest version (1.24).
If the player doesn't move the moment of defeating by zombies, then action is canceled immediately. (Added error in version 1.24)
Also, the 'PACIFY' trait does not apply after  defeated by a zombie. (Added error in version 1.23 and later)
if you can fix it, Please help Us!
Thank you for reading it.
also Thanks a lot if it can be fixed. :)

Edited by Nowsad
Posted
On 8/29/2024 at 5:43 PM, Yonchi said:

He means with conditionals, like when the player is in x condition the animation is: X 😜

But now that i think, there is a mod that changes the animation if your hp is below some % 🤔
@AlexTheMan21do your magic with this plsss 🥺
https://steamcommunity.com/sharedfiles/filedetails/?id=3265507347&searchtext=crawl

have taken a quick peek into this mod and really cant find anything that stands out to much but ordinary action animation in the code so personally confused how it can even move around knocked down

Posted
On 8/29/2024 at 11:47 PM, BlaBla012345 said:

Warning : this is going to be a long post, I will put spoiler tags so as not to clutter the discussion thread. 🙂

 

I think I found a loophole to display animations containing more than 2 individuals.

I just spent 5 days in a row and I need help. 🙏

I call on our coder friends @AlexTheMan21 @SolarEdge @Zikhad @weirn and all those I don't know.

 

I will first write what I need and then I will go into details about why.

 

I need to know how the game manages the information of the armature of a model, and especially its bones.
I need to know why the game refuses to display a model containing an armature with a greater number of bones than the original model file.

 

 

Details :
 

  Hide contents


Basically an animation is a file that tells the game where and when to place a particular bone of a model.

 

A model is made up of 3 things :

  1. a 3d Body
  2. an armature, the 'skeleton' with its bones
  3. a texture

 

The game allows you to display a model with any number of Bodies anywhere.


Normally the guys at Indie Stone have created character models with a single body : typically our character or a zombie.


But nothing prevents you from creating a model that displays a body AND another body a little further next to the first.

 

If you follow me the trick lies here : display a sort of 'multi-model'.

 

Well :

  • The 3D body I know how to do = we forget
  • The texture on the second Body I know how to do = we forget
  • Here we focus on the armature : the bones.

A model can only have one armature, but nothing prevents this armature from being separated = think of it as your left arm and your right arm : you can move one and make another movement with the other and the same for your hands.
It's independent.


Create a second armature I know how to do AND attach the second armature to the second body I know how to do too.

 

A model can ONLY be displayed if it has ONE Body and ONE armature.

So :
I also know how to reduce the 2 armatures into one and the same for the bodies = we have again a model with a single body and a single armature = GREAT we're good, right?!
Well no, we're not good, the problem :


The game categorically refuses to display an armature stuck on a second body even if the model actually only has one armature and one body (they are duplicated but I 'glued' them together before exporting).
More precisely, the game clearly does not understand why there are additional bones. It does display something but it's mush.


I'm pasting here the error code provided by the game in this case :

ERROR: General     , 1724963861801> ExceptionLogger.logException> Exception thrown java.lang.ArrayIndexOutOfBoundsException: Index 90 out of bounds for length 60 at AnimationTrack.get line:113.
ERROR: General     , 1724963861801> DebugLogStream.printException> Stack trace:
java.lang.ArrayIndexOutOfBoundsException: Index 90 out of bounds for length 60
	at zombie.core.skinnedmodel.animation.AnimationTrack.get(AnimationTrack.java:113)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.getTrackTransform(AnimationPlayer.java:1389)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateBoneAnimationTransform_Internal(AnimationPlayer.java:1313)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateBoneAnimationTransform(AnimationPlayer.java:1253)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateMultiTrackBoneTransforms_DeferredMovementOnly(AnimationPlayer.java:1471)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateAnimation_NonVisualOnly(AnimationPlayer.java:584)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.updateInternal(AnimationPlayer.java:482)
	at zombie.GameProfiler.invokeAndMeasure(GameProfiler.java:182)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.Update(AnimationPlayer.java:467)
	at zombie.core.skinnedmodel.animation.AnimationPlayer.Update(AnimationPlayer.java:461)
	at zombie.characters.IsoGameCharacter.postUpdateInternal(IsoGameCharacter.java:12165)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.characters.IsoGameCharacter.postupdate(IsoGameCharacter.java:12063)
	at zombie.characters.IsoZombie.postUpdateInternal(IsoZombie.java:2112)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.characters.IsoZombie.postupdate(IsoZombie.java:2104)
	at zombie.MovingObjectUpdateSchedulerUpdateBucket.postupdate(MovingObjectUpdateSchedulerUpdateBucket.java:97)
	at zombie.MovingObjectUpdateScheduler.postupdate(MovingObjectUpdateScheduler.java:185)
	at zombie.CollisionManager.resolveContactsInternal(CollisionManager.java:411)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.CollisionManager.ResolveContacts(CollisionManager.java:236)
	at zombie.iso.IsoWorld.updateInternal(IsoWorld.java:3502)
	at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
	at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
	at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
	at zombie.util.Lambda.capture(Lambda.java:130)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
	at zombie.iso.IsoWorld.update(IsoWorld.java:3427)
	at zombie.gameStates.IngameState.updateInternal(IngameState.java:1617)
	at zombie.gameStates.IngameState.update(IngameState.java:1333)
	at zombie.gameStates.GameStateMachine.update(GameStateMachine.java:101)
	at zombie.GameWindow.logic(GameWindow.java:298)
	at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
	at zombie.GameWindow.frameStep(GameWindow.java:765)
	at zombie.GameWindow.run_ez(GameWindow.java:681)
	at zombie.GameWindow.mainThread(GameWindow.java:495)
	at java.base/java.lang.Thread.run(Unknown Source)

 

This may give you a starting point to find which file manages the attribution or contains the 'list' of bones of a model.

 

Because I came to the conclusion that if we can modify a piece of code controlling the management of bones of a model we could display the 2 bodies each having their own bones and being able to be differently animated WITHOUT adding anything else in the ZomboWin code.

 

I am sure that we are very close to the goal but I am stuck on this management of the game of bones of a model.

 

If someone has a genius idea, I am listening with joy. 🫡

 

Edit :

I add here the multi-model mod.
This is the best result I can get so far.

ZomboWin Multi Model.zip 1.47 MB · 3 downloads

Warning : This is a broken mod, it displays an error code.
This is just for coders who would like to see the result if it can help them find a solution.
If you are reading this and are not a coder : DO NOT download this mod.

Error is basically the table is 60 in size while the code seems to request number 90 of the table which doesnt exist (duh)

I have tracked down the function it errors at and this is the function

   public void get(int var1, Vector3f var2, Quaternion var3, Vector3f var4) {
      this.m_pose[var1].lerp(this.getCurrentTime(), var2, var3, var4);
   }

And m_pose is here

private final zombie.core.skinnedmodel.animation.AnimationTrack.KeyframeSpan[] m_pose = new zombie.core.skinnedmodel.animation.AnimationTrack.KeyframeSpan[60];

The m_pose has a keyframespan of 60 and that im 99% sure is the issue

Hope this is of any help and if questions pop up just mention me

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...