LANTERN feel pass (DR-052 + gap list): SoD facing, underwater feel, Bathynaut kit, walk/run gait, suit lamp + new Synty anim packs
- SoD facing: PlayerFacing = body-yaw only (move-facing / cast-turn / idle-hold); every fire direction re-sourced to FacingMath.ResolveAim (pre-code review blocking catch); TickWindowMath shared windows with Movement-skip; reticle/FX coupled to the damage direction; cursor-dash kept. - Underwater feel: sharpness 15->6, turn 720->360, MoveSpeed 6->4.2; TuningKnob 26-28 (0 = no-override sentinels, dev-protocol bump on DebugTuningReport); stride footsteps + silt + cadence floor; bubbles; underwater ambience bed + distant groans; camera drag + dev scroll zoom. - Bathynaut kit in-engine: dome/tank/shoulder-lamp + bare head grafted (GraftSmr rigid rebase, RecalculateTangents); EmissiveGloamSkinned shader (Rukhanka deformation); shoulder lamp CASTS (warm steady spot on body yaw). - Gait: two-ring walk/run FreeformDirectional tree (walk @0.35, run @1.0) + blended-natural StrideScale; additive Posture(Bank) + Lead(chest-lead) layers; idle = AnimationIdles Base; banking driven from facing turn rate; flat terrain (Env_SeabedKit seabed squashed - CC is planar). - New packs: Synty AnimationIdles + AnimationSwordCombat (combat pass queued) + SyntyPropBoneTool; four authored clips (sway/trudge/banks/lean) + Anim_Player_Underwater.blend + suit-kit FBX. - Validation: 411/411 EditMode green; Play smokes (server==client facing, Aim-true projectile, bank/stride live-sampled, lamp beam verified); pre-code + post-impl adversarial reviews applied. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
|
||||
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
|
||||
//
|
||||
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
|
||||
// available at: https://syntystore.com/pages/end-user-licence-agreement
|
||||
//
|
||||
// For additional details, see the LICENSE.MD file bundled with this software.
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace Synty.Tools.SyntyPropBoneTool
|
||||
{
|
||||
/// <summary>
|
||||
/// Hard coded default values for PropBoneDefinitions.
|
||||
/// </summary>
|
||||
public static class PropBoneDefinitionPresets
|
||||
{
|
||||
// Preset configs for Synty rigs
|
||||
public static PropBoneDefinition[] PolygonBoneDefinition
|
||||
{
|
||||
get
|
||||
{
|
||||
return new PropBoneDefinition[]
|
||||
{
|
||||
new PropBoneDefinition() {
|
||||
parentBoneName = "Hand_R",
|
||||
boneName = "Prop_R",
|
||||
socketName = "Prop_R_Socket",
|
||||
rotationOffset = new Vector3(0,0,0),
|
||||
scale = 1f,
|
||||
scaleCalculationBone1 = "Hand_R",
|
||||
scaleCalculationBone2 = "Elbow_R"
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0dff29751f13d4476aa02d6bed4dcc8e
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,48 @@
|
||||
// Copyright (c) 2024 Synty Studios Limited. All rights reserved.
|
||||
//
|
||||
// Use of this software is subject to the terms and conditions of the Synty Studios End User Licence Agreement (EULA)
|
||||
// available at: https://syntystore.com/pages/end-user-licence-agreement
|
||||
//
|
||||
// For additional details, see the LICENSE.MD file bundled with this software.
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace Synty.Tools.SyntyPropBoneTool
|
||||
{
|
||||
/// <summary>
|
||||
/// Helper class containing helpful functions relating to Transform objects.
|
||||
/// </summary>
|
||||
public static class TransformUtil
|
||||
{
|
||||
/// <summary>
|
||||
/// Performs a depth first recursive searche of the hierarchy to find a transform with the searchName.
|
||||
/// </summary>
|
||||
/// <param name="node">The current node in the recursive search.</param>
|
||||
/// <param name="searchName">The name of the node to find.</param>
|
||||
/// <returns>A <c>Transform</c> that is the first match to the searchName or null if no match is found.</returns>
|
||||
public static Transform SearchHierarchy(Transform node, string searchName)
|
||||
{
|
||||
if (node == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (node.name == searchName)
|
||||
{
|
||||
return node;
|
||||
}
|
||||
|
||||
Transform result = null;
|
||||
for (int childIndex = 0; childIndex < node.childCount; childIndex++)
|
||||
{
|
||||
result = SearchHierarchy(node.GetChild(childIndex), searchName);
|
||||
if (result != null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5935aa19cf8174e8f871b2c3b2102e25
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user