Some minor changes

This commit is contained in:
Nikolai Rodionov 2025-03-05 14:09:56 +01:00
parent 79043e11e5
commit f344c22859
No known key found for this signature in database
GPG Key ID: 0639A45505F3BFA6
5 changed files with 96 additions and 12 deletions

View File

@ -1 +1 @@
uid://bbnh6vbh5cvtq
uid://btsjychrq887j

View File

@ -18,6 +18,11 @@ func _input(event: InputEvent) -> void:
v_rotation.rotation.x = clamp(
v_rotation.rotation.x - look_dir.y * camera_sens * 1.0, -1.5, 1.5
)
if Input.is_action_pressed("shoot"):
$VisualsController/Model/Armature/Skeleton3D/ShootingModifier.shooting = true
else:
$VisualsController/Model/Armature/Skeleton3D/ShootingModifier.shooting = false
func _physics_process(delta: float) -> void:

View File

@ -1,11 +1,12 @@
[gd_scene load_steps=43 format=4 uid="uid://b2ogo643mvror"]
[gd_scene load_steps=44 format=4 uid="uid://b2ogo643mvror"]
[ext_resource type="Script" uid="uid://db5kuorgtnsmg" path="res://src/scenes/player/player.gd" id="1_ytbry"]
[ext_resource type="Script" uid="uid://cqk3cp4t6sg1l" path="res://src/camera/camera_mount/camera_mount.gd" id="2_7uvid"]
[ext_resource type="Script" uid="uid://fhu1ep8ym4ch" path="res://src/scenes/player/player_movement.gd" id="2_300um"]
[ext_resource type="Script" uid="uid://y6hg3gyagmjh" path="res://src/scenes/player/look_forward_modifier.gd" id="2_hfvys"]
[ext_resource type="Script" uid="uid://tf0b0xiedgvx" path="res://src/scenes/player/visuals_controller.gd" id="4_2fh3g"]
[ext_resource type="Script" uid="uid://bbnh6vbh5cvtq" path="res://src/scenes/player/aiming_modifier.gd" id="5_lh6av"]
[ext_resource type="Script" uid="uid://bbnh6vbh5cvtq" path="res://src/scenes/player/shooting_modifier.gd" id="5_lh6av"]
[ext_resource type="Script" uid="uid://btsjychrq887j" path="res://src/scenes/player/aiming_modifier.gd" id="6_6ap8y"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_4kq8i"]
radius = 0.4
@ -2961,7 +2962,7 @@ bones/5/parent = 4
bones/5/rest = Transform3D(1, -2.18268e-11, 3.38872e-13, 2.18268e-11, 1, 1.21453e-08, -3.38873e-13, -1.21453e-08, 1, 2.56128e-08, 0.103218, 0.0314243)
bones/5/enabled = true
bones/5/position = Vector3(2.98023e-08, 0.103218, 0.0314242)
bones/5/rotation = Quaternion(-0.0646294, -0.538836, 0.838791, -0.0436805)
bones/5/rotation = Quaternion(-0.0401185, 0.192201, 0.0901439, 0.976383)
bones/5/scale = Vector3(1, 1, 1)
bones/6/name = "mixamorig_HeadTop_End"
bones/6/parent = 5
@ -3401,7 +3402,7 @@ rotation_order = 2
top_level = false
visible = true
visibility_parent = NodePath("")
active = true
active = false
influence = 1.0
script = ExtResource("2_hfvys")
target_object = NodePath("../../../../../MovementController/VRotation/EyeMarker/TargetMarker")
@ -3415,7 +3416,7 @@ use_magnet = true
target_node = NodePath("../../../../Weapon/Ak-47/SecondHand")
max_iterations = 1
[node name="AimingModifier" type="SkeletonModifier3D" parent="VisualsController/Model/Armature/Skeleton3D" node_paths=PackedStringArray("look_raycast", "aim_raycast")]
[node name="ShootingModifier" type="SkeletonModifier3D" parent="VisualsController/Model/Armature/Skeleton3D" node_paths=PackedStringArray("look_raycast", "aim_raycast")]
_import_path = NodePath("")
unique_name_in_owner = false
process_mode = 0
@ -3437,23 +3438,47 @@ script = ExtResource("5_lh6av")
look_raycast = NodePath("../../../../Camera/CameraMount/Camera3D/RayCast3D")
aim_raycast = NodePath("../../../../Weapon/Ak-47/RayCast3D")
bone = "mixamorig_RightHand"
aiming = true
metadata/_custom_type_script = "uid://bbnh6vbh5cvtq"
[node name="AimingModifier" type="SkeletonModifier3D" parent="VisualsController/Model/Armature/Skeleton3D" node_paths=PackedStringArray("look_raycast", "aim_raycast")]
_import_path = NodePath("")
unique_name_in_owner = false
process_mode = 0
process_priority = 0
process_physics_priority = 0
process_thread_group = 0
physics_interpolation_mode = 0
auto_translate_mode = 0
editor_description = ""
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
rotation_edit_mode = 0
rotation_order = 2
top_level = false
visible = true
visibility_parent = NodePath("")
active = false
influence = 1.0
script = ExtResource("6_6ap8y")
look_raycast = NodePath("../../../../Camera/CameraMount/Camera3D/RayCast3D")
aim_raycast = NodePath("../../../../Weapon/Ak-47/RayCast3D")
bone = "mixamorig_RightHand"
aiming = true
metadata/_custom_type_script = "uid://btsjychrq887j"
[node name="AnimationPlayer" type="AnimationPlayer" parent="VisualsController/Model"]
libraries = {
&"": SubResource("AnimationLibrary_2wvud")
}
[node name="Weapon" type="BoneAttachment3D" parent="VisualsController"]
transform = Transform3D(0.0508198, -0.0186759, -0.998443, 0.997092, 0.0573049, 0.0496806, 0.0562901, -0.998096, 0.0215334, 0.143142, 1.33176, -0.191155)
transform = Transform3D(0.101862, -0.0272939, -0.994332, 0.989693, 0.103634, 0.0985431, 0.10036, -0.994155, 0.037569, 0.143142, 1.33176, -0.191155)
bone_name = "mixamorig_RightHand"
bone_idx = 34
use_external_skeleton = true
external_skeleton = NodePath("../Model/Armature/Skeleton3D")
[node name="Ak-47" type="Node3D" parent="VisualsController/Weapon"]
transform = Transform3D(4.37115e-08, 1, -8.74227e-08, 1, -4.37124e-08, 2.97303e-13, -8.99497e-15, -8.74224e-08, -1, 0.0562181, 0.251002, 0.037343)
transform = Transform3D(-0.153692, 0.988114, -0.00300123, 0.987998, 0.153626, -0.0160673, -0.0154152, -0.00543465, -0.999867, 0.0417417, 0.249486, 0.0359016)
[node name="Sketchfab_Scene" type="Node3D" parent="VisualsController/Weapon/Ak-47"]
@ -3539,14 +3564,14 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.156969, -0.0748217, 0)
transform = Transform3D(-0.959214, -0.192555, -0.206956, -0.229, 0.958549, 0.169536, 0.165733, 0.210014, -0.963549, 0.172895, -0.00541341, 0)
[node name="Camera" type="BoneAttachment3D" parent="VisualsController"]
transform = Transform3D(-0.999896, 2.67307e-05, -0.00528184, 2.30838e-10, 0.999959, 0.00511401, 0.00528105, 0.00511401, -0.999887, 0.0645052, 1.5075, -0.0727704)
transform = Transform3D(-0.882486, 0.444076, 0.154387, 0.384564, 0.870737, -0.306385, -0.270498, -0.211015, -0.939218, 0.0645053, 1.5075, -0.0727706)
bone_name = "mixamorig_Head"
bone_idx = 5
use_external_skeleton = true
external_skeleton = NodePath("../Model/Armature/Skeleton3D")
[node name="CameraMount" type="Node3D" parent="VisualsController/Camera"]
transform = Transform3D(-1, 0, -8.56817e-08, 2.32831e-10, 1, -1.86265e-09, 8.56817e-08, -7.45058e-09, -1, -0.00467635, 0.0690886, 0.200729)
transform = Transform3D(-0.883117, 0.336937, -0.326464, 0.392774, 0.911547, -0.1217, 0.256581, -0.235702, -0.937343, -0.00467628, 0.0690887, 0.200729)
script = ExtResource("2_7uvid")
camera_name = "ObservingCamera1"
@ -3556,5 +3581,5 @@ current = true
near = 0.01
[node name="RayCast3D" type="RayCast3D" parent="VisualsController/Camera/CameraMount/Camera3D"]
transform = Transform3D(0.999912, -1.77636e-15, -4.54747e-13, -1.77636e-15, 0.99991, -2.32831e-10, 0, 0, 0.999932, 2.88431e-06, -0.0532352, -0.7775)
transform = Transform3D(0.999912, -1.77636e-15, -4.54747e-13, -1.77636e-15, 0.99991, -2.32831e-10, 0, 0, 0.999932, 0, 0, 0)
target_position = Vector3(0, 0, -30)

