So after modding nonstop since like 4 weeks now I still did not manage to stop my character from constantly loosing his arms for no reason >:I I sometimes happesn while aiming, sometimes while shooting, sometimes while just moving arround. No matter wether he carries a large or small device. The JointStrength, GibImpulseLimit and GibWound limit are either infinite or extremely high, for testing purposes, yet the arms still breake off randomly. My guess would be that its something with the arms position on the actor, the arm length should be fine.
I have only done this one actor so far and as you know the wiki does not realy give detaild information on everything. Hopefully you experianced people know this issue, and its just some common fault on my side :/
Code snippets:
Here the Actors code:
Code:
AddActor = AHuman PresetName = TS BASE AddToGroup = Actors AddToGroup = The5 Actors Buyable = 0 //!!!Zu Testzwecken auf 1 stellen!!! Mass = 50 GoldCost = 200 Sharpness = 1 HitsMOs = 1 Status = 0 Health = 200 //!!! GetsHitByMOs = 1 SpriteFile = ContentFile FilePath = The5.rte/Actors/TayranianSoldier/TSTorsoBase.bmp FrameCount = 1 SpriteOffset = Vector X = -7 Y = -10 EntryWound = AEmitter CopyOf = WoundTayranianMetal ExitWound = AEmitter CopyOf = WoundTayranianMetal AtomGroup = AtomGroup AutoGenerate = 1 Material = Material CopyOf = Kevlared Flesh Resolution = 4 Depth = 0 DeepGroup = AtomGroup AutoGenerate = 1 Material = Material CopyOf = Flesh Resolution = 6 Depth = 3 DeepCheck = 0 BodyHitSound = Sound CopyOf = Bone Crack PainSound = Sound CopyOf = Bone Crack DeathSound = Sound CopyOf = Bone Crack DeviceSwitchSound = Sound CopyOf = Device Switch ImpulseDamageThreshold = 10000 //50000 //11600 //!!! !!! !!! AimAngle = 0 AimDistance = 30 Perceptiveness = 1 CharHeight = 90 Head = Attachable CopyOf = TS-Head ParentOffset = Vector X = -2 Y = -9 FGArm = Arm CopyOf = TS-ArmFG ParentOffset = Vector X = -4 Y = -3 BGArm = Arm //!! BG arm darf abbrechen! CopyOf = TS-ArmFG GibImpulseLimit = 5000 //!!! GibWoundLimit = 30 //!!! ParentOffset = Vector X = 3 Y = -3 FGLeg = Leg CopyOf = TS-LegFG ParentOffset = Vector X = -2 Y = 9 BGLeg = Leg CopyOf = TS-LegFG ParentOffset = Vector X = 4 Y = 9 HolsterOffset = Vector X = -5 Y = -6 Jetpack = AEmitter CopyOf = TS-Jetpack ParentOffset = Vector X = -15 Y = 4 JumpTime = 10 // Secs wieviel Benzin das Jetpack hat HandGroup = AtomGroup CopyOf = HandGroup FGFootGroup = AtomGroup CopyOf = Foot BGFootGroup = AtomGroup CopyOf = Foot StrideSound = Sound CopyOf = Robot Stride StandLimbPath = LimbPath //vorderbein Stand-position (Vektor von hüfte zum Fuß) PresetName = TS-StandPath StartOffset = Vector X = -2 Y = 22 StartSegCount = 0 SlowTravelSpeed = 0.1 //Fast und slow Travlespeed werden von der Engine mommentan noch garnicht verwendet NormalTravelSpeed = 1 //0.5 FastTravelSpeed = 1.5 PushForce = 10000 //8000 StandLimbPathBG = LimbPath //Hiterbein Stand-position (vektor von Hüfte zum Fuß) CopyOf = TS-StandPath StartOffset = Vector X = 3 Y = 22 WalkLimbPath = LimbPath PresetName = TS-WalkPath StartOffset = Vector X = 15 Y = -5 StartSegCount = 2 AddSegment = Vector X = 0 Y = 5 AddSegment = Vector X = 0 Y = 5 AddSegment = Vector X = 0 Y = 5 AddSegment = Vector X = -5 Y = 5 AddSegment = Vector X = -10 Y = 5 AddSegment = Vector X = -10 Y = 0 AddSegment = Vector X = 0 Y = -5 AddSegment = Vector X = 5 Y = -5
SlowTravelSpeed = 1.5 //1.5 NormalTravelSpeed = 4 //3.5//2.5 //Walking Speed FastTravelSpeed = 4.5 //4.5 PushForce = 10000 CrouchLimbPath = LimbPath PresetName = TS-CrouchPath StartOffset = Vector X = 2 Y = 6 StartSegCount = 0 SlowTravelSpeed = 0.1 NormalTravelSpeed = 0.5 FastTravelSpeed = 1.5 PushForce = 8000 CrawlLimbPath = LimbPath PresetName = TS-CrawlPath StartOffset = Vector X = -12 Y = -8 StartSegCount = 2 AddSegment = Vector X = 12 Y = 0 AddSegment = Vector X = 8 Y = 2 AddSegment = Vector X = 0 Y = 8 AddSegment = Vector X = 0 Y = 10 SlowTravelSpeed = 1.5 //1.5 NormalTravelSpeed = 2.5 //1.8 FastTravelSpeed = 4.5 //4.5 PushForce = 8000 ArmCrawlLimbPath = LimbPath PresetName = TS-ArmCrawlPath StartOffset = Vector X = -6 Y = -5 StartSegCount = 2 AddSegment = Vector X = 0 Y = -4 AddSegment = Vector X = 3 Y = -3 AddSegment = Vector X = 4 Y = 0 AddSegment = Vector X = 4 Y = 4 AddSegment = Vector X = 0 Y = 10 SlowTravelSpeed = 1.5 NormalTravelSpeed = 1.5 FastTravelSpeed = 4.5 PushForce = 6000 ClimbLimbPath = LimbPath PresetName = TS-ClimbPath StartOffset = Vector X = -8 Y = -10 StartSegCount = 6 AddSegment = Vector X = 6 Y = -4 AddSegment = Vector X = 16 Y = -3 AddSegment = Vector X = 8 Y = 0 AddSegment = Vector X = -1 Y = 4 AddSegment = Vector X = -2 Y = 8 AddSegment = Vector X = -3 Y = 14 AddSegment = Vector X = -5 Y = 5 AddSegment = Vector X = -3 Y = 0 SlowTravelSpeed = 2.25 NormalTravelSpeed = 2.25 FastTravelSpeed = 6.75 PushForce = 8000 JumpLimbPath = LimbPath PresetName = TS-JumpPath StartOffset = Vector X = 0 Y = 11 StartSegCount = 3 AddSegment = Vector X = 0 Y = -10 AddSegment = Vector X = 0 Y = 4 AddSegment = Vector X = 0 Y = 4 AddSegment = Vector X = -8 Y = 14 SlowTravelSpeed = 3 NormalTravelSpeed = 6 FastTravelSpeed = 7 PushForce = 10000 DislodgeLimbPath = LimbPath PresetName = TS-DislodgePath StartOffset = Vector X = 2 Y = -7 StartSegCount = 0 AddSegment = Vector X = 0 Y = 6 SlowTravelSpeed = 1.5 NormalTravelSpeed = 2.5 FastTravelSpeed = 4.5 PushForce = 10000
And here The Arm
Code:
AddActor = Arm PresetName = TS-ArmFGBase Mass = 15 Sharpness = 0 HitsMOs = 1 //??? teils 1 teils 0 GetsHitByMOs = 1 SpriteFile = ContentFile FilePath = The5.rte/Actors/TayranianSoldier/TSArmFG.bmp FrameCount = 5 SpriteOffset = Vector X = -3 Y = -2 EntryWound = AEmitter CopyOf = WoundTayranianFleshArmed ExitWound = AEmitter CopyOf = WoundTayranianFleshArmed AtomGroup = AtomGroup AutoGenerate = 1 Material = Material CopyOf = Military Stuff StructuralIntegrity = 500 Resolution = 4 Depth = 0 DeepCheck = 0 ParentOffset = Vector X = 0 Y = 0 JointStrength = 9999999 //200 JointStiffness = 0.25 BreakWound = AEmitter CopyOf = Wound Flesh Body JointOffset = Vector //wo die Schultern sind X = -3 Y = -1 Hand = ContentFile FilePath = The5.rte/Actors/TayranianSoldier/TSHandFG.bmp MaxLength = 15 // IdleOffset = Vector //Wie er die Arme ohne waffe hällt X = 6 Y = 8 MoveSpeed = 0.2 DrawAfterParent = 1
Any reason why you set the JointStiffness to 0.25? Can you try the default, 0.5 instead?
Sun Sep 11, 2011 7:40 pm
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
Re: Help - Actor arms randomly breaking off?
The5 wrote:
The JointStrength, GibImpulseLimit and GibWound limit are either infinite or extremely high, for testing purposes, yet the arms still breake off randomly.
That's it.
That value shouldn't be too high. Why? I'm not sure, but that's a common problem in newbies modding.
Sun Sep 11, 2011 7:41 pm
The5
Joined: Fri Aug 19, 2011 4:02 pm Posts: 40
Re: Help - Actor arms randomly breaking off?
Gotcha! wrote:
Any reason why you set the JointStiffness to 0.25? Can you try the default, 0.5 instead?
No idea, I used DarkStorms Actor as a reference since they are of similar bodysize. Are there more of those default values? What are the ones for Foot, Leg and Head? Also what does joint Stiffness actualy do? Define how much likely it its that they rotate?
I'll try it immediately!
Asklar wrote:
That's it. That value shouldn't be too high. Why? I'm not sure, but that's a common problem in newbies modding.
Nono! They were way lower before, I highered them everytime my arm broke off aggain, in the end I just turned them up to infinite in my desperation.
Sun Sep 11, 2011 7:48 pm
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
I have to admit, I am not entirely sure. Been a while since I tinkered with actors and I forgot a lot of things. It seems all vanilla actors (as well as my own) use 0.5 though.
You can open a vanilla actor and get default values from them. From skeletons to dummies, they all share the same value.
Anyway, if that doesn't make a change, share what you made and we can have a look at it.
Sun Sep 11, 2011 8:03 pm
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
Re: Help - Actor arms randomly breaking off?
Hm... Maybe JointStiffness is the thingie, but I suppose that a higher value would make it break randomly, not a lower.
Sun Sep 11, 2011 8:16 pm
Azukki
Joined: Sat Nov 03, 2007 9:44 pm Posts: 1916 Location: Flint Hills
Re: Help - Actor arms randomly breaking off?
Just for fun sometime, try setting the joint stiffnesses on an actor to 100, and all the joint strengths to 999999999, and then collide him with something other than terrain.
Mon Sep 12, 2011 7:02 am
The5
Joined: Fri Aug 19, 2011 4:02 pm Posts: 40
Re: Help - Actor arms randomly breaking off?
So far Stiffnes 0.5 works good!
I want the FG arm unbreakable (seriously, actors without a FG-Arm make no sense at all and it happens sooo easily) and the BG amr breakable.
GibWoundLimit and GibImpulseLimit are both 0, so infinite, fine.
The JointStiffnes does not realy tell me anything. I imagine it is how easly the arm kicks back upon weapon recoil or a MO hitting it. JointStiffnes 1.0 could mean, that the whole kickback is given to the parent, the child wont move. Maximum impulse on the joint itself, no accelleration for the child. The vanilla 0.5 could mean that 50% of the impulse are given to the joint and 50% are converted into acceleration for the child. Best balance, only 50% of the impulse are given to the JointStreng. The other 50% are converted into acceleration of the arm, this also generates a impulse on the JointStreng but only a part of the 50% (vector math for circular movements... blahblah). In the end this could mean maximum joint durability but JointStiffnes 1.0 could prove better, no idea.
To my knowledge JointStrength is the Impulse needed to break the joint and detach the child object. However a verry high JointStrength like 10,000,000 makes the joint break when just moving the arm a tad. Probably just some glitch due to the code handling enormous numbers (impulses like that are normaly not existant in the game), getting some overflow and resulting in negative impulses that just gib anything. Also: JointStrength = -1 makes the child gib instantly and JointStrength = 0 is NOT infinite but any impulse gibs the child!
So for a invulnerable arm my current setup is:
JointStiffnes = 0.5 //I'll just go with the Vanilla value here, since it prove stable JointStrength = 10000 //verry high, arm might still gib when a dropship smashes on it... GibWoundLimit = 0 //infinite GibImpulseLimit = 0 //infinite
Material = Material CopyOf = Military Stuff Bounce = 0.0 Friction = 0.0 StructuralIntegrity = -1 DensityKGPerVolumeL = -1 GibImpulseLimitPerVolumeL = -1 GibWoundLimitPerVolumeL = -1
That seems to work 100%, some of it might be unnecessary though.
Tue Sep 13, 2011 10:26 pm
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
Re: Help - Actor arms randomly breaking off?
Yep, everything.
Leave the material like it's default, just using the GHBM = 0 you are done.
Tue Sep 13, 2011 10:29 pm
The5
Joined: Fri Aug 19, 2011 4:02 pm Posts: 40
Re: Help - Actor arms randomly breaking off?
Asklar wrote:
Yep, everything.
Leave the material like it's default, just using the GHBM = 0 you are done.
When you fall off a roof your arm might collide with the terain and break, so GibImpulseLimit is neccesary too, or does it only count for MO-impulses? If so then the materials GibImpulseLimitPerVolumeL might be needed.
Tue Sep 13, 2011 11:48 pm
Asklar
Data Realms Elite
Joined: Fri Jan 07, 2011 8:01 am Posts: 6211 Location: In your office, earning your salary.
Re: Help - Actor arms randomly breaking off?
I didn't think of those.
Keep impulse limits, the wound limits aren't needed.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum