Zweihänder: Griffspanne virtuell 22cm, Griff-raten 20cm mit 5cm Pommel-Offset
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -236,6 +236,11 @@ public class NpcWeaponAttachmentControl extends AbstractControl {
|
||||
|
||||
Vector3f g1 = new Vector3f(grip.getPosX(), grip.getPosY(), grip.getPosZ());
|
||||
Vector3f g2 = new Vector3f(grip.getGrip2PosX(), grip.getGrip2PosY(), grip.getGrip2PosZ());
|
||||
// Griffspanne virtuell auf 22cm; g1 (rechte Hand) 10cm weiter Richtung Klinge
|
||||
Vector3f gripAxis = g1.subtract(g2).normalizeLocal();
|
||||
Vector3f gripCenter = g1.add(g2).multLocal(0.5f);
|
||||
g1 = gripCenter.add(gripAxis.mult(0.21f));
|
||||
g2 = gripCenter.subtract(gripAxis.mult(0.11f));
|
||||
Vector3f leftHandInChar = charWorldRotInv.mult(leftForeArmNode.getWorldTranslation().subtract(charWorldPos));
|
||||
Quaternion leftBoneRotInChar = charWorldRotInv.mult(leftForeArmNode.getWorldRotation());
|
||||
Vector3f leftHandballen = (palmOffsetLocal != null)
|
||||
|
||||
@@ -71,7 +71,6 @@ public class WeaponAttachmentControl extends AbstractControl {
|
||||
private boolean lastDrawnState = false;
|
||||
private Spatial weaponSpatial;
|
||||
private boolean gripDiagLogged = false;
|
||||
private int twoHandDiagFrame = 0;
|
||||
|
||||
private Item lastEquippedShield;
|
||||
private Spatial shieldSpatial;
|
||||
@@ -285,9 +284,13 @@ public class WeaponAttachmentControl extends AbstractControl {
|
||||
: new Quaternion();
|
||||
Quaternion weaponRot = animDelta.mult(bladeFlip).mult(gripRot.inverse());
|
||||
|
||||
// Griff-Achse g1→g2 in CharSpace; Ziel = rechteHand→linkeHand
|
||||
Vector3f g1 = new Vector3f(grip.getPosX(), grip.getPosY(), grip.getPosZ());
|
||||
Vector3f g2 = new Vector3f(grip.getGrip2PosX(), grip.getGrip2PosY(), grip.getGrip2PosZ());
|
||||
// Griffspanne virtuell auf 22cm; g1 (rechte Hand) 10cm weiter Richtung Klinge
|
||||
Vector3f gripAxis = g1.subtract(g2).normalizeLocal();
|
||||
Vector3f gripCenter = g1.add(g2).multLocal(0.5f);
|
||||
g1 = gripCenter.add(gripAxis.mult(0.21f));
|
||||
g2 = gripCenter.subtract(gripAxis.mult(0.11f));
|
||||
Vector3f leftHandInChar = charWorldRotInv.mult(leftForeArmNode.getWorldTranslation().subtract(charWorldPos));
|
||||
// Linke Hand: Handballen-Korrektur (Palm-Offset entgegen Fingerrichtung) – nur für midTarget, nicht für targetDir
|
||||
Quaternion leftBoneRotInChar = charWorldRotInv.mult(leftForeArmNode.getWorldRotation());
|
||||
|
||||
Reference in New Issue
Block a user