Some minor changes
This commit is contained in:
parent
79043e11e5
commit
f344c22859
@ -1 +1 @@
|
||||
uid://bbnh6vbh5cvtq
|
||||
uid://btsjychrq887j
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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)
|
||||
|
53
godot/src/scenes/player/shooting_modifier.gd
Normal file
53
godot/src/scenes/player/shooting_modifier.gd
Normal 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
|
1
godot/src/scenes/player/shooting_modifier.gd.uid
Normal file
1
godot/src/scenes/player/shooting_modifier.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://bbnh6vbh5cvtq
|
Loading…
x
Reference in New Issue
Block a user