feat: add shuriken weapon

add shuriken weapon model, 3 animations
change move speed triggers animation
This commit is contained in:
Chris
2026-01-09 01:14:14 -05:00
parent 96c43c6369
commit 49862b5de1
15 changed files with 345 additions and 139 deletions

Binary file not shown.

View File

@@ -0,0 +1,110 @@
fileFormatVersion: 2
guid: 5d707e1afa9e06a4cbcd1c860d0cfa37
ModelImporter:
serializedVersion: 24200
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 2
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 1
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
importBlendShapeDeformPercent: 1
remapMaterialsIfMaterialImportModeIsNone: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -189,7 +189,7 @@ MonoBehaviour:
_version: 3.31
_category:
_comments:
_translation: {x: 551, y: -41}
_translation: {x: 632, y: -203}
_zoomFactor: 1
_haltSerialization: 0
_externalSerializationFile: {fileID: 0}

View File

@@ -22,12 +22,31 @@ ModelImporter:
retargeting quality.\n\t'shoulder.L' has translation animation that will be
discarded.\n\t'arm.L' has translation animation that will be discarded.\n\t'shoulder.R'
has translation animation that will be discarded.\n\t'arm.R' has translation
animation that will be discarded.\n\nClip 'PlayerArmature|Run' has import animation
animation that will be discarded.\n\nClip 'ShurikenAttack1' has import animation
warnings that might lower retargeting quality:\nNote: Activate translation
DOF on avatar to improve retargeting quality.\n\t'shoulder.R' has translation
animation that will be discarded.\n\nClip 'ShurikenRun' has import animation
warnings that might lower retargeting quality:\nNote: Activate translation
DOF on avatar to improve retargeting quality.\n\t'shoulder.L' has translation
animation that will be discarded.\n\t'arm.L' has translation animation that
will be discarded.\n\t'shoulder.R' has translation animation that will be discarded.\n\t'arm.R'
has translation animation that will be discarded.\n"
will be discarded.\n\t'arm.R' has translation animation that will be discarded.\n\nClip
'PlayerArmature|Run' has import animation warnings that might lower retargeting
quality:\nNote: Activate translation DOF on avatar to improve retargeting quality.\n\t'shoulder.L'
has translation animation that will be discarded.\n\t'arm.L' has translation
animation that will be discarded.\n\t'shoulder.R' has translation animation
that will be discarded.\n\t'arm.R' has translation animation that will be discarded.\n\nClip
'PlayerArmature|ShurikenAttack1' has import animation warnings that might lower
retargeting quality:\nNote: Activate translation DOF on avatar to improve retargeting
quality.\n\t'shoulder.R' has translation animation that will be discarded.\n\nClip
'PlayerArmature|ShurikenRun' has import animation warnings that might lower
retargeting quality:\nNote: Activate translation DOF on avatar to improve retargeting
quality.\n\t'shoulder.L' has translation animation that will be discarded.\n\t'arm.L'
has translation animation that will be discarded.\n\t'arm.R' has translation
animation that will be discarded.\n\nClip 'PlayerArmature|TestAnimation' has
import animation warnings that might lower retargeting quality:\nNote: Activate
translation DOF on avatar to improve retargeting quality.\n\t'shoulder.L' has
translation animation that will be discarded.\n\t'arm.L' has translation animation
that will be discarded.\n\t'arm.R' has translation animation that will be discarded.\n"
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
@@ -228,64 +247,6 @@ ModelImporter:
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: Idle.001
takeName: Idle.001
internalID: 6517714258327031822
firstFrame: 0
lastFrame: 1
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: PlayerArmature|Idle
takeName: PlayerArmature|Idle
internalID: 4826743432947276201
firstFrame: 0
lastFrame: 0
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: SwordIdle
takeName: SwordIdle
@@ -315,64 +276,6 @@ ModelImporter:
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: PlayerArmature|NewTPose
takeName: PlayerArmature|NewTPose
internalID: 6773551903615756174
firstFrame: 0
lastFrame: 0
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: PlayerArmature|PlayerArmatureAction
takeName: PlayerArmature|PlayerArmatureAction
internalID: -5330524968722648665
firstFrame: 0
lastFrame: 0
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: PlayerArmature|RandomAnimation
takeName: PlayerArmature|RandomAnimation
@@ -518,6 +421,122 @@ ModelImporter:
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: PlayerArmature|ShurikenAttack1
takeName: PlayerArmature|ShurikenAttack1
internalID: -8421144322236093334
firstFrame: 0
lastFrame: 71
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 0
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: PlayerArmature|ShurikenRun
takeName: PlayerArmature|ShurikenRun
internalID: -9063138054437102302
firstFrame: 0
lastFrame: 23
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: PlayerArmature|ShurkenIdle
takeName: PlayerArmature|ShurkenIdle
internalID: 1615686163547640338
firstFrame: 0
lastFrame: 0
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
- serializedVersion: 16
name: Idle
takeName: Idle
internalID: -8215664320783465972
firstFrame: 0
lastFrame: 5
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 0
loopBlendPositionY: 0
loopBlendPositionXZ: 0
keepOriginalOrientation: 0
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
isReadable: 0
meshes:
lODScreenPercentages: []

