My first 3D game with Godot 4.4
This commit is contained in:
10
mob/bat/bat_mob_mat.tres
Normal file
10
mob/bat/bat_mob_mat.tres
Normal file
@@ -0,0 +1,10 @@
|
||||
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://vxjmb87ocrs3"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://2qvp3lxbf3ae" path="res://mob/bat/bat_model_bat_palette.png" id="1_sri6l"]
|
||||
|
||||
[resource]
|
||||
resource_local_to_scene = true
|
||||
resource_name = "bat_mat"
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("1_sri6l")
|
||||
roughness = 0.427273
|
||||
BIN
mob/bat/bat_model.glb
Normal file
BIN
mob/bat/bat_model.glb
Normal file
Binary file not shown.
1839
mob/bat/bat_model.glb.import
Normal file
1839
mob/bat/bat_model.glb.import
Normal file
File diff suppressed because it is too large
Load Diff
BIN
mob/bat/bat_model_bat_palette.png
Normal file
BIN
mob/bat/bat_model_bat_palette.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 170 B |
36
mob/bat/bat_model_bat_palette.png.import
Normal file
36
mob/bat/bat_model_bat_palette.png.import
Normal file
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://2qvp3lxbf3ae"
|
||||
path.s3tc="res://.godot/imported/bat_model_bat_palette.png-7ad9c3c193e1d543015fac56e3d622e5.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/bat_model_bat_palette.png-7ad9c3c193e1d543015fac56e3d622e5.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://mob/bat/bat_model_bat_palette.png"
|
||||
dest_files=["res://.godot/imported/bat_model_bat_palette.png-7ad9c3c193e1d543015fac56e3d622e5.s3tc.ctex", "res://.godot/imported/bat_model_bat_palette.png-7ad9c3c193e1d543015fac56e3d622e5.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
47
mob/bat_mob.gd
Normal file
47
mob/bat_mob.gd
Normal file
@@ -0,0 +1,47 @@
|
||||
extends RigidBody3D
|
||||
|
||||
signal died
|
||||
|
||||
@onready var bat_model: Node3D = %bat_model
|
||||
@onready var player: CharacterBody3D = get_node("/root/Game/Player")
|
||||
@onready var corpse_timer: Timer = $CorpseTimer
|
||||
@onready var hurt_box: Area3D = %HurtBox
|
||||
|
||||
var speed = randf_range(2.0, 4.0)
|
||||
var health = 100.0
|
||||
|
||||
func take_damage(damage: float = 25.0) -> void:
|
||||
if is_zero_approx(health):
|
||||
return # catch shooting mob on ground and stopping it from despawning
|
||||
else:
|
||||
%HurtSound.play()
|
||||
bat_model.hurt()
|
||||
health = clampf((health - damage), 0.0, health)
|
||||
|
||||
if is_zero_approx(health):
|
||||
# TODO: do more with this
|
||||
set_physics_process(false)
|
||||
gravity_scale = 1.0
|
||||
%DieSound.play()
|
||||
|
||||
var die_direction = global_position.direction_to(player.global_position) * -1.0
|
||||
var blerg_force = Vector3.UP * randf_range(2.0, 5.0)
|
||||
apply_central_impulse(die_direction * 8.0 + blerg_force)
|
||||
|
||||
died.emit()
|
||||
corpse_timer.start()
|
||||
|
||||
func _on_corpse_timer_timeout() -> void:
|
||||
queue_free()
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
var direction: Vector3 = global_position.direction_to(player.global_position)
|
||||
direction.y = 0.0
|
||||
linear_velocity = direction * speed
|
||||
bat_model.rotation.y = Vector3.MODEL_FRONT.signed_angle_to(direction, Vector3.UP)
|
||||
|
||||
var targets = hurt_box.get_overlapping_bodies()
|
||||
if not targets.is_empty():
|
||||
for t in targets:
|
||||
if t.has_method("hurt"):
|
||||
t.hurt(5*delta)
|
||||
1
mob/bat_mob.gd.uid
Normal file
1
mob/bat_mob.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://c0nx5q5ppfatt
|
||||
81
mob/bat_mob.tscn
Normal file
81
mob/bat_mob.tscn
Normal file
@@ -0,0 +1,81 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://3t7u0llrbbi"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://c0nx5q5ppfatt" path="res://mob/bat_mob.gd" id="1_0ebaf"]
|
||||
[ext_resource type="PackedScene" uid="uid://gvin6dmn1uk8" path="res://mob/bat_model.tscn" id="1_1xugm"]
|
||||
[ext_resource type="Texture2D" uid="uid://2qvp3lxbf3ae" path="res://mob/bat/bat_model_bat_palette.png" id="3_yuo4x"]
|
||||
[ext_resource type="AudioStream" uid="uid://cvge1n06euj5o" path="res://mob/mob_take_damage.wav" id="4_mjy8e"]
|
||||
[ext_resource type="AudioStream" uid="uid://hghb3bqm52oh" path="res://mob/mob_ko.wav" id="5_5et38"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_0ebaf"]
|
||||
height = 1.4
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_iwjed"]
|
||||
resource_local_to_scene = true
|
||||
resource_name = "bat_mat"
|
||||
cull_mode = 2
|
||||
albedo_texture = ExtResource("3_yuo4x")
|
||||
roughness = 0.427273
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_yuo4x"]
|
||||
height = 1.6
|
||||
|
||||
[node name="BatMob" type="RigidBody3D"]
|
||||
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 0)
|
||||
collision_layer = 2
|
||||
gravity_scale = 0.0
|
||||
script = ExtResource("1_0ebaf")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(-2.62268e-08, 0.6, 0, -0.6, -2.62268e-08, 0, 0, 0, 0.6, 0, 0, 0)
|
||||
shape = SubResource("CapsuleShape3D_0ebaf")
|
||||
|
||||
[node name="bat_model" parent="." instance=ExtResource("1_1xugm")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="Skeleton3D" parent="bat_model/Armature" index="0"]
|
||||
bones/0/position = Vector3(0, -0.0173995, 0)
|
||||
bones/1/rotation = Quaternion(0.0455521, 0.109607, -0.618641, 0.776656)
|
||||
bones/2/rotation = Quaternion(-0.129224, -0.0444413, 0.324096, 0.936102)
|
||||
bones/3/rotation = Quaternion(-0.201664, -0.00156411, 0.238139, 0.950063)
|
||||
bones/4/rotation = Quaternion(0.0455521, -0.109607, 0.618641, 0.776656)
|
||||
bones/5/rotation = Quaternion(-0.129224, 0.0444413, -0.324096, 0.936102)
|
||||
bones/6/rotation = Quaternion(-0.201664, 0.00156411, -0.238139, 0.950063)
|
||||
bones/7/position = Vector3(0.130992, -0.227392, -0.0878515)
|
||||
bones/7/rotation = Quaternion(0.261968, 0.0834552, 0.265751, 0.924005)
|
||||
bones/8/rotation = Quaternion(3.46134e-08, 0.550375, 0.834917, 2.3571e-08)
|
||||
bones/10/position = Vector3(-0.130992, -0.227392, -0.0878515)
|
||||
bones/10/rotation = Quaternion(0.261968, -0.0834552, -0.265751, 0.924005)
|
||||
bones/11/rotation = Quaternion(2.41321e-08, 0.550375, 0.834917, 3.92162e-08)
|
||||
|
||||
[node name="bat" parent="bat_model/Armature/Skeleton3D" index="0"]
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_iwjed")
|
||||
|
||||
[node name="CorpseTimer" type="Timer" parent="."]
|
||||
wait_time = 5.0
|
||||
one_shot = true
|
||||
|
||||
[node name="HurtSound" type="AudioStreamPlayer3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("4_mjy8e")
|
||||
volume_db = -20.0
|
||||
max_db = 1.0
|
||||
|
||||
[node name="DieSound" type="AudioStreamPlayer3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("5_5et38")
|
||||
volume_db = -20.0
|
||||
max_db = 1.0
|
||||
|
||||
[node name="HurtBox" type="Area3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
collision_layer = 0
|
||||
collision_mask = 4
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="HurtBox"]
|
||||
transform = Transform3D(0.45, -3.93403e-08, 3.93403e-08, 3.93403e-08, -1.96701e-08, -0.45, 3.93403e-08, 0.45, -1.96701e-08, -1.74846e-08, 0, 0.2)
|
||||
shape = SubResource("CapsuleShape3D_yuo4x")
|
||||
debug_color = Color(0.894118, 0.254902, 0.482353, 0.607843)
|
||||
|
||||
[connection signal="timeout" from="CorpseTimer" to="." method="_on_corpse_timer_timeout"]
|
||||
|
||||
[editable path="bat_model"]
|
||||
10
mob/bat_model.gd
Normal file
10
mob/bat_model.gd
Normal file
@@ -0,0 +1,10 @@
|
||||
extends Node3D
|
||||
|
||||
@onready var animation_tree: AnimationTree = %AnimationTree
|
||||
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||
|
||||
func hurt() -> void:
|
||||
animation_tree.set("parameters/OneShot/request", true)
|
||||
|
||||
func die() -> void:
|
||||
animation_player.pause()
|
||||
1
mob/bat_model.gd.uid
Normal file
1
mob/bat_model.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cgv01dthn7641
|
||||
223
mob/bat_model.tscn
Normal file
223
mob/bat_model.tscn
Normal file
@@ -0,0 +1,223 @@
|
||||
[gd_scene load_steps=13 format=3 uid="uid://gvin6dmn1uk8"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://hglc5k68m7d1" path="res://mob/bat/bat_model.glb" id="1_12yrx"]
|
||||
[ext_resource type="Script" uid="uid://cgv01dthn7641" path="res://mob/bat_model.gd" id="2_dmdl0"]
|
||||
[ext_resource type="Material" uid="uid://vxjmb87ocrs3" path="res://mob/bat/bat_mob_mat.tres" id="2_vofu1"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_0gbdx"]
|
||||
resource_name = "Idle"
|
||||
length = 1.33333
|
||||
loop_mode = 1
|
||||
tracks/0/type = "position_3d"
|
||||
tracks/0/imported = true
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Armature/Skeleton3D:body")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = PackedFloat32Array(0, 1, 0, -0.0074, 0, 0.0333333, 1, 0, -0.0142, 0, 0.0666667, 1, 0, -0.0198, 0, 0.1, 1, 0, -0.0236, 0, 0.166667, 1, 0, -0.0236, 0, 0.2, 1, 0, -0.0198, 0, 0.233333, 1, 0, -0.0142, 0, 0.266667, 1, 0, -0.0074, 0, 0.333333, 1, 0, 0.00739999, 0, 0.366667, 1, 0, 0.0142, 0, 0.4, 1, 0, 0.0198, 0, 0.433333, 1, 0, 0.0236, 0, 0.5, 1, 0, 0.0236, 0, 0.533333, 1, 0, 0.0198, 0, 0.566667, 1, 0, 0.0142, 0, 0.6, 1, 0, 0.00739999, 0, 0.666667, 1, 0, -0.0074, 0, 0.7, 1, 0, -0.0142, 0, 0.733333, 1, 0, -0.0198, 0, 0.766667, 1, 0, -0.0236, 0, 0.833333, 1, 0, -0.0236, 0, 0.866667, 1, 0, -0.0198, 0, 0.9, 1, 0, -0.0142, 0, 0.933333, 1, 0, -0.0074, 0, 1, 1, 0, 0.00739999, 0, 1.03333, 1, 0, 0.0142, 0, 1.06667, 1, 0, 0.0198, 0, 1.1, 1, 0, 0.0236, 0, 1.16667, 1, 0, 0.0236, 0, 1.2, 1, 0, 0.0198, 0, 1.23333, 1, 0, 0.0142, 0, 1.26667, 1, 0, 0.00739999, 0, 1.33333, 1, 0, -0.0074, 0)
|
||||
tracks/1/type = "rotation_3d"
|
||||
tracks/1/imported = true
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Armature/Skeleton3D:wing_1.L")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = PackedFloat32Array(0, 1, -0.0286549, 0.188485, -0.686718, 0.701478, 0.0333333, 1, -0.0506094, 0.208724, -0.677509, 0.703459, 0.0666667, 1, -0.0610847, 0.215431, -0.666256, 0.71131, 0.1, 1, -0.05709, 0.207045, -0.655256, 0.724233, 0.133333, 1, -0.0396006, 0.186493, -0.644631, 0.74034, 0.166667, 1, -0.0107812, 0.157663, -0.633842, 0.757147, 0.2, 1, 0.0267386, 0.12419, -0.622616, 0.772147, 0.266667, 1, 0.114195, 0.0556545, -0.600903, 0.789163, 0.3, 1, 0.155982, 0.0253652, -0.59312, 0.789452, 0.333333, 1, 0.190651, 6.60251e-05, -0.590026, 0.784552, 0.366667, 1, 0.213966, -0.0185891, -0.593371, 0.775747, 0.4, 1, 0.222174, -0.0279345, -0.602828, 0.765805, 0.433333, 1, 0.213282, -0.0252487, -0.61726, 0.756877, 0.466667, 1, 0.19033, -0.0110549, -0.634785, 0.7488, 0.5, 1, 0.157487, 0.0130927, -0.653025, 0.740665, 0.533333, 1, 0.118744, 0.045142, -0.669545, 0.731827, 0.6, 1, 0.0378164, 0.121276, -0.689637, 0.712925, 0.633333, 1, 0.001578, 0.158023, -0.691096, 0.705275, 0.666667, 1, -0.0286549, 0.188485, -0.686718, 0.701478, 0.7, 1, -0.0506094, 0.208724, -0.677509, 0.703459, 0.733333, 1, -0.0610847, 0.215431, -0.666256, 0.71131, 0.766667, 1, -0.05709, 0.207045, -0.655256, 0.724233, 0.8, 1, -0.0396006, 0.186493, -0.644631, 0.74034, 0.833333, 1, -0.0107812, 0.157663, -0.633842, 0.757147, 0.866667, 1, 0.0267386, 0.12419, -0.622616, 0.772147, 0.933333, 1, 0.114195, 0.0556545, -0.600903, 0.789163, 0.966667, 1, 0.155982, 0.0253652, -0.59312, 0.789452, 1, 1, 0.190651, 6.60251e-05, -0.590026, 0.784552, 1.03333, 1, 0.213966, -0.0185891, -0.593371, 0.775747, 1.06667, 1, 0.222174, -0.0279345, -0.602828, 0.765805, 1.1, 1, 0.213282, -0.0252487, -0.61726, 0.756877, 1.13333, 1, 0.19033, -0.0110549, -0.634785, 0.7488, 1.16667, 1, 0.157487, 0.0130927, -0.653025, 0.740665, 1.2, 1, 0.118744, 0.045142, -0.669545, 0.731827, 1.26667, 1, 0.0378164, 0.121276, -0.689637, 0.712925, 1.3, 1, 0.001578, 0.158023, -0.691096, 0.705275, 1.33333, 1, -0.0286549, 0.188485, -0.686718, 0.701478)
|
||||
tracks/2/type = "rotation_3d"
|
||||
tracks/2/imported = true
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Armature/Skeleton3D:wing_2.L")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = PackedFloat32Array(0, 1, -0.0560155, -0.016041, 0.274838, 0.959724, 0.0333333, 1, -0.107724, -0.0293087, 0.260889, 0.958892, 0.0666667, 1, -0.150109, -0.0400536, 0.254681, 0.954464, 0.1, 1, -0.178377, -0.0485314, 0.258005, 0.948293, 0.133333, 1, -0.188128, -0.0538743, 0.269983, 0.94277, 0.166667, 1, -0.176689, -0.0543572, 0.288976, 0.939318, 0.2, 1, -0.147367, -0.0491943, 0.312801, 0.937026, 0.233333, 1, -0.104947, -0.0380736, 0.338908, 0.934172, 0.266667, 1, -0.0542423, -0.0212793, 0.364585, 0.929345, 0.3, 1, 4.35922e-07, 2.55374e-07, 0.387197, 0.921997, 0.333333, 1, 0.0532716, 0.023607, 0.404457, 0.912699, 0.366667, 1, 0.101459, 0.0465808, 0.414628, 0.903117, 0.4, 1, 0.140874, 0.0655118, 0.416552, 0.895738, 0.433333, 1, 0.168002, 0.0771313, 0.410045, 0.893134, 0.466667, 1, 0.178911, 0.0792831, 0.397312, 0.896576, 0.5, 1, 0.170442, 0.0715782, 0.380524, 0.906106, 0.533333, 1, 0.14463, 0.056739, 0.360771, 0.919623, 0.566667, 1, 0.104948, 0.0380741, 0.338908, 0.934172, 0.6, 1, 0.0552696, 0.0184505, 0.316108, 0.946932, 0.633333, 1, 3.97739e-07, 2.93199e-07, 0.294044, 0.955792, 0.666667, 1, -0.0560155, -0.016041, 0.274838, 0.959724, 0.7, 1, -0.107724, -0.0293087, 0.260889, 0.958892, 0.733333, 1, -0.150109, -0.0400536, 0.254681, 0.954464, 0.766667, 1, -0.178377, -0.0485314, 0.258005, 0.948293, 0.8, 1, -0.188128, -0.0538743, 0.269983, 0.94277, 0.833333, 1, -0.176689, -0.0543572, 0.288976, 0.939318, 0.866667, 1, -0.147367, -0.0491943, 0.312801, 0.937026, 0.9, 1, -0.104947, -0.0380736, 0.338908, 0.934172, 0.933333, 1, -0.0542423, -0.0212793, 0.364585, 0.929345, 0.966667, 1, 4.35922e-07, 2.55374e-07, 0.387197, 0.921997, 1, 1, 0.0532716, 0.023607, 0.404457, 0.912699, 1.03333, 1, 0.101459, 0.0465808, 0.414628, 0.903117, 1.06667, 1, 0.140874, 0.0655118, 0.416552, 0.895738, 1.1, 1, 0.168002, 0.0771313, 0.410045, 0.893134, 1.13333, 1, 0.178911, 0.0792831, 0.397312, 0.896576, 1.16667, 1, 0.170442, 0.0715782, 0.380524, 0.906106, 1.2, 1, 0.14463, 0.056739, 0.360771, 0.919623, 1.23333, 1, 0.104948, 0.0380741, 0.338908, 0.934172, 1.26667, 1, 0.0552696, 0.0184505, 0.316108, 0.946932, 1.3, 1, 3.97739e-07, 2.93199e-07, 0.294044, 0.955792, 1.33333, 1, -0.0560155, -0.016041, 0.274838, 0.959723)
|
||||
tracks/3/type = "rotation_3d"
|
||||
tracks/3/imported = true
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Armature/Skeleton3D:wing_3.L")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = PackedFloat32Array(0, 1, 0.0412136, 0.059985, 0.264753, 0.961566, 0.0333333, 1, -0.0159354, 0.0440908, 0.244883, 0.968419, 0.0666667, 1, -0.073461, 0.0305335, 0.228073, 0.970389, 0.1, 1, -0.126218, 0.0194948, 0.21651, 0.967891, 0.133333, 1, -0.169154, 0.0105836, 0.212432, 0.962366, 0.166667, 1, -0.197486, 0.00342183, 0.217359, 0.955899, 0.2, 1, -0.20688, -0.00128304, 0.230104, 0.950921, 0.233333, 1, -0.194684, -0.00193852, 0.248813, 0.948782, 0.266667, 1, -0.164213, 0.00231133, 0.271453, 0.948336, 0.3, 1, -0.120273, 0.011884, 0.29574, 0.947592, 0.333333, 1, -0.0677396, 0.0266105, 0.319228, 0.944879, 0.366667, 1, -0.0114933, 0.0454515, 0.339527, 0.939427, 0.4, 1, 0.0437561, 0.0664394, 0.354556, 0.931645, 0.433333, 1, 0.0936447, 0.086843, 0.362736, 0.923099, 0.466667, 1, 0.134205, 0.103508, 0.36302, 0.916238, 0.5, 1, 0.161688, 0.113444, 0.355316, 0.91364, 0.533333, 1, 0.172105, 0.114807, 0.34197, 0.916655, 0.566667, 1, 0.162369, 0.107434, 0.325273, 0.925361, 0.6, 1, 0.134745, 0.0938879, 0.306267, 0.937672, 0.633333, 1, 0.0929822, 0.077208, 0.285731, 0.950658, 0.666667, 1, 0.0412136, 0.059985, 0.264753, 0.961566, 0.7, 1, -0.0159354, 0.0440908, 0.244883, 0.968419, 0.733333, 1, -0.073461, 0.0305335, 0.228073, 0.970389, 0.766667, 1, -0.126218, 0.0194948, 0.21651, 0.967891, 0.8, 1, -0.169154, 0.0105836, 0.212432, 0.962366, 0.833333, 1, -0.197486, 0.00342183, 0.217359, 0.955899, 0.866667, 1, -0.20688, -0.00128304, 0.230104, 0.950921, 0.9, 1, -0.194684, -0.00193852, 0.248813, 0.948782, 0.933333, 1, -0.164213, 0.00231133, 0.271453, 0.948336, 0.966667, 1, -0.120273, 0.011884, 0.29574, 0.947592, 1, 1, -0.0677396, 0.0266105, 0.319228, 0.944879, 1.03333, 1, -0.0114933, 0.0454515, 0.339527, 0.939427, 1.06667, 1, 0.0437561, 0.0664394, 0.354556, 0.931645, 1.1, 1, 0.0936447, 0.086843, 0.362736, 0.923099, 1.13333, 1, 0.134205, 0.103508, 0.36302, 0.916238, 1.16667, 1, 0.161688, 0.113444, 0.355316, 0.91364, 1.2, 1, 0.172105, 0.114807, 0.34197, 0.916655, 1.23333, 1, 0.162369, 0.107434, 0.325273, 0.925361, 1.26667, 1, 0.134745, 0.0938879, 0.306267, 0.937672, 1.3, 1, 0.0929822, 0.077208, 0.285731, 0.950658, 1.33333, 1, 0.0412136, 0.059985, 0.264753, 0.961566)
|
||||
tracks/4/type = "rotation_3d"
|
||||
tracks/4/imported = true
|
||||
tracks/4/enabled = true
|
||||
tracks/4/path = NodePath("Armature/Skeleton3D:wing_1.R")
|
||||
tracks/4/interp = 1
|
||||
tracks/4/loop_wrap = true
|
||||
tracks/4/keys = PackedFloat32Array(0, 1, -0.0286549, -0.188485, 0.686718, 0.701478, 0.0333333, 1, -0.0506094, -0.208724, 0.677509, 0.703459, 0.0666667, 1, -0.0610847, -0.215431, 0.666256, 0.71131, 0.1, 1, -0.05709, -0.207045, 0.655256, 0.724233, 0.133333, 1, -0.0396006, -0.186493, 0.644631, 0.74034, 0.166667, 1, -0.0107812, -0.157663, 0.633842, 0.757147, 0.2, 1, 0.0267386, -0.12419, 0.622616, 0.772147, 0.266667, 1, 0.114195, -0.0556545, 0.600903, 0.789163, 0.3, 1, 0.155982, -0.0253652, 0.59312, 0.789452, 0.333333, 1, 0.190651, -6.60251e-05, 0.590026, 0.784552, 0.366667, 1, 0.213966, 0.0185891, 0.593371, 0.775747, 0.4, 1, 0.222174, 0.0279345, 0.602828, 0.765805, 0.433333, 1, 0.213282, 0.0252487, 0.61726, 0.756877, 0.466667, 1, 0.19033, 0.0110549, 0.634785, 0.7488, 0.5, 1, 0.157487, -0.0130927, 0.653025, 0.740665, 0.533333, 1, 0.118744, -0.045142, 0.669545, 0.731827, 0.6, 1, 0.0378164, -0.121276, 0.689637, 0.712925, 0.633333, 1, 0.001578, -0.158023, 0.691096, 0.705275, 0.666667, 1, -0.0286549, -0.188485, 0.686718, 0.701478, 0.7, 1, -0.0506094, -0.208724, 0.677509, 0.703459, 0.733333, 1, -0.0610847, -0.215431, 0.666256, 0.71131, 0.766667, 1, -0.05709, -0.207045, 0.655256, 0.724233, 0.8, 1, -0.0396006, -0.186493, 0.644631, 0.74034, 0.833333, 1, -0.0107812, -0.157663, 0.633842, 0.757147, 0.866667, 1, 0.0267386, -0.12419, 0.622616, 0.772147, 0.933333, 1, 0.114195, -0.0556545, 0.600903, 0.789163, 0.966667, 1, 0.155982, -0.0253652, 0.59312, 0.789452, 1, 1, 0.190651, -6.60251e-05, 0.590026, 0.784552, 1.03333, 1, 0.213966, 0.0185891, 0.593371, 0.775747, 1.06667, 1, 0.222174, 0.0279345, 0.602828, 0.765805, 1.1, 1, 0.213282, 0.0252487, 0.61726, 0.756877, 1.13333, 1, 0.19033, 0.0110549, 0.634785, 0.7488, 1.16667, 1, 0.157487, -0.0130927, 0.653025, 0.740665, 1.2, 1, 0.118744, -0.045142, 0.669545, 0.731827, 1.26667, 1, 0.0378164, -0.121276, 0.689637, 0.712925, 1.3, 1, 0.001578, -0.158023, 0.691096, 0.705275, 1.33333, 1, -0.0286549, -0.188485, 0.686718, 0.701478)
|
||||
tracks/5/type = "rotation_3d"
|
||||
tracks/5/imported = true
|
||||
tracks/5/enabled = true
|
||||
tracks/5/path = NodePath("Armature/Skeleton3D:wing_2.R")
|
||||
tracks/5/interp = 1
|
||||
tracks/5/loop_wrap = true
|
||||
tracks/5/keys = PackedFloat32Array(0, 1, -0.0560155, 0.016041, -0.274838, 0.959724, 0.0333333, 1, -0.107724, 0.0293087, -0.260889, 0.958892, 0.0666667, 1, -0.150109, 0.0400536, -0.254681, 0.954464, 0.1, 1, -0.178377, 0.0485314, -0.258005, 0.948293, 0.133333, 1, -0.188128, 0.0538743, -0.269983, 0.94277, 0.166667, 1, -0.176689, 0.0543572, -0.288976, 0.939318, 0.2, 1, -0.147367, 0.0491943, -0.312801, 0.937026, 0.233333, 1, -0.104947, 0.0380736, -0.338908, 0.934172, 0.266667, 1, -0.0542423, 0.0212793, -0.364585, 0.929345, 0.3, 1, 4.35922e-07, -2.55374e-07, -0.387197, 0.921997, 0.333333, 1, 0.0532716, -0.023607, -0.404457, 0.912699, 0.366667, 1, 0.101459, -0.0465808, -0.414628, 0.903117, 0.4, 1, 0.140874, -0.0655118, -0.416552, 0.895738, 0.433333, 1, 0.168002, -0.0771313, -0.410045, 0.893134, 0.466667, 1, 0.178911, -0.0792831, -0.397312, 0.896576, 0.5, 1, 0.170442, -0.0715782, -0.380524, 0.906106, 0.533333, 1, 0.14463, -0.056739, -0.360771, 0.919623, 0.566667, 1, 0.104948, -0.0380741, -0.338908, 0.934172, 0.6, 1, 0.0552696, -0.0184505, -0.316108, 0.946932, 0.633333, 1, 3.97739e-07, -2.93199e-07, -0.294044, 0.955792, 0.666667, 1, -0.0560155, 0.016041, -0.274838, 0.959724, 0.7, 1, -0.107724, 0.0293087, -0.260889, 0.958892, 0.733333, 1, -0.150109, 0.0400536, -0.254681, 0.954464, 0.766667, 1, -0.178377, 0.0485314, -0.258005, 0.948293, 0.8, 1, -0.188128, 0.0538743, -0.269983, 0.94277, 0.833333, 1, -0.176689, 0.0543572, -0.288976, 0.939318, 0.866667, 1, -0.147367, 0.0491943, -0.312801, 0.937026, 0.9, 1, -0.104947, 0.0380736, -0.338908, 0.934172, 0.933333, 1, -0.0542423, 0.0212793, -0.364585, 0.929345, 0.966667, 1, 4.35922e-07, -2.55374e-07, -0.387197, 0.921997, 1, 1, 0.0532716, -0.023607, -0.404457, 0.912699, 1.03333, 1, 0.101459, -0.0465808, -0.414628, 0.903117, 1.06667, 1, 0.140874, -0.0655118, -0.416552, 0.895738, 1.1, 1, 0.168002, -0.0771313, -0.410045, 0.893134, 1.13333, 1, 0.178911, -0.0792831, -0.397312, 0.896576, 1.16667, 1, 0.170442, -0.0715782, -0.380524, 0.906106, 1.2, 1, 0.14463, -0.056739, -0.360771, 0.919623, 1.23333, 1, 0.104948, -0.0380741, -0.338908, 0.934172, 1.26667, 1, 0.0552696, -0.0184505, -0.316108, 0.946932, 1.3, 1, 3.97739e-07, -2.93199e-07, -0.294044, 0.955792, 1.33333, 1, -0.0560155, 0.016041, -0.274838, 0.959723)
|
||||
tracks/6/type = "rotation_3d"
|
||||
tracks/6/imported = true
|
||||
tracks/6/enabled = true
|
||||
tracks/6/path = NodePath("Armature/Skeleton3D:wing_3.R")
|
||||
tracks/6/interp = 1
|
||||
tracks/6/loop_wrap = true
|
||||
tracks/6/keys = PackedFloat32Array(0, 1, 0.0412136, -0.059985, -0.264753, 0.961566, 0.0333333, 1, -0.0159354, -0.0440908, -0.244883, 0.968419, 0.0666667, 1, -0.073461, -0.0305335, -0.228073, 0.970389, 0.1, 1, -0.126218, -0.0194948, -0.21651, 0.967891, 0.133333, 1, -0.169154, -0.0105836, -0.212432, 0.962366, 0.166667, 1, -0.197486, -0.00342183, -0.217359, 0.955899, 0.2, 1, -0.20688, 0.00128304, -0.230104, 0.950921, 0.233333, 1, -0.194684, 0.00193852, -0.248813, 0.948782, 0.266667, 1, -0.164213, -0.00231133, -0.271453, 0.948336, 0.3, 1, -0.120273, -0.011884, -0.29574, 0.947592, 0.333333, 1, -0.0677396, -0.0266105, -0.319228, 0.944879, 0.366667, 1, -0.0114933, -0.0454515, -0.339527, 0.939427, 0.4, 1, 0.0437561, -0.0664394, -0.354556, 0.931645, 0.433333, 1, 0.0936447, -0.086843, -0.362736, 0.923099, 0.466667, 1, 0.134205, -0.103508, -0.36302, 0.916238, 0.5, 1, 0.161688, -0.113444, -0.355316, 0.91364, 0.533333, 1, 0.172105, -0.114807, -0.34197, 0.916655, 0.566667, 1, 0.162369, -0.107434, -0.325273, 0.925361, 0.6, 1, 0.134745, -0.0938879, -0.306267, 0.937672, 0.633333, 1, 0.0929822, -0.077208, -0.285731, 0.950658, 0.666667, 1, 0.0412136, -0.059985, -0.264753, 0.961566, 0.7, 1, -0.0159354, -0.0440908, -0.244883, 0.968419, 0.733333, 1, -0.073461, -0.0305335, -0.228073, 0.970389, 0.766667, 1, -0.126218, -0.0194948, -0.21651, 0.967891, 0.8, 1, -0.169154, -0.0105836, -0.212432, 0.962366, 0.833333, 1, -0.197486, -0.00342183, -0.217359, 0.955899, 0.866667, 1, -0.20688, 0.00128304, -0.230104, 0.950921, 0.9, 1, -0.194684, 0.00193852, -0.248813, 0.948782, 0.933333, 1, -0.164213, -0.00231133, -0.271453, 0.948336, 0.966667, 1, -0.120273, -0.011884, -0.29574, 0.947592, 1, 1, -0.0677396, -0.0266105, -0.319228, 0.944879, 1.03333, 1, -0.0114933, -0.0454515, -0.339527, 0.939427, 1.06667, 1, 0.0437561, -0.0664394, -0.354556, 0.931645, 1.1, 1, 0.0936447, -0.086843, -0.362736, 0.923099, 1.13333, 1, 0.134205, -0.103508, -0.36302, 0.916238, 1.16667, 1, 0.161688, -0.113444, -0.355316, 0.91364, 1.2, 1, 0.172105, -0.114807, -0.34197, 0.916655, 1.23333, 1, 0.162369, -0.107434, -0.325273, 0.925361, 1.26667, 1, 0.134745, -0.0938879, -0.306267, 0.937672, 1.3, 1, 0.0929822, -0.077208, -0.285731, 0.950658, 1.33333, 1, 0.0412136, -0.059985, -0.264753, 0.961566)
|
||||
tracks/7/type = "position_3d"
|
||||
tracks/7/imported = true
|
||||
tracks/7/enabled = true
|
||||
tracks/7/path = NodePath("Armature/Skeleton3D:foot.L")
|
||||
tracks/7/interp = 1
|
||||
tracks/7/loop_wrap = true
|
||||
tracks/7/keys = PackedFloat32Array(0, 1, 0.130992, -0.227392, -0.0878515)
|
||||
tracks/8/type = "rotation_3d"
|
||||
tracks/8/imported = true
|
||||
tracks/8/enabled = true
|
||||
tracks/8/path = NodePath("Armature/Skeleton3D:foot.L")
|
||||
tracks/8/interp = 1
|
||||
tracks/8/loop_wrap = true
|
||||
tracks/8/keys = PackedFloat32Array(0, 1, 0.261968, 0.0834551, 0.265751, 0.924004)
|
||||
tracks/9/type = "rotation_3d"
|
||||
tracks/9/imported = true
|
||||
tracks/9/enabled = true
|
||||
tracks/9/path = NodePath("Armature/Skeleton3D:foot_2.L")
|
||||
tracks/9/interp = 1
|
||||
tracks/9/loop_wrap = true
|
||||
tracks/9/keys = PackedFloat32Array(0, 1, 3.84334e-08, 0.690882, 0.722967, 1.64515e-08, 0.0333333, 1, 3.55166e-08, 0.673012, 0.739631, 2.06281e-08, 0.0666667, 1, 4.017e-08, 0.650774, 0.759271, 2.5428e-08, 0.133333, 1, 3.47263e-08, 0.60042, 0.799685, 2.08202e-08, 0.166667, 1, 3.25479e-08, 0.576432, 0.817145, 1.90111e-08, 0.2, 1, 3.92535e-08, 0.556296, 0.830985, 2.60857e-08, 0.233333, 1, 2.84263e-08, 0.542441, 0.840094, 2.02176e-08, 0.3, 1, 2.84263e-08, 0.542441, 0.840094, 2.02176e-08, 0.333333, 1, 3.40507e-08, 0.556296, 0.830985, 2.08829e-08, 0.366667, 1, 3.25479e-08, 0.576432, 0.817145, 1.90111e-08, 0.4, 1, 1.85956e-08, 0.60042, 0.799685, 2.6308e-08, 0.466667, 1, 4.017e-08, 0.650774, 0.759271, 2.5428e-08, 0.5, 1, 3.55166e-08, 0.673012, 0.739631, 2.06281e-08, 0.533333, 1, 3.33283e-08, 0.690882, 0.722967, 2.18859e-08, 0.566667, 1, 3.86219e-08, 0.702774, 0.711413, 2.28649e-08, 0.633333, 1, 3.82926e-08, 0.702774, 0.711413, 2.25356e-08, 0.666667, 1, 3.84334e-08, 0.690882, 0.722967, 1.64515e-08, 0.7, 1, 3.55166e-08, 0.673012, 0.739631, 2.06281e-08, 0.733333, 1, 4.017e-08, 0.650774, 0.759271, 2.5428e-08, 0.8, 1, 3.47263e-08, 0.60042, 0.799685, 2.08202e-08, 0.833333, 1, 3.25479e-08, 0.576432, 0.817145, 1.90111e-08, 0.866667, 1, 3.92535e-08, 0.556296, 0.830985, 2.60857e-08, 0.9, 1, 2.84263e-08, 0.542441, 0.840094, 2.02176e-08, 0.966667, 1, 2.84263e-08, 0.542441, 0.840094, 2.02176e-08, 1, 1, 3.40507e-08, 0.556296, 0.830985, 2.08829e-08, 1.03333, 1, 3.25479e-08, 0.576432, 0.817145, 1.90111e-08, 1.06667, 1, 1.85956e-08, 0.60042, 0.799685, 2.6308e-08, 1.13333, 1, 4.017e-08, 0.650774, 0.759271, 2.5428e-08, 1.16667, 1, 3.55166e-08, 0.673012, 0.739631, 2.06281e-08, 1.2, 1, 3.33283e-08, 0.690882, 0.722967, 2.18859e-08, 1.23333, 1, 3.86219e-08, 0.702774, 0.711413, 2.28649e-08, 1.3, 1, 3.82926e-08, 0.702774, 0.711413, 2.25356e-08, 1.33333, 1, 3.84334e-08, 0.690882, 0.722967, 1.64515e-08)
|
||||
tracks/10/type = "position_3d"
|
||||
tracks/10/imported = true
|
||||
tracks/10/enabled = true
|
||||
tracks/10/path = NodePath("Armature/Skeleton3D:foot.R")
|
||||
tracks/10/interp = 1
|
||||
tracks/10/loop_wrap = true
|
||||
tracks/10/keys = PackedFloat32Array(0, 1, -0.130992, -0.227392, -0.0878515)
|
||||
tracks/11/type = "rotation_3d"
|
||||
tracks/11/imported = true
|
||||
tracks/11/enabled = true
|
||||
tracks/11/path = NodePath("Armature/Skeleton3D:foot.R")
|
||||
tracks/11/interp = 1
|
||||
tracks/11/loop_wrap = true
|
||||
tracks/11/keys = PackedFloat32Array(0, 1, 0.261968, -0.0834551, -0.265751, 0.924004)
|
||||
tracks/12/type = "rotation_3d"
|
||||
tracks/12/imported = true
|
||||
tracks/12/enabled = true
|
||||
tracks/12/path = NodePath("Armature/Skeleton3D:foot_2.R")
|
||||
tracks/12/interp = 1
|
||||
tracks/12/loop_wrap = true
|
||||
tracks/12/keys = PackedFloat32Array(0, 1, 2.54238e-08, 0.690882, 0.722967, 3.63776e-08, 0.0333333, 1, 2.11774e-08, 0.673013, 0.739631, 4.78233e-08, 0.0666667, 1, 2.49787e-08, 0.650774, 0.759271, 3.23632e-08, 0.133333, 1, 3.67218e-08, 0.60042, 0.799685, 4.70949e-08, 0.166667, 1, 2.63662e-08, 0.576432, 0.817145, 4.85832e-08, 0.2, 1, 2.33095e-08, 0.556296, 0.830984, 3.56522e-08, 0.233333, 1, 2.52265e-08, 0.542441, 0.840094, 4.39632e-08, 0.3, 1, 2.52265e-08, 0.542441, 0.840094, 4.39632e-08, 0.333333, 1, 2.31416e-08, 0.556296, 0.830984, 3.54843e-08, 0.366667, 1, 2.63662e-08, 0.576432, 0.817145, 4.85832e-08, 0.4, 1, 3.15666e-08, 0.60042, 0.799685, 3.09642e-08, 0.466667, 1, 2.49787e-08, 0.650774, 0.759271, 3.23632e-08, 0.5, 1, 2.11774e-08, 0.673013, 0.739631, 4.78233e-08, 0.533333, 1, 2.52591e-08, 0.690882, 0.722967, 3.62129e-08, 0.566667, 1, 2.11702e-08, 0.702774, 0.711413, 3.50482e-08, 0.633333, 1, 2.14994e-08, 0.702774, 0.711413, 3.53775e-08, 0.666667, 1, 2.54238e-08, 0.690882, 0.722967, 3.63776e-08, 0.7, 1, 2.11774e-08, 0.673013, 0.739631, 4.78233e-08, 0.733333, 1, 2.49787e-08, 0.650774, 0.759271, 3.23632e-08, 0.8, 1, 3.67218e-08, 0.60042, 0.799685, 4.70949e-08, 0.833333, 1, 2.63662e-08, 0.576432, 0.817145, 4.85832e-08, 0.866667, 1, 2.33095e-08, 0.556296, 0.830984, 3.56522e-08, 0.9, 1, 2.52265e-08, 0.542441, 0.840094, 4.39632e-08, 0.966667, 1, 2.52265e-08, 0.542441, 0.840094, 4.39632e-08, 1, 1, 2.31416e-08, 0.556296, 0.830984, 3.54843e-08, 1.03333, 1, 2.63662e-08, 0.576432, 0.817145, 4.85832e-08, 1.06667, 1, 3.15666e-08, 0.60042, 0.799685, 3.09642e-08, 1.13333, 1, 2.49787e-08, 0.650774, 0.759271, 3.23632e-08, 1.16667, 1, 2.11774e-08, 0.673013, 0.739631, 4.78233e-08, 1.2, 1, 2.52591e-08, 0.690882, 0.722967, 3.62129e-08, 1.23333, 1, 2.11702e-08, 0.702774, 0.711413, 3.50482e-08, 1.3, 1, 2.14994e-08, 0.702774, 0.711413, 3.53775e-08, 1.33333, 1, 2.54238e-08, 0.690882, 0.722967, 3.63776e-08)
|
||||
|
||||
[sub_resource type="Animation" id="Animation_dmdl0"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Armature/Skeleton3D/bat:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Armature/Skeleton3D/bat:surface_material_override/0:albedo_color")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_2h6wp"]
|
||||
_data = {
|
||||
&"Idle": SubResource("Animation_0gbdx"),
|
||||
&"RESET": SubResource("Animation_dmdl0")
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_xl0h5"]
|
||||
length = 0.2
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Armature/Skeleton3D/bat:scale")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(1, 1, 1), Vector3(1.3, 1.3, 1.3), Vector3(1, 1, 1)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Armature/Skeleton3D/bat:surface_material_override/0:albedo_color")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.199951),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(1, 1, 1, 1), Color(0.843431, 0.0363174, 0.22484, 1), Color(1, 1, 1, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_xjlni"]
|
||||
_data = {
|
||||
&"hurt": SubResource("Animation_xl0h5")
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_1xugm"]
|
||||
animation = &"Idle"
|
||||
|
||||
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_0ebaf"]
|
||||
animation = &"GodotBatMob/hurt"
|
||||
|
||||
[sub_resource type="AnimationNodeOneShot" id="AnimationNodeOneShot_a7d3o"]
|
||||
mix_mode = 1
|
||||
|
||||
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_xl0h5"]
|
||||
graph_offset = Vector2(-446.039, -41.214)
|
||||
"nodes/Idle Loop/node" = SubResource("AnimationNodeAnimation_1xugm")
|
||||
"nodes/Idle Loop/position" = Vector2(200, 60)
|
||||
"nodes/Mob Hurt/node" = SubResource("AnimationNodeAnimation_0ebaf")
|
||||
"nodes/Mob Hurt/position" = Vector2(200, 240)
|
||||
nodes/OneShot/node = SubResource("AnimationNodeOneShot_a7d3o")
|
||||
nodes/OneShot/position = Vector2(440, 20)
|
||||
nodes/output/position = Vector2(640, 160)
|
||||
node_connections = [&"OneShot", 0, &"Idle Loop", &"OneShot", 1, &"Mob Hurt", &"output", 0, &"OneShot"]
|
||||
|
||||
[node name="bat_model" instance=ExtResource("1_12yrx")]
|
||||
script = ExtResource("2_dmdl0")
|
||||
|
||||
[node name="Skeleton3D" parent="Armature" index="0"]
|
||||
bones/0/position = Vector3(0, -0.0172648, 0)
|
||||
bones/1/rotation = Quaternion(0.0466063, 0.108788, -0.618407, 0.776895)
|
||||
bones/2/rotation = Quaternion(-0.128204, -0.0441741, 0.324725, 0.936037)
|
||||
bones/3/rotation = Quaternion(-0.201371, -0.00157988, 0.238589, 0.950012)
|
||||
bones/4/rotation = Quaternion(0.0466063, -0.108788, 0.618407, 0.776895)
|
||||
bones/5/rotation = Quaternion(-0.128204, 0.0441741, -0.324725, 0.936037)
|
||||
bones/6/rotation = Quaternion(-0.201371, 0.00157988, -0.238589, 0.950012)
|
||||
bones/7/position = Vector3(0.130992, -0.227392, -0.0878515)
|
||||
bones/7/rotation = Quaternion(0.261968, 0.0834552, 0.265751, 0.924005)
|
||||
bones/8/rotation = Quaternion(3.43531e-08, 0.550042, 0.835137, 2.34299e-08)
|
||||
bones/10/position = Vector3(-0.130992, -0.227392, -0.0878515)
|
||||
bones/10/rotation = Quaternion(0.261968, -0.0834552, -0.265751, 0.924005)
|
||||
bones/11/rotation = Quaternion(2.41782e-08, 0.550043, 0.835137, 3.9416e-08)
|
||||
|
||||
[node name="bat" parent="Armature/Skeleton3D" index="0"]
|
||||
surface_material_override/0 = ExtResource("2_vofu1")
|
||||
|
||||
[node name="AnimationPlayer" parent="." index="1"]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_2h6wp"),
|
||||
&"GodotBatMob": SubResource("AnimationLibrary_xjlni")
|
||||
}
|
||||
autoplay = "Idle"
|
||||
|
||||
[node name="AnimationTree" type="AnimationTree" parent="." index="2"]
|
||||
unique_name_in_owner = true
|
||||
root_node = NodePath("%AnimationTree/..")
|
||||
tree_root = SubResource("AnimationNodeBlendTree_xl0h5")
|
||||
anim_player = NodePath("../AnimationPlayer")
|
||||
parameters/OneShot/active = false
|
||||
parameters/OneShot/internal_active = false
|
||||
parameters/OneShot/request = 0
|
||||
BIN
mob/gun_shoot.wav
Normal file
BIN
mob/gun_shoot.wav
Normal file
Binary file not shown.
24
mob/gun_shoot.wav.import
Normal file
24
mob/gun_shoot.wav.import
Normal file
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cmavoyb45x73f"
|
||||
path="res://.godot/imported/gun_shoot.wav-f8b83b393a231b2e7b3abfb1a84846ed.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://mob/gun_shoot.wav"
|
||||
dest_files=["res://.godot/imported/gun_shoot.wav-f8b83b393a231b2e7b3abfb1a84846ed.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
BIN
mob/mob_ko.wav
Normal file
BIN
mob/mob_ko.wav
Normal file
Binary file not shown.
24
mob/mob_ko.wav.import
Normal file
24
mob/mob_ko.wav.import
Normal file
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://hghb3bqm52oh"
|
||||
path="res://.godot/imported/mob_ko.wav-a84710604b4b98be9d6d7dfe1978d9ee.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://mob/mob_ko.wav"
|
||||
dest_files=["res://.godot/imported/mob_ko.wav-a84710604b4b98be9d6d7dfe1978d9ee.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
BIN
mob/mob_take_damage.wav
Normal file
BIN
mob/mob_take_damage.wav
Normal file
Binary file not shown.
24
mob/mob_take_damage.wav.import
Normal file
24
mob/mob_take_damage.wav.import
Normal file
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://cvge1n06euj5o"
|
||||
path="res://.godot/imported/mob_take_damage.wav-1cdfbd77e9c3f3326daadc27788f65ff.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://mob/mob_take_damage.wav"
|
||||
dest_files=["res://.godot/imported/mob_take_damage.wav-1cdfbd77e9c3f3326daadc27788f65ff.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
70
mob/player.tscn
Normal file
70
mob/player.tscn
Normal file
@@ -0,0 +1,70 @@
|
||||
[gd_scene load_steps=8 format=3 uid="uid://h8tyroiwkr42"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://l1gxoouxv4bc" path="res://player/player.gd" id="1_rkbax"]
|
||||
[ext_resource type="PackedScene" uid="uid://dkb2mu7n4t308" path="res://player/gun_model.tscn" id="3_8441p"]
|
||||
[ext_resource type="Texture2D" uid="uid://daxb87ykphjeh" path="res://player/reticle.png" id="3_g1dw6"]
|
||||
[ext_resource type="AudioStream" uid="uid://cmavoyb45x73f" path="res://mob/gun_shoot.wav" id="4_th40c"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_kqu6x"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_th40c"]
|
||||
bg_color = Color(0.223529, 0.223529, 0.223529, 0.729412)
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8441p"]
|
||||
bg_color = Color(0.179649, 0.626318, 0.30983, 1)
|
||||
|
||||
[node name="Player" type="CharacterBody3D"]
|
||||
collision_layer = 5
|
||||
collision_mask = 3
|
||||
script = ExtResource("1_rkbax")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
|
||||
shape = SubResource("CapsuleShape3D_kqu6x")
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.51802, 0)
|
||||
|
||||
[node name="gun_model" parent="Camera3D" instance=ExtResource("3_8441p")]
|
||||
transform = Transform3D(-0.399518, 0.00318013, -0.0193816, 0.000692473, 0.396757, 0.0508259, 0.0196285, 0.050731, -0.396284, 0.493558, -0.233074, -0.568753)
|
||||
|
||||
[node name="Marker3D" type="Marker3D" parent="Camera3D/gun_model"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-0.999988, 0.00484524, 0.000349712, 0.00485513, 0.994434, 0.105259, 0.000162303, 0.10526, -0.994445, 0.0103973, 0.00791597, 0.639051)
|
||||
|
||||
[node name="ShootTimer" type="Timer" parent="Camera3D/gun_model"]
|
||||
wait_time = 0.2
|
||||
|
||||
[node name="Reticle" type="TextureRect" parent="."]
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -23.0
|
||||
offset_top = -23.0
|
||||
offset_right = 23.0
|
||||
offset_bottom = 23.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("3_g1dw6")
|
||||
expand_mode = 1
|
||||
|
||||
[node name="HealthBar" type="ProgressBar" parent="."]
|
||||
unique_name_in_owner = true
|
||||
offset_left = 30.0
|
||||
offset_top = 30.0
|
||||
offset_right = 280.0
|
||||
offset_bottom = 50.0
|
||||
theme_override_styles/background = SubResource("StyleBoxFlat_th40c")
|
||||
theme_override_styles/fill = SubResource("StyleBoxFlat_8441p")
|
||||
value = 50.0
|
||||
rounded = true
|
||||
show_percentage = false
|
||||
|
||||
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("4_th40c")
|
||||
volume_db = -5.0
|
||||
|
||||
[connection signal="timeout" from="Camera3D/gun_model/ShootTimer" to="." method="_on_shoot_timer_timeout"]
|
||||
70
mob/smoke_puff/material/inner_smoke.gdshader
Normal file
70
mob/smoke_puff/material/inner_smoke.gdshader
Normal file
@@ -0,0 +1,70 @@
|
||||
shader_type spatial;
|
||||
render_mode shadows_disabled, cull_back;
|
||||
|
||||
uniform vec3 albedo : source_color;
|
||||
|
||||
varying float voronoi_value;
|
||||
|
||||
uniform float progress = 0.0;
|
||||
uniform float smoothness = 0.01;
|
||||
|
||||
uniform float ease = 2.0;
|
||||
uniform float base_scale = 1.0;
|
||||
uniform float deformation_scale = 1.0;
|
||||
|
||||
uniform float texture_offset = 0.0;
|
||||
|
||||
uniform float fresnel_offset = 1.0;
|
||||
uniform float global_alpha = 1.0;
|
||||
|
||||
// Voronoi method credit:
|
||||
// The MIT License
|
||||
// Copyright © 2013 Inigo Quilez
|
||||
// https://www.shadertoy.com/view/ldl3Dl
|
||||
|
||||
vec3 hash( vec3 x ){
|
||||
x = vec3( dot(x,vec3(127.1,311.7, 74.7)),
|
||||
dot(x,vec3(269.5,183.3,246.1)),
|
||||
dot(x,vec3(113.5,271.9,124.6)));
|
||||
return fract(sin(x)*43758.5453123);
|
||||
}
|
||||
|
||||
vec3 voronoi( in vec3 x ){
|
||||
vec3 p = floor( x );
|
||||
vec3 f = fract( x );
|
||||
|
||||
float id = 0.0;
|
||||
vec2 res = vec2( 100.0 );
|
||||
for( int k=-1; k<=1; k++ )
|
||||
for( int j=-1; j<=1; j++ )
|
||||
for( int i=-1; i<=1; i++ ) {
|
||||
vec3 b = vec3( float(i), float(j), float(k) );
|
||||
vec3 r = vec3( b ) - f + hash( p + b );
|
||||
float d = dot( r, r );
|
||||
if( d < res.x ) {
|
||||
id = dot( p+b, vec3(1.0,57.0,113.0 ) );
|
||||
res = vec2( d, res.x );
|
||||
} else if( d < res.y ) {
|
||||
res.y = d;
|
||||
}
|
||||
}
|
||||
return vec3( sqrt( res ), abs(id) );
|
||||
}
|
||||
|
||||
float fresnel(vec3 normal, vec3 view, float amount){
|
||||
return pow(1.0 - clamp(dot(normal, view), 0.0, 1.0), amount);
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
float smooth_df = deformation_scale;
|
||||
voronoi_value = voronoi(VERTEX + texture_offset).x;
|
||||
VERTEX += NORMAL * (1.0 - pow(voronoi_value, ease)) * smooth_df;
|
||||
VERTEX *= base_scale;
|
||||
}
|
||||
|
||||
void fragment(){
|
||||
ALBEDO = albedo;
|
||||
EMISSION = albedo * 0.5;
|
||||
ALPHA = 1.0 - fresnel(NORMAL, VIEW, 2.0 * fresnel_offset);
|
||||
ALPHA *= global_alpha;
|
||||
}
|
||||
1
mob/smoke_puff/material/inner_smoke.gdshader.uid
Normal file
1
mob/smoke_puff/material/inner_smoke.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://0h8qjtcpk0mk
|
||||
17
mob/smoke_puff/material/inner_smoke.tres
Normal file
17
mob/smoke_puff/material/inner_smoke.tres
Normal file
@@ -0,0 +1,17 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dr7gyunhpjiwf"]
|
||||
|
||||
[ext_resource type="Shader" path="res://mob/smoke_puff/material/inner_smoke.gdshader" id="1_6ucfb"]
|
||||
|
||||
[resource]
|
||||
resource_local_to_scene = true
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_6ucfb")
|
||||
shader_parameter/albedo = Color(1, 0.537255, 0.792157, 1)
|
||||
shader_parameter/progress = 0.0
|
||||
shader_parameter/smoothness = 0.01
|
||||
shader_parameter/ease = 2.0
|
||||
shader_parameter/base_scale = 1.1
|
||||
shader_parameter/deformation_scale = 1.0
|
||||
shader_parameter/texture_offset = 0.1
|
||||
shader_parameter/fresnel_offset = 0.5
|
||||
shader_parameter/global_alpha = 0.0
|
||||
64
mob/smoke_puff/material/outer_smoke.gdshader
Normal file
64
mob/smoke_puff/material/outer_smoke.gdshader
Normal file
@@ -0,0 +1,64 @@
|
||||
shader_type spatial;
|
||||
render_mode shadows_disabled, cull_disabled;
|
||||
|
||||
uniform vec3 albedo : source_color;
|
||||
|
||||
varying float voronoi_value;
|
||||
|
||||
uniform float progress = 0.0;
|
||||
uniform float smoothness = 0.01;
|
||||
|
||||
uniform float ease = 2.0;
|
||||
uniform float base_scale = 1.0;
|
||||
uniform float deformation_scale = 1.0;
|
||||
|
||||
uniform float texture_offset = 0.0;
|
||||
|
||||
// Voronoi method credit:
|
||||
// The MIT License
|
||||
// Copyright © 2013 Inigo Quilez
|
||||
// https://www.shadertoy.com/view/ldl3Dl
|
||||
|
||||
vec3 hash( vec3 x ){
|
||||
x = vec3( dot(x,vec3(127.1,311.7, 74.7)),
|
||||
dot(x,vec3(269.5,183.3,246.1)),
|
||||
dot(x,vec3(113.5,271.9,124.6)));
|
||||
return fract(sin(x)*43758.5453123);
|
||||
}
|
||||
|
||||
vec3 voronoi( in vec3 x ){
|
||||
vec3 p = floor( x );
|
||||
vec3 f = fract( x );
|
||||
|
||||
float id = 0.0;
|
||||
vec2 res = vec2( 100.0 );
|
||||
for( int k=-1; k<=1; k++ )
|
||||
for( int j=-1; j<=1; j++ )
|
||||
for( int i=-1; i<=1; i++ ) {
|
||||
vec3 b = vec3( float(i), float(j), float(k) );
|
||||
vec3 r = vec3( b ) - f + hash( p + b );
|
||||
float d = dot( r, r );
|
||||
if( d < res.x ) {
|
||||
id = dot( p+b, vec3(1.0,57.0,113.0 ) );
|
||||
res = vec2( d, res.x );
|
||||
} else if( d < res.y ) {
|
||||
res.y = d;
|
||||
}
|
||||
}
|
||||
return vec3( sqrt( res ), abs(id) );
|
||||
}
|
||||
|
||||
|
||||
void vertex() {
|
||||
float smooth_df = deformation_scale;
|
||||
voronoi_value = voronoi(VERTEX + texture_offset).x;
|
||||
VERTEX += NORMAL * (1.0 - pow(voronoi_value, ease)) * smooth_df;
|
||||
VERTEX *= base_scale;
|
||||
}
|
||||
|
||||
void fragment(){
|
||||
ALBEDO = albedo;
|
||||
EMISSION = albedo * 0.5;
|
||||
ALPHA = smoothstep(progress - smoothness, progress + smoothness, voronoi_value);
|
||||
ALPHA_SCISSOR_THRESHOLD = 0.5;
|
||||
}
|
||||
1
mob/smoke_puff/material/outer_smoke.gdshader.uid
Normal file
1
mob/smoke_puff/material/outer_smoke.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://spi71y1qu06o
|
||||
15
mob/smoke_puff/material/outer_smoke.tres
Normal file
15
mob/smoke_puff/material/outer_smoke.tres
Normal file
@@ -0,0 +1,15 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://ctnipgxo3l72h"]
|
||||
|
||||
[ext_resource type="Shader" path="res://mob/smoke_puff/material/outer_smoke.gdshader" id="1_0emiy"]
|
||||
|
||||
[resource]
|
||||
resource_local_to_scene = true
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_0emiy")
|
||||
shader_parameter/albedo = Color(0.937255, 0.698039, 1, 1)
|
||||
shader_parameter/progress = 1.8
|
||||
shader_parameter/smoothness = 0.1
|
||||
shader_parameter/ease = 3.0
|
||||
shader_parameter/base_scale = 1.2
|
||||
shader_parameter/deformation_scale = 1.5
|
||||
shader_parameter/texture_offset = -0.5
|
||||
BIN
mob/smoke_puff/poof.res
Normal file
BIN
mob/smoke_puff/poof.res
Normal file
Binary file not shown.
BIN
mob/smoke_puff/poof_sound.wav
Normal file
BIN
mob/smoke_puff/poof_sound.wav
Normal file
Binary file not shown.
24
mob/smoke_puff/poof_sound.wav.import
Normal file
24
mob/smoke_puff/poof_sound.wav.import
Normal file
@@ -0,0 +1,24 @@
|
||||
[remap]
|
||||
|
||||
importer="wav"
|
||||
type="AudioStreamWAV"
|
||||
uid="uid://ki0nh5lgryca"
|
||||
path="res://.godot/imported/poof_sound.wav-36d715cee95c69d05b3317b1fcb4cc24.sample"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://mob/smoke_puff/poof_sound.wav"
|
||||
dest_files=["res://.godot/imported/poof_sound.wav-36d715cee95c69d05b3317b1fcb4cc24.sample"]
|
||||
|
||||
[params]
|
||||
|
||||
force/8_bit=false
|
||||
force/mono=false
|
||||
force/max_rate=false
|
||||
force/max_rate_hz=44100
|
||||
edit/trim=false
|
||||
edit/normalize=false
|
||||
edit/loop_mode=0
|
||||
edit/loop_begin=0
|
||||
edit/loop_end=-1
|
||||
compress/mode=2
|
||||
34
mob/smoke_puff/smoke_puff.tscn
Normal file
34
mob/smoke_puff/smoke_puff.tscn
Normal file
@@ -0,0 +1,34 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://cjk3frr43yesb"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://ctnipgxo3l72h" path="res://mob/smoke_puff/material/outer_smoke.tres" id="2_1f3c4"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://cxh3afoly2pv6" path="res://mob/smoke_puff/smoke_sphere.obj" id="3_2ucfv"]
|
||||
[ext_resource type="Material" uid="uid://dr7gyunhpjiwf" path="res://mob/smoke_puff/material/inner_smoke.tres" id="4_8vcwr"]
|
||||
[ext_resource type="Animation" uid="uid://drrd257af7jpy" path="res://mob/smoke_puff/poof.res" id="5_yvyul"]
|
||||
[ext_resource type="AudioStream" uid="uid://dyj752n6nuwa6" path="res://mob/smoke_puff/poof_sound.wav" id="6_8rosm"]
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_a08pi"]
|
||||
_data = {
|
||||
"poof": ExtResource("5_yvyul")
|
||||
}
|
||||
|
||||
[node name="smoke_puff" type="Node3D"]
|
||||
transform = Transform3D(0.5, 0, 0, 0, 0.5, 0, 0, 0, 0.5, 0, 0, 0)
|
||||
|
||||
[node name="OuterSmoke" type="MeshInstance3D" parent="."]
|
||||
material_override = ExtResource("2_1f3c4")
|
||||
mesh = ExtResource("3_2ucfv")
|
||||
|
||||
[node name="InnerSmoke" type="MeshInstance3D" parent="."]
|
||||
material_override = ExtResource("4_8vcwr")
|
||||
mesh = ExtResource("3_2ucfv")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
libraries = {
|
||||
"": SubResource("AnimationLibrary_a08pi")
|
||||
}
|
||||
autoplay = "poof"
|
||||
|
||||
[node name="Sound" type="AudioStreamPlayer3D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
stream = ExtResource("6_8rosm")
|
||||
6197
mob/smoke_puff/smoke_sphere.obj
Normal file
6197
mob/smoke_puff/smoke_sphere.obj
Normal file
File diff suppressed because it is too large
Load Diff
25
mob/smoke_puff/smoke_sphere.obj.import
Normal file
25
mob/smoke_puff/smoke_sphere.obj.import
Normal file
@@ -0,0 +1,25 @@
|
||||
[remap]
|
||||
|
||||
importer="wavefront_obj"
|
||||
importer_version=1
|
||||
type="Mesh"
|
||||
uid="uid://vsovom3bufqe"
|
||||
path="res://.godot/imported/smoke_sphere.obj-7dec537f94ed12354ea65934deb2dc4e.mesh"
|
||||
|
||||
[deps]
|
||||
|
||||
files=["res://.godot/imported/smoke_sphere.obj-7dec537f94ed12354ea65934deb2dc4e.mesh"]
|
||||
|
||||
source_file="res://mob/smoke_puff/smoke_sphere.obj"
|
||||
dest_files=["res://.godot/imported/smoke_sphere.obj-7dec537f94ed12354ea65934deb2dc4e.mesh", "res://.godot/imported/smoke_sphere.obj-7dec537f94ed12354ea65934deb2dc4e.mesh"]
|
||||
|
||||
[params]
|
||||
|
||||
generate_tangents=true
|
||||
generate_lods=true
|
||||
generate_shadow_mesh=true
|
||||
generate_lightmap_uv2=false
|
||||
generate_lightmap_uv2_texel_size=0.2
|
||||
scale_mesh=Vector3(1, 1, 1)
|
||||
offset_mesh=Vector3(0, 0, 0)
|
||||
force_disable_mesh_compression=false
|
||||
16
mob/spawner/mob_spawner_3d.gd
Normal file
16
mob/spawner/mob_spawner_3d.gd
Normal file
@@ -0,0 +1,16 @@
|
||||
extends Node3D
|
||||
|
||||
@export var mob_to_spawn: PackedScene = null
|
||||
|
||||
signal mob_spawned(mob: Node)
|
||||
|
||||
@onready var marker_3d: Marker3D = %Marker3D
|
||||
@onready var timer: Timer = %Timer
|
||||
|
||||
|
||||
func _on_timer_timeout() -> void:
|
||||
var new_mob := mob_to_spawn.instantiate()
|
||||
add_child(new_mob)
|
||||
new_mob.global_transform = marker_3d.global_transform
|
||||
|
||||
mob_spawned.emit(new_mob)
|
||||
1
mob/spawner/mob_spawner_3d.gd.uid
Normal file
1
mob/spawner/mob_spawner_3d.gd.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cu4e7af7nx5al
|
||||
21
mob/spawner/mob_spawner_3d.tscn
Normal file
21
mob/spawner/mob_spawner_3d.tscn
Normal file
@@ -0,0 +1,21 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://c0ky5ie5cfgh2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cu4e7af7nx5al" path="res://mob/spawner/mob_spawner_3d.gd" id="1_ewxdg"]
|
||||
[ext_resource type="PackedScene" uid="uid://dtf66or38qi43" path="res://mob/spawner/spawner_model.tscn" id="2_ewxdg"]
|
||||
|
||||
[node name="MobSpawner3D" type="Node3D"]
|
||||
script = ExtResource("1_ewxdg")
|
||||
|
||||
[node name="spawner_model" parent="." instance=ExtResource("2_ewxdg")]
|
||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 2.5, 0)
|
||||
|
||||
[node name="Marker3D" type="Marker3D" parent="spawner_model"]
|
||||
unique_name_in_owner = true
|
||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, -1.4, 0)
|
||||
|
||||
[node name="Timer" type="Timer" parent="."]
|
||||
unique_name_in_owner = true
|
||||
wait_time = 5.0
|
||||
autostart = true
|
||||
|
||||
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
|
||||
17
mob/spawner/spawner_halo.gdshader
Normal file
17
mob/spawner/spawner_halo.gdshader
Normal file
@@ -0,0 +1,17 @@
|
||||
shader_type spatial;
|
||||
uniform vec3 color : source_color;
|
||||
|
||||
float fresnel(float amount, vec3 normal, vec3 view)
|
||||
{
|
||||
return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0 )), amount);
|
||||
}
|
||||
|
||||
|
||||
void fragment() {
|
||||
float f = fresnel(0.8, NORMAL, VIEW);
|
||||
float wave = abs((sin((UV.y - TIME * 0.1) * 10.0 * PI) + 1.0) / 2.0);
|
||||
ALBEDO = color;
|
||||
EMISSION = color * 2.0;
|
||||
ALPHA = step(UV.y, wave) * (1.0 - UV.y) * (1.0 - f);
|
||||
|
||||
}
|
||||
1
mob/spawner/spawner_halo.gdshader.uid
Normal file
1
mob/spawner/spawner_halo.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://cfnwyva3u4qeb
|
||||
BIN
mob/spawner/spawner_model.glb
Normal file
BIN
mob/spawner/spawner_model.glb
Normal file
Binary file not shown.
37
mob/spawner/spawner_model.glb.import
Normal file
37
mob/spawner/spawner_model.glb.import
Normal file
@@ -0,0 +1,37 @@
|
||||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://diiskgqfi7kay"
|
||||
path="res://.godot/imported/spawner_model.glb-2fcf57184c75ae05a59f6df1a9d9c89b.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://mob/spawner/spawner_model.glb"
|
||||
dest_files=["res://.godot/imported/spawner_model.glb-2fcf57184c75ae05a59f6df1a9d9c89b.scn"]
|
||||
|
||||
[params]
|
||||
|
||||
nodes/root_type=""
|
||||
nodes/root_name=""
|
||||
nodes/apply_root_scale=true
|
||||
nodes/root_scale=1.0
|
||||
nodes/import_as_skeleton_bones=false
|
||||
nodes/use_node_type_suffixes=true
|
||||
meshes/ensure_tangents=true
|
||||
meshes/generate_lods=true
|
||||
meshes/create_shadow_meshes=true
|
||||
meshes/light_baking=1
|
||||
meshes/lightmap_texel_size=0.2
|
||||
meshes/force_disable_compression=false
|
||||
skins/use_named_skins=true
|
||||
animation/import=true
|
||||
animation/fps=30
|
||||
animation/trimming=false
|
||||
animation/remove_immutable_tracks=true
|
||||
animation/import_rest_as_RESET=false
|
||||
import_script/path=""
|
||||
_subresources={}
|
||||
gltf/naming_version=1
|
||||
gltf/embedded_image_handling=1
|
||||
85
mob/spawner/spawner_model.tscn
Normal file
85
mob/spawner/spawner_model.tscn
Normal file
@@ -0,0 +1,85 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://dtf66or38qi43"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://diiskgqfi7kay" path="res://mob/spawner/spawner_model.glb" id="1_bk78j"]
|
||||
[ext_resource type="Shader" uid="uid://cfnwyva3u4qeb" path="res://mob/spawner/spawner_halo.gdshader" id="2_lvlhh"]
|
||||
[ext_resource type="Material" uid="uid://jvnbftghahty" path="res://mob/spawner/spawner_screen_material.tres" id="3_p6j4b"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_rug3p"]
|
||||
render_priority = 0
|
||||
shader = ExtResource("2_lvlhh")
|
||||
shader_parameter/color = Color(0.13153, 0.557624, 0.421582, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2xi82"]
|
||||
albedo_color = Color(0.879323, 0.706001, 0.185322, 1)
|
||||
metallic = 0.45
|
||||
metallic_specular = 0.75
|
||||
roughness = 0.25
|
||||
rim_enabled = true
|
||||
rim = 0.1
|
||||
rim_tint = 0.4
|
||||
clearcoat_enabled = true
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bk78j"]
|
||||
albedo_color = Color(0.646029, 0.646029, 0.646029, 1)
|
||||
metallic = 0.5
|
||||
roughness = 0.1
|
||||
rim_enabled = true
|
||||
rim = 0.1
|
||||
clearcoat_enabled = true
|
||||
|
||||
[sub_resource type="Animation" id="Animation_lvlhh"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Top:rotation")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, -2.0944, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_bk78j"]
|
||||
resource_name = "idle"
|
||||
length = 0.5
|
||||
loop_mode = 1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Top:rotation")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [Vector3(0, 0, 0), Vector3(0, 6.28319, 0)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_p6j4b"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_lvlhh"),
|
||||
&"idle": SubResource("Animation_bk78j")
|
||||
}
|
||||
|
||||
[node name="spawner_model" instance=ExtResource("1_bk78j")]
|
||||
|
||||
[node name="halo" parent="." index="0"]
|
||||
material_override = SubResource("ShaderMaterial_rug3p")
|
||||
|
||||
[node name="Body" parent="." index="1"]
|
||||
surface_material_override/0 = SubResource("StandardMaterial3D_2xi82")
|
||||
surface_material_override/1 = ExtResource("3_p6j4b")
|
||||
|
||||
[node name="Top" parent="." index="2"]
|
||||
transform = Transform3D(-0.500004, 0, -0.866023, 0, 1, 0, 0.866023, 0, -0.500004, 0, 0.783957, 0)
|
||||
material_override = SubResource("StandardMaterial3D_bk78j")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="3"]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_p6j4b")
|
||||
}
|
||||
autoplay = "idle"
|
||||
29
mob/spawner/spawner_screen.gdshader
Normal file
29
mob/spawner/spawner_screen.gdshader
Normal file
@@ -0,0 +1,29 @@
|
||||
shader_type spatial;
|
||||
|
||||
uniform vec4 screen_color : source_color;
|
||||
uniform sampler2D text_sampler : filter_nearest, repeat_enable;
|
||||
|
||||
uniform float ratio = 1.0;
|
||||
|
||||
uniform float pixel_size = 20.0;
|
||||
|
||||
uniform float intensity = 1.5;
|
||||
|
||||
void fragment() {
|
||||
vec2 scaled_uv = round(UV * pixel_size) / pixel_size;
|
||||
|
||||
vec2 grid_2d = sin(fract(UV * pixel_size + 0.5) * 3.14);
|
||||
float grid = grid_2d.x * grid_2d.y;
|
||||
grid = grid * 0.6 + 0.4;
|
||||
|
||||
float text = 1.0 - texture(text_sampler, scaled_uv * vec2(ratio, 1.0) + vec2(mod(TIME * 0.1, 1.0), 0.0)).x;
|
||||
|
||||
|
||||
ALBEDO = vec3(0.0);
|
||||
SPECULAR = 0.25;
|
||||
ROUGHNESS = 0.45;
|
||||
|
||||
|
||||
EMISSION = mix(screen_color.rgb * text, screen_color.rgb, screen_color.a) * grid * intensity;
|
||||
|
||||
}
|
||||
1
mob/spawner/spawner_screen.gdshader.uid
Normal file
1
mob/spawner/spawner_screen.gdshader.uid
Normal file
@@ -0,0 +1 @@
|
||||
uid://dhuj314m3wv1c
|
||||
13
mob/spawner/spawner_screen_material.tres
Normal file
13
mob/spawner/spawner_screen_material.tres
Normal file
@@ -0,0 +1,13 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://jvnbftghahty"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://dhuj314m3wv1c" path="res://mob/spawner/spawner_screen.gdshader" id="1_3sboa"]
|
||||
[ext_resource type="Texture2D" uid="uid://cioq2g05svse6" path="res://mob/spawner/spawner_text.png" id="2_871b8"]
|
||||
|
||||
[resource]
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_3sboa")
|
||||
shader_parameter/screen_color = Color(0.336095, 0.77375, 0.569932, 0.027451)
|
||||
shader_parameter/text_sampler = ExtResource("2_871b8")
|
||||
shader_parameter/ratio = 0.25
|
||||
shader_parameter/pixel_size = 32.0
|
||||
shader_parameter/intensity = 1.5
|
||||
BIN
mob/spawner/spawner_text.png
Normal file
BIN
mob/spawner/spawner_text.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
36
mob/spawner/spawner_text.png.import
Normal file
36
mob/spawner/spawner_text.png.import
Normal file
@@ -0,0 +1,36 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cioq2g05svse6"
|
||||
path.s3tc="res://.godot/imported/spawner_text.png-cddf989d7fb9d0d1fac3e9ed8d7837e4.s3tc.ctex"
|
||||
path.etc2="res://.godot/imported/spawner_text.png-cddf989d7fb9d0d1fac3e9ed8d7837e4.etc2.ctex"
|
||||
metadata={
|
||||
"imported_formats": ["s3tc_bptc", "etc2_astc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://mob/spawner/spawner_text.png"
|
||||
dest_files=["res://.godot/imported/spawner_text.png-cddf989d7fb9d0d1fac3e9ed8d7837e4.s3tc.ctex", "res://.godot/imported/spawner_text.png-cddf989d7fb9d0d1fac3e9ed8d7837e4.etc2.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=0
|
||||
Reference in New Issue
Block a user