View File

@ -0,0 +1,53 @@
@tool
class_name ShootingModifier
extends SkeletonModifier3D
@export var look_raycast: RayCast3D
@export var aim_raycast: RayCast3D
@export_enum(" ") var bone: String
@export var shooting: bool = false
func _validate_property(property: Dictionary) -> void:
if property.name == "bone":
var skeleton: Skeleton3D = get_skeleton()
if skeleton:
property.hint = PROPERTY_HINT_ENUM
property.hint_string = skeleton.get_concatenated_bone_names()
func _process_modification() -> void:
var skeleton: Skeleton3D = get_skeleton()
if !skeleton:
return
var bone_idx: int = skeleton.find_bone(bone)
if bone_idx == -1:
return
var target_position = look_raycast.get_collision_point() if look_raycast.is_colliding() else look_raycast.global_transform.origin + - look_raycast.global_transform.basis.z * 30
var target_position_local = to_local(target_position)
#aim_raycast.= target_position
var bone_pose = skeleton.get_bone_global_pose(bone_idx)
#print(new_basis)
#skeleton.set_bone_global_pose(bone_idx, Transform3D(bone_pose.basis, bone_pose.origin + Vector3(0, 0, 1)))
var gun_position = aim_raycast.global_transform.origin
var gun_direction = (target_position - gun_position).normalized()
if shooting:
var new_pose = bone_pose.looking_at(target_position_local, Vector3.FORWARD, true)
var new_basis: Basis
new_basis.y = new_pose.basis.z
#new_basis.y.y = -new_basis.y.y
new_basis.z = new_pose.basis.x
new_basis.x = new_pose.basis.y
new_pose.basis = new_basis
skeleton.set_bone_global_pose(bone_idx, new_pose)
func z_and_y_inverse(v : Vector3) -> Vector3 :
var tmp: float = v.x
v.x = v.y
v.y = tmp
return v

View File

@ -0,0 +1 @@
uid://bbnh6vbh5cvtq