View File

@@ -18,7 +18,7 @@ BlendTree:
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: 5522812681064789136, guid: a4609a80d9c9c72489c602cc90e3f76a, type: 3}
m_Threshold: 0.1
m_Threshold: 0.5155598
m_Position: {x: 0, y: 0}
m_TimeScale: 0.5
m_CycleOffset: 0
@@ -305,7 +305,7 @@ AnimatorController:
m_Type: 4
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_DefaultBool: 1
m_Controller: {fileID: 9100000}
- m_Name: Attack
m_Type: 9
@@ -369,8 +369,8 @@ BlendTree:
m_Name: Blend Tree
m_Childs:
- serializedVersion: 2
m_Motion: {fileID: 6517714258327031822, guid: a4609a80d9c9c72489c602cc90e3f76a, type: 3}
m_Threshold: 0.017475728
m_Motion: {fileID: -8215664320783465972, guid: a4609a80d9c9c72489c602cc90e3f76a, type: 3}
m_Threshold: 0
m_Position: {x: 0, y: 0}
m_TimeScale: 0.01
m_CycleOffset: 0
@@ -378,9 +378,9 @@ BlendTree:
m_Mirror: 0
- serializedVersion: 2
m_Motion: {fileID: 199366884485362299, guid: a4609a80d9c9c72489c602cc90e3f76a, type: 3}
m_Threshold: 0.1
m_Threshold: 0.45467815
m_Position: {x: 0, y: 0}
m_TimeScale: 0.5
m_TimeScale: 1
m_CycleOffset: 0
m_DirectBlendParameter: Move Direction X
m_Mirror: 0
@@ -388,13 +388,13 @@ BlendTree:
m_Motion: {fileID: 199366884485362299, guid: a4609a80d9c9c72489c602cc90e3f76a, type: 3}
m_Threshold: 1
m_Position: {x: 0, y: 0}
m_TimeScale: 1.3
m_TimeScale: 1.8
m_CycleOffset: 0
m_DirectBlendParameter: Move Direction X
m_Mirror: 0
m_BlendParameter: Move Direction X
m_BlendParameterY: Move Direction X
m_MinThreshold: 0.017475728
m_MinThreshold: 0
m_MaxThreshold: 1
m_UseAutomaticThresholds: 0
m_NormalizedBlendValues: 0

View File

@@ -136,7 +136,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.Netcode.Runtime::Unity.Netcode.NetworkObject
GlobalObjectIdHash: 2249897443
GlobalObjectIdHash: 2957555102
InScenePlacedSourceGlobalObjectIdHash: 2957555102
DeferredDespawnTick: 0
Ownership: 1
@@ -946,7 +946,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::Reset.Units.PlayerAnimation
ShowTopMostFoldoutHeaderGroup: 1
modelAnimator: {fileID: 8505492416078151957, guid: 091cfac8be4c5a144a0b8997a9f1ff28, type: 3}
modelAnimator: {fileID: 2240486157433394837}
headBone: {fileID: 0}
neckBone: {fileID: 0}
headRotOffset: {x: 0, y: 0, z: 0}

View File

@@ -14286,6 +14286,75 @@ Mesh:
- serializedVersion: 1
m_IndexStart: 0
m_IndexCount: 0
--- !u!1001 &1290093098
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalScale.x
value: 0.43432
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalScale.y
value: 0.43432
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalScale.z
value: 0.43432
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalPosition.x
value: -42.425
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalPosition.y
value: 2.1383
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalPosition.z
value: 35.295288
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
propertyPath: m_Name
value: TestShuriken
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 5d707e1afa9e06a4cbcd1c860d0cfa37, type: 3}
--- !u!43 &1290893495
Mesh:
m_ObjectHideFlags: 0
@@ -18962,6 +19031,7 @@ MonoBehaviour:
headRotOffset: {x: 0, y: 0, z: 0}
neckRotOffset: {x: 0, y: 0, z: 0}
rotationLimit: {x: 0, y: 0, z: 0}
moveSpeed: 0
--- !u!114 &1668865143
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -24313,3 +24383,4 @@ SceneRoots:
- {fileID: 332821856}
- {fileID: 8269163115880052268}
- {fileID: 1821824113}
- {fileID: 1290093098}

View File

@@ -13,21 +13,23 @@ namespace Reset.Units{
public Vector3 rotationLimit;
public float moveSpeed;
// Temporary
private float inputMagnitude;
void Update(){
// Temporary
try {
inputMagnitude = Mathf.MoveTowards(inputMagnitude, GetComponent<PlayerControls>().rawMoveInput.magnitude * 2f, 6f * Time.deltaTime);
modelAnimator.SetFloat("Move Direction X", Unit.Movement.GetResolvedDirectionLocal().x * inputMagnitude);
modelAnimator.SetFloat("Move Direction Y", Unit.Movement.GetResolvedDirectionLocal().y * inputMagnitude);
} catch (Exception e) {
Debug.LogError($"Failed in setting X and Y move direction floats: {e.Message}");
}
// try {
// inputMagnitude = Mathf.MoveTowards(inputMagnitude, GetComponent<PlayerControls>().rawMoveInput.magnitude * 2f, 6f * Time.deltaTime);
//
// modelAnimator.SetFloat("Move Direction X", Unit.Movement.GetResolvedDirectionLocal().x * inputMagnitude);
// modelAnimator.SetFloat("Move Direction Y", Unit.Movement.GetResolvedDirectionLocal().y * inputMagnitude);
// } catch (Exception e) {
// Debug.LogError($"Failed in setting X and Y move direction floats: {e.Message}");
// }
modelAnimator.SetFloat("Move Direction X", moveSpeed);
}
private void LateUpdate(){

View File

@@ -52,6 +52,10 @@ namespace Reset.Units{
// Apply movement
DoMovement(resolvedMovement.moveDirection.World, resolvedMovement.gravity, resolvedMovement.moveSpeed, data.gravityScale.Value);
// Apply movespeed to the Animator
Unit.Animation.moveSpeed = resolvedMovement.moveSpeed * resolvedMovement.moveDirection.Local.magnitude / data.moveSpeed.currentValue;
DebugOverlayDrawer.ChangeValue("Movement", "Move Direction (Local)", resolvedMovement.moveDirection.Local);
DebugOverlayDrawer.ChangeValue("Movement", "Move Direction (World)", resolvedMovement.moveDirection.World);
}

Binary file not shown.

Binary file not shown.

Binary file not shown.