working on player character
This commit is contained in:
8
Prefabs/PlayerCamera.tscn
Normal file
8
Prefabs/PlayerCamera.tscn
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
[gd_scene load_steps=2 format=3 uid="uid://hmyrn2pbbhpm"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bici4k5vkuoos" path="res://Scripts/player_camera.gd" id="1_ocbkm"]
|
||||||
|
|
||||||
|
[node name="Camera3D" type="Camera3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 0.25038, 0.968148, 0, -0.968148, 0.25038, 0, 0, 0)
|
||||||
|
fov = 80.0
|
||||||
|
script = ExtResource("1_ocbkm")
|
||||||
81
Prefabs/player.tscn
Normal file
81
Prefabs/player.tscn
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
[gd_scene load_steps=8 format=4 uid="uid://bacgd5lmvaxea"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://bcgt64gerg8pv" path="res://Scripts/player.gd" id="1_5wxv7"]
|
||||||
|
[ext_resource type="Material" uid="uid://b4rpp31c0dx2m" path="res://Assets/Materials/BasicMat.tres" id="1_y6xdh"]
|
||||||
|
|
||||||
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_i3sml"]
|
||||||
|
resource_name = "Material"
|
||||||
|
cull_mode = 2
|
||||||
|
albedo_color = Color(0.90741, 0.668233, 0.565457, 1)
|
||||||
|
roughness = 0.5
|
||||||
|
metadata/extras = {
|
||||||
|
"paint_system": {},
|
||||||
|
"poliigon_props": {}
|
||||||
|
}
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_7d2fd"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1),
|
||||||
|
"format": 34896613377,
|
||||||
|
"index_count": 132,
|
||||||
|
"index_data": PackedByteArray("DgAPAAIACAACAA8ACAAQAAIACAAPAAEAAgAQABEAAgARAA4AEgAQAAgAEgAIAAEAEwARABAAEgAUABAAEwAQABQAAAAOABEAAAARABMADAAOAAAADAAEAA4ADgAEAA8ACwAMAAAAAAATAAMACwAAAAMAAwATAAkAFAAJABMAAwAKAAsAAwAJAAoAFAAFAAkACgAJAAUAEgAFABQACwANAAwADAANAAQACwAKABUACwAVAA0ACgAFABYAFgAVAAoABwAFABIABwAWAAUAEgABAAcAFgAGABUABwAGABYADQAVAAYAAQAGAAcADQAGABcAAQAXAAYABAANABcADwAXAAEABAAXAA8A"),
|
||||||
|
"lods": [0.100898, PackedByteArray("AAABAAIACAACAAEABQACAAgABQAIAAEACQAAAAIACQACAAUAAAAJAAMACgAJAAUAAwAJAAoACwAAAAMAAwAKAAsACwAMAAAADAAEAAAAAAAEAAEACwANAAwADAANAAQACwAKAA0ABAANAAEADQAKAAYADQAGAAEACgAFAAYABQABAAcAAQAGAAcABwAGAAUA"), 0.588343, PackedByteArray("AAABAAIAAwAAAAIABAAAAAMAAAAEAAEAAwACAAUABAADAAUABQACAAEABAAGAAEABAAFAAYABQABAAcAAQAGAAcABwAGAAUA")],
|
||||||
|
"name": "Material",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 24,
|
||||||
|
"vertex_data": PackedByteArray("ZeYAAGXmAACZGf//ZeYAAGXmZeb//wAAZeYAAJkZAACZGZkZ//8AAGXmZeYAAAAAAABl5pkZAACZGf//mRkAAGXm//9l5gAAZeaZGQAAAACZGZkZAAAAAJkZAACZGQAAmRkAAGXmAAAAAJkZZeYAAGXmmRn//wAAmRll5v//AAD//2XmZeYAAP//mRll5gAAZeb//5kZAAD//5kZmRkAAP//ZeaZGQAAAACZGZkZAACZGWXmAAAAAAAAZeZl5gAA")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_5wxv7"]
|
||||||
|
resource_name = "Test1_Cube"
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1),
|
||||||
|
"attribute_data": PackedByteArray("mVlmRv+fZgaZmZk5ZmZmBplZmXlmJv8/mZllhpjZZkaY2Zl5ZWb//5mZZcb/n5i5/5+Y+f+fZcb/n5k5ZmZlhmWmZkZmZpi5ZmaY+ZlZ/39mJv9/ZiaZef8fZkZmJmZGZmaZOZmZZgZmZpl5mZlmRpmZmXlmZmZGZaaZeWZmmPmZmWXGmZmY+WZmZcaZmZi5ZiZmRmYm/z+Zmf//mZmY+WYmmXlmJv9//x+ZeZmZ/7+ZWWZGmVn/P/9fZkb/n5k5mZn/P5mZmTmZWZl5/1+ZeZlZ/3//n2WGmZllhpmZ/39mJpl5/x9mRmYmZkb/H5l5mZmY+ZmZ////n5j5mZllxv+fZcaZmZj5mZmYuWZmZcZmZpi5mZllxpmZZYb/n2WGmZmYuZmZmXlmZmWGZmaZeZmZZYaZWWZGZmaZeZlZmXlmZmZGZaaZeZmZZkZlpmZGmZmZeZmZmTlmZmZGZmaZOZmZZkaZWf8/mZlmBpmZmTlmJpl5mVlmRplZmXlmJmZG"),
|
||||||
|
"format": 34896613399,
|
||||||
|
"index_count": 132,
|
||||||
|
"index_data": PackedByteArray("GAAZAAIAGAADABkAGgAbABwAGgAdABsAHgAHAAgAHgAQAAcAHwAgACEAHwAiACAAEQAGACMAEQAPAAYAJAAWACUAJgAnAAwAKAApACoADQAKACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOAA7ADkACQA8AD0ACQASADwAPgA/AEAAPgBBAD8AQgBDAEQAQgBFAEMABAAUABUABAATABQACwBGAEcACwBIAEYASQBKAEsASQBMAEoATQBOAE8ATQBQAE4AUQBSAFMAUQBUAFIAVQBWAFcAVQBYAFYAFwBZAAAAFwAFAFkADgBaAAEADgBbAFoAXABdAF4AXABfAF0A"),
|
||||||
|
"lods": [0.100898, PackedByteArray("AAABAAIADgACAAEAAAADAAEADwAAAAIADwACAAYABgACABAAAAAPAAQABgAQAAcABgAHAAgAEQAPAAYAEQAGAAoACwAKAAYAEgARAAoAEgAKAAwADAAKAA0ACQASAAwABAATABQABAAUABUAFQAAAAQAFQAUABYAFQAXAAAAFQAWABcAFwAFAAAAFwAWAAUA"), 0.588343, PackedByteArray("AAABAAIAAAADAAEABAAAAAIABQAAAAQABAACAAYABgACAAcABgAHAAgACQAEAAYACQAGAAoACwAKAAYACQAKAAwADAAKAA0A")],
|
||||||
|
"material": SubResource("StandardMaterial3D_i3sml"),
|
||||||
|
"name": "Material",
|
||||||
|
"primitive": 3,
|
||||||
|
"uv_scale": Vector4(0, 0, 0, 0),
|
||||||
|
"vertex_count": 96,
|
||||||
|
"vertex_data": PackedByteArray("ZeYAAGXm/5+ZGf//Zeb8xWXmZeb///+/mRmZGf///79l5gAAmRn/35kZmRn///+fZeZl5gAA//+ZGf//Zeb//5kZ//+ZGf//mRmZGf///MUAAGXmmRlA3JkZ//+ZGarpmRn//2XmlrGZGf//mRlA3GXm//9l5vzFZeaZGQAA//9l5v//Zeb//5kZmRkAAP//AACZGWXm/MVl5pkZAAD/35kZmRkAAP/fmRkAAJkZ/98AAJkZZeaWsZkZAABl5v+fZeaZGf///7+ZGWXm////v///mRmZGVTV//9l5mXmVNX//2XmmRlU1f//mRll5lTVZeb//5kZ//8AAJkZZeZU1QAAZeaZGVTVAABl5mXmVNUAAJkZmRlU1ZkZZeYAAP//mRkAAGXmlrGZGZkZ//+WsZkZZeb//5axAABl5mXmlrGZGQAAmRlA3JkZmRkAAEDcAACZGZkZQNyZGWXmAABA3GXmAABl5paxZeaZGf//lrH//5kZZeaWsWXm//9l5krA//9l5mXmSsBl5mXm//9KwGXmAACZGUDc//+ZGZkZQNxl5pkZAABA3GXm//+ZGRr7ZeZl5gAAGvv//2XmmRka+5kZAACZGfzFAACZGWXm/MWZGQAAZeb8xQAAmRmZGfzFAABl5mXm/MWZGWXm///8xZkZ//9l5vzFAABl5pkZ/MWZGf//mRn8xQAAZeZl5vzFmRll5gAAqukAAJkZmRmq6ZkZmRkAAKrpAABl5pkZqull5mXmAACq6WXm//+ZGarpmRll5gAAqun//2XmmRmq6WXmmRkAAKrp//+ZGZkZqull5mXmAACq6WXmAABl5vzF//+ZGZkZ/MVl5gAAmRn8xf//mRll5vzFZeb//5kZqun//2XmZeaq6WXm//9l5qrp//9l5pkZqull5mXm///8xf//mRll5vzFZeaZGf///MX//2XmZeb8xWXmmRn///+fmRll5v///MVl5mXm///8xZkZAACZGf+/ZeYAAGXm/79l5gAAmRn/v5kZAABl5v+/AAD/f//i/xz//////////wAA/38AAP9//7//v/9//7//f/+//+L/4nHfZ7EEtQS1DegxxnHfZ7H/4v8c/7//v/9//7//v/+//+L/4gAA/38AAP9/AAD/fzJG8JcAAP9///////////+qKqoqqiqqKqoqqiqqKqoq/3//v1TVVNVU1VTVVNVU1VTVVNX/v/+/MkbwlzJG8JcN6DHGDegxxmcxjaBnMY2gZzGNoHHfZ7HxF8058RfNOfEXzTnFyEUHxchFB8XIRQeNIJdOjSCXTo0gl04Eta6oBLWuqAS1rqj+Of6c/jn+nP45/pz+Of6c/+L/4v/i/+L/4v25/+L9uf/i/bn/4v25+sr6yvrK+sr6yvrK+sr6ygS1BLUEtQS1BLUEtQQ1BDUENQQ1BDUENQQ1BDX/HAFG/xwBRv8cAUb/HAFGBDX2FQQ19hUENfYVBDX2Ff8c/xz/HP8c/xz/HP8c/xwAAP9//+L/HP/i/xwAAP9/AAD/fwAA/38AAP9/")
|
||||||
|
}]
|
||||||
|
blend_shape_mode = 0
|
||||||
|
shadow_mesh = SubResource("ArrayMesh_7d2fd")
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_5wxv7"]
|
||||||
|
size = Vector3(1.59, 0.4, 0.375)
|
||||||
|
|
||||||
|
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_y5hcb"]
|
||||||
|
radius = 0.501894
|
||||||
|
height = 1.30188
|
||||||
|
|
||||||
|
[node name="Player" type="CharacterBody3D"]
|
||||||
|
script = ExtResource("1_5wxv7")
|
||||||
|
|
||||||
|
[node name="Body" type="MeshInstance3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
material_override = ExtResource("1_y6xdh")
|
||||||
|
mesh = SubResource("ArrayMesh_5wxv7")
|
||||||
|
skeleton = NodePath("")
|
||||||
|
metadata/extras = {
|
||||||
|
"poliigon_props": {},
|
||||||
|
"rr_curve_obj": {}
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="OmniLight3D" type="OmniLight3D" parent="Body"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.37607, 0)
|
||||||
|
light_energy = 0.1
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Body"]
|
||||||
|
transform = Transform3D(-0.487982, 0, -0.872854, 0, 1, 0, 0.872854, 0, -0.487982, 0.351417, 0.11253, -0.601462)
|
||||||
|
mesh = SubResource("BoxMesh_5wxv7")
|
||||||
|
skeleton = NodePath("../..")
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
||||||
|
shape = SubResource("CapsuleShape3D_y5hcb")
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
[gd_scene load_steps=24 format=4 uid="uid://dbqyyunvx6fdj"]
|
[gd_scene load_steps=25 format=4 uid="uid://dbqyyunvx6fdj"]
|
||||||
|
|
||||||
[ext_resource type="Material" uid="uid://b4rpp31c0dx2m" path="res://Assets/Materials/BasicMat.tres" id="1_8lor2"]
|
[ext_resource type="Material" uid="uid://b4rpp31c0dx2m" path="res://Assets/Materials/BasicMat.tres" id="1_8lor2"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://hmyrn2pbbhpm" path="res://Prefabs/PlayerCamera.tscn" id="2_qq11w"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://Assets/post_processing.tscn" id="2_vab8d"]
|
[ext_resource type="PackedScene" uid="uid://bj1y0fbjtul4a" path="res://Assets/post_processing.tscn" id="2_vab8d"]
|
||||||
|
[ext_resource type="PackedScene" uid="uid://bacgd5lmvaxea" path="res://Prefabs/player.tscn" id="3_hfnh2"]
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_31lxn"]
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_31lxn"]
|
||||||
sky_top_color = Color(0.1, 0.1, 0.1, 1)
|
sky_top_color = Color(0.1, 0.1, 0.1, 1)
|
||||||
@@ -25,49 +27,8 @@ fog_light_color = Color(0.117, 0.14115, 0.18, 1)
|
|||||||
fog_light_energy = 1.65
|
fog_light_energy = 1.65
|
||||||
fog_density = 1.0
|
fog_density = 1.0
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_i3sml"]
|
[sub_resource type="BoxShape3D" id="BoxShape3D_qq11w"]
|
||||||
resource_name = "Material"
|
size = Vector3(100, 1, 100)
|
||||||
cull_mode = 2
|
|
||||||
albedo_color = Color(0.90741, 0.668233, 0.565457, 1)
|
|
||||||
roughness = 0.5
|
|
||||||
metadata/extras = {
|
|
||||||
"paint_system": {},
|
|
||||||
"poliigon_props": {}
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_7d2fd"]
|
|
||||||
_surfaces = [{
|
|
||||||
"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1),
|
|
||||||
"format": 34896613377,
|
|
||||||
"index_count": 132,
|
|
||||||
"index_data": PackedByteArray("DgAPAAIACAACAA8ACAAQAAIACAAPAAEAAgAQABEAAgARAA4AEgAQAAgAEgAIAAEAEwARABAAEgAUABAAEwAQABQAAAAOABEAAAARABMADAAOAAAADAAEAA4ADgAEAA8ACwAMAAAAAAATAAMACwAAAAMAAwATAAkAFAAJABMAAwAKAAsAAwAJAAoAFAAFAAkACgAJAAUAEgAFABQACwANAAwADAANAAQACwAKABUACwAVAA0ACgAFABYAFgAVAAoABwAFABIABwAWAAUAEgABAAcAFgAGABUABwAGABYADQAVAAYAAQAGAAcADQAGABcAAQAXAAYABAANABcADwAXAAEABAAXAA8A"),
|
|
||||||
"lods": [0.100898, PackedByteArray("AAABAAIACAACAAEABQACAAgABQAIAAEACQAAAAIACQACAAUAAAAJAAMACgAJAAUAAwAJAAoACwAAAAMAAwAKAAsACwAMAAAADAAEAAAAAAAEAAEACwANAAwADAANAAQACwAKAA0ABAANAAEADQAKAAYADQAGAAEACgAFAAYABQABAAcAAQAGAAcABwAGAAUA"), 0.588343, PackedByteArray("AAABAAIAAwAAAAIABAAAAAMAAAAEAAEAAwACAAUABAADAAUABQACAAEABAAGAAEABAAFAAYABQABAAcAAQAGAAcABwAGAAUA")],
|
|
||||||
"name": "Material",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 24,
|
|
||||||
"vertex_data": PackedByteArray("ZeYAAGXmAACZGf//ZeYAAGXmZeb//wAAZeYAAJkZAACZGZkZ//8AAGXmZeYAAAAAAABl5pkZAACZGf//mRkAAGXm//9l5gAAZeaZGQAAAACZGZkZAAAAAJkZAACZGQAAmRkAAGXmAAAAAJkZZeYAAGXmmRn//wAAmRll5v//AAD//2XmZeYAAP//mRll5gAAZeb//5kZAAD//5kZmRkAAP//ZeaZGQAAAACZGZkZAACZGWXmAAAAAAAAZeZl5gAA")
|
|
||||||
}]
|
|
||||||
blend_shape_mode = 0
|
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_ipilw"]
|
|
||||||
resource_name = "Test1_Cube"
|
|
||||||
_surfaces = [{
|
|
||||||
"aabb": AABB(-0.5, -0.5, -0.5, 1, 1, 1),
|
|
||||||
"attribute_data": PackedByteArray("mVlmRv+fZgaZmZk5ZmZmBplZmXlmJv8/mZllhpjZZkaY2Zl5ZWb//5mZZcb/n5i5/5+Y+f+fZcb/n5k5ZmZlhmWmZkZmZpi5ZmaY+ZlZ/39mJv9/ZiaZef8fZkZmJmZGZmaZOZmZZgZmZpl5mZlmRpmZmXlmZmZGZaaZeWZmmPmZmWXGmZmY+WZmZcaZmZi5ZiZmRmYm/z+Zmf//mZmY+WYmmXlmJv9//x+ZeZmZ/7+ZWWZGmVn/P/9fZkb/n5k5mZn/P5mZmTmZWZl5/1+ZeZlZ/3//n2WGmZllhpmZ/39mJpl5/x9mRmYmZkb/H5l5mZmY+ZmZ////n5j5mZllxv+fZcaZmZj5mZmYuWZmZcZmZpi5mZllxpmZZYb/n2WGmZmYuZmZmXlmZmWGZmaZeZmZZYaZWWZGZmaZeZlZmXlmZmZGZaaZeZmZZkZlpmZGmZmZeZmZmTlmZmZGZmaZOZmZZkaZWf8/mZlmBpmZmTlmJpl5mVlmRplZmXlmJmZG"),
|
|
||||||
"format": 34896613399,
|
|
||||||
"index_count": 132,
|
|
||||||
"index_data": PackedByteArray("GAAZAAIAGAADABkAGgAbABwAGgAdABsAHgAHAAgAHgAQAAcAHwAgACEAHwAiACAAEQAGACMAEQAPAAYAJAAWACUAJgAnAAwAKAApACoADQAKACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOAA7ADkACQA8AD0ACQASADwAPgA/AEAAPgBBAD8AQgBDAEQAQgBFAEMABAAUABUABAATABQACwBGAEcACwBIAEYASQBKAEsASQBMAEoATQBOAE8ATQBQAE4AUQBSAFMAUQBUAFIAVQBWAFcAVQBYAFYAFwBZAAAAFwAFAFkADgBaAAEADgBbAFoAXABdAF4AXABfAF0A"),
|
|
||||||
"lods": [0.100898, PackedByteArray("AAABAAIADgACAAEAAAADAAEADwAAAAIADwACAAYABgACABAAAAAPAAQABgAQAAcABgAHAAgAEQAPAAYAEQAGAAoACwAKAAYAEgARAAoAEgAKAAwADAAKAA0ACQASAAwABAATABQABAAUABUAFQAAAAQAFQAUABYAFQAXAAAAFQAWABcAFwAFAAAAFwAWAAUA"), 0.588343, PackedByteArray("AAABAAIAAAADAAEABAAAAAIABQAAAAQABAACAAYABgACAAcABgAHAAgACQAEAAYACQAGAAoACwAKAAYACQAKAAwADAAKAA0A")],
|
|
||||||
"material": SubResource("StandardMaterial3D_i3sml"),
|
|
||||||
"name": "Material",
|
|
||||||
"primitive": 3,
|
|
||||||
"uv_scale": Vector4(0, 0, 0, 0),
|
|
||||||
"vertex_count": 96,
|
|
||||||
"vertex_data": PackedByteArray("ZeYAAGXm/5+ZGf//Zeb8xWXmZeb///+/mRmZGf///79l5gAAmRn/35kZmRn///+fZeZl5gAA//+ZGf//Zeb//5kZ//+ZGf//mRmZGf///MUAAGXmmRlA3JkZ//+ZGarpmRn//2XmlrGZGf//mRlA3GXm//9l5vzFZeaZGQAA//9l5v//Zeb//5kZmRkAAP//AACZGWXm/MVl5pkZAAD/35kZmRkAAP/fmRkAAJkZ/98AAJkZZeaWsZkZAABl5v+fZeaZGf///7+ZGWXm////v///mRmZGVTV//9l5mXmVNX//2XmmRlU1f//mRll5lTVZeb//5kZ//8AAJkZZeZU1QAAZeaZGVTVAABl5mXmVNUAAJkZmRlU1ZkZZeYAAP//mRkAAGXmlrGZGZkZ//+WsZkZZeb//5axAABl5mXmlrGZGQAAmRlA3JkZmRkAAEDcAACZGZkZQNyZGWXmAABA3GXmAABl5paxZeaZGf//lrH//5kZZeaWsWXm//9l5krA//9l5mXmSsBl5mXm//9KwGXmAACZGUDc//+ZGZkZQNxl5pkZAABA3GXm//+ZGRr7ZeZl5gAAGvv//2XmmRka+5kZAACZGfzFAACZGWXm/MWZGQAAZeb8xQAAmRmZGfzFAABl5mXm/MWZGWXm///8xZkZ//9l5vzFAABl5pkZ/MWZGf//mRn8xQAAZeZl5vzFmRll5gAAqukAAJkZmRmq6ZkZmRkAAKrpAABl5pkZqull5mXmAACq6WXm//+ZGarpmRll5gAAqun//2XmmRmq6WXmmRkAAKrp//+ZGZkZqull5mXmAACq6WXmAABl5vzF//+ZGZkZ/MVl5gAAmRn8xf//mRll5vzFZeb//5kZqun//2XmZeaq6WXm//9l5qrp//9l5pkZqull5mXm///8xf//mRll5vzFZeaZGf///MX//2XmZeb8xWXmmRn///+fmRll5v///MVl5mXm///8xZkZAACZGf+/ZeYAAGXm/79l5gAAmRn/v5kZAABl5v+/AAD/f//i/xz//////////wAA/38AAP9//7//v/9//7//f/+//+L/4nHfZ7EEtQS1DegxxnHfZ7H/4v8c/7//v/9//7//v/+//+L/4gAA/38AAP9/AAD/fzJG8JcAAP9///////////+qKqoqqiqqKqoqqiqqKqoq/3//v1TVVNVU1VTVVNVU1VTVVNX/v/+/MkbwlzJG8JcN6DHGDegxxmcxjaBnMY2gZzGNoHHfZ7HxF8058RfNOfEXzTnFyEUHxchFB8XIRQeNIJdOjSCXTo0gl04Eta6oBLWuqAS1rqj+Of6c/jn+nP45/pz+Of6c/+L/4v/i/+L/4v25/+L9uf/i/bn/4v25+sr6yvrK+sr6yvrK+sr6ygS1BLUEtQS1BLUEtQQ1BDUENQQ1BDUENQQ1BDX/HAFG/xwBRv8cAUb/HAFGBDX2FQQ19hUENfYVBDX2Ff8c/xz/HP8c/xz/HP8c/xwAAP9//+L/HP/i/xwAAP9/AAD/fwAA/38AAP9/")
|
|
||||||
}]
|
|
||||||
blend_shape_mode = 0
|
|
||||||
shadow_mesh = SubResource("ArrayMesh_7d2fd")
|
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cre2v"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cre2v"]
|
||||||
|
|
||||||
@@ -101,6 +62,9 @@ _surfaces = [{
|
|||||||
blend_shape_mode = 0
|
blend_shape_mode = 0
|
||||||
shadow_mesh = SubResource("ArrayMesh_eow34")
|
shadow_mesh = SubResource("ArrayMesh_eow34")
|
||||||
|
|
||||||
|
[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_qq11w"]
|
||||||
|
data = PackedVector3Array(-1, -1, 1, -1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 1)
|
||||||
|
|
||||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mfp1l"]
|
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mfp1l"]
|
||||||
|
|
||||||
[sub_resource type="ArrayMesh" id="ArrayMesh_rwltu"]
|
[sub_resource type="ArrayMesh" id="ArrayMesh_rwltu"]
|
||||||
@@ -242,17 +206,15 @@ shadow_mesh = SubResource("ArrayMesh_ib0jm")
|
|||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
environment = SubResource("Environment_vab8d")
|
environment = SubResource("Environment_vab8d")
|
||||||
|
|
||||||
[node name="Test1" type="Node3D" parent="."]
|
[node name="StaticBody3D" type="StaticBody3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.196, 7.041, 1.942)
|
||||||
|
collision_layer = 128
|
||||||
|
collision_mask = 128
|
||||||
|
|
||||||
[node name="Cube" type="MeshInstance3D" parent="Test1"]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0)
|
shape = SubResource("BoxShape3D_qq11w")
|
||||||
material_override = ExtResource("1_8lor2")
|
|
||||||
mesh = SubResource("ArrayMesh_ipilw")
|
[node name="Test1" type="Node3D" parent="."]
|
||||||
skeleton = NodePath("")
|
|
||||||
metadata/extras = {
|
|
||||||
"poliigon_props": {},
|
|
||||||
"rr_curve_obj": {}
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Cube_001" type="MeshInstance3D" parent="Test1"]
|
[node name="Cube_001" type="MeshInstance3D" parent="Test1"]
|
||||||
transform = Transform3D(5, 0, 0, 0, 50, 0, 0, 0, 5, 0, -50, 0)
|
transform = Transform3D(5, 0, 0, 0, 50, 0, 0, 0, 5, 0, -50, 0)
|
||||||
@@ -264,6 +226,11 @@ metadata/extras = {
|
|||||||
"rr_curve_obj": {}
|
"rr_curve_obj": {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[node name="StaticBody3D" type="StaticBody3D" parent="Test1/Cube_001"]
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Test1/Cube_001/StaticBody3D"]
|
||||||
|
shape = SubResource("ConcavePolygonShape3D_qq11w")
|
||||||
|
|
||||||
[node name="Cube_002" type="MeshInstance3D" parent="Test1"]
|
[node name="Cube_002" type="MeshInstance3D" parent="Test1"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.85093, 0.0576663, 4.81909)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.85093, 0.0576663, 4.81909)
|
||||||
material_override = ExtResource("1_8lor2")
|
material_override = ExtResource("1_8lor2")
|
||||||
@@ -304,9 +271,9 @@ metadata/extras = {
|
|||||||
"rr_curve_obj": {}
|
"rr_curve_obj": {}
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Camera3D" type="Camera3D" parent="."]
|
[node name="Camera3D" parent="." node_paths=PackedStringArray("player") instance=ExtResource("2_qq11w")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 0.25038, 0.968148, 0, -0.968148, 0.25038, 0.196, 7.041, 1.942)
|
transform = Transform3D(1, 0, 0, 0, 0.25038, 0.968148, 0, -0.968148, 0.25038, 0.196, 7.041, 1.942)
|
||||||
fov = 80.0
|
player = NodePath("../Player")
|
||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.66639, 0.974749, -3.73532)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.66639, 0.974749, -3.73532)
|
||||||
@@ -325,3 +292,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.26995, 0.974748, 4.40131)
|
|||||||
light_color = Color(0.833261, 0.5957, 0.32611, 1)
|
light_color = Color(0.833261, 0.5957, 0.32611, 1)
|
||||||
|
|
||||||
[node name="PostProcessing" parent="." instance=ExtResource("2_vab8d")]
|
[node name="PostProcessing" parent="." instance=ExtResource("2_vab8d")]
|
||||||
|
|
||||||
|
[node name="Player" parent="." instance=ExtResource("3_hfnh2")]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0717504, 0.311536, 0.0210209)
|
||||||
|
|||||||
61
Scripts/mouse_pos.gd
Normal file
61
Scripts/mouse_pos.gd
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# GLOBAL SCRIPT. ACCESS via RaycastSystem.foo()
|
||||||
|
# Raycast queries are defined here. All other modules can use it.
|
||||||
|
|
||||||
|
extends Node3D
|
||||||
|
|
||||||
|
const RAY_LENGTH := 1000
|
||||||
|
|
||||||
|
"""
|
||||||
|
Uses default collision_mask. But can be overrided for custom collision
|
||||||
|
mask/layers.
|
||||||
|
Output format:
|
||||||
|
output_dict = {
|
||||||
|
"collider": None, # The colliding object (if any)
|
||||||
|
"collider_id": None, # The colliding object's ID (if any)
|
||||||
|
"normal": [0, 0, 0], # The surface normal at the intersection point
|
||||||
|
"position": [0, 0, 0], # The intersection point
|
||||||
|
"face_index": -1, # The face index at the intersection point
|
||||||
|
"rid": None, # The intersecting object's RID
|
||||||
|
"shape": None # The shape index of the colliding shape
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
# Returns raycast result after it hits an object in the world.
|
||||||
|
# @return Dictionary or null
|
||||||
|
func _do_raycast_on_mouse_position(collision_mask: int = 0b00000000_00000000_00000000_00000001):
|
||||||
|
# Raycast related code
|
||||||
|
var space_state = get_world_3d().direct_space_state
|
||||||
|
var cam = get_viewport().get_camera_3d()
|
||||||
|
var mousepos = get_viewport().get_mouse_position()
|
||||||
|
|
||||||
|
var origin = cam.project_ray_origin(mousepos)
|
||||||
|
var end = origin + cam.project_ray_normal(mousepos) * RAY_LENGTH
|
||||||
|
var query = PhysicsRayQueryParameters3D.create(origin, end)
|
||||||
|
query.collide_with_areas = true
|
||||||
|
query.collision_mask = collision_mask
|
||||||
|
|
||||||
|
var result = space_state.intersect_ray(query) # raycast result
|
||||||
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# # # # # # # # # # # # # # # # # #
|
||||||
|
# # # # # # # # # # # # # # # # # #
|
||||||
|
# API below:
|
||||||
|
|
||||||
|
|
||||||
|
# Gets ray-cast hit position from camera to world.
|
||||||
|
# @return Vector3 or null
|
||||||
|
func get_mouse_world_position(collision_mask: int = 0b00000000_00000000_00000000_00000001):
|
||||||
|
var raycast_result = _do_raycast_on_mouse_position(collision_mask)
|
||||||
|
if raycast_result:
|
||||||
|
return raycast_result.position
|
||||||
|
return null
|
||||||
|
|
||||||
|
|
||||||
|
# Gets ray-cast hit object from camera to world.
|
||||||
|
# @return Object or null
|
||||||
|
func get_raycast_hit_object(collision_mask: int = 0b00000000_00000000_00000000_00000001):
|
||||||
|
var raycast_result = _do_raycast_on_mouse_position(collision_mask)
|
||||||
|
if raycast_result:
|
||||||
|
return raycast_result.collider
|
||||||
|
return null
|
||||||
1
Scripts/mouse_pos.gd.uid
Normal file
1
Scripts/mouse_pos.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://jinjgqiuwyt7
|
||||||
34
Scripts/player.gd
Normal file
34
Scripts/player.gd
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
extends CharacterBody3D
|
||||||
|
class_name Player
|
||||||
|
|
||||||
|
var input_dir
|
||||||
|
|
||||||
|
@onready var body: MeshInstance3D = $Body
|
||||||
|
|
||||||
|
|
||||||
|
const MOVE_SPEED = 10.0
|
||||||
|
const MOVE_TRANSITION_SPEED = 7.0
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
if is_on_floor():
|
||||||
|
standard_movement(delta)
|
||||||
|
|
||||||
|
body_look_at_mouse()
|
||||||
|
apply_gravity(delta)
|
||||||
|
move_and_slide()
|
||||||
|
|
||||||
|
func body_look_at_mouse():
|
||||||
|
var mouse_raycast = MousePos.get_mouse_world_position()
|
||||||
|
if mouse_raycast != null:
|
||||||
|
body.look_at(Vector3(mouse_raycast.x,body.global_position.y,mouse_raycast.y),Vector3.UP)
|
||||||
|
|
||||||
|
func apply_gravity(delta):
|
||||||
|
if !is_on_floor():
|
||||||
|
velocity.y -= 9.8 * delta
|
||||||
|
|
||||||
|
func standard_movement(delta):
|
||||||
|
input_dir = Input.get_vector("move_left", "move_right", "move_forward", "move_backward")
|
||||||
|
|
||||||
|
if input_dir != null:
|
||||||
|
velocity.x = lerp(velocity.x, input_dir.x * MOVE_SPEED,delta * MOVE_TRANSITION_SPEED)
|
||||||
|
velocity.z = lerp(velocity.z, input_dir.y * MOVE_SPEED,delta * MOVE_TRANSITION_SPEED)
|
||||||
1
Scripts/player.gd.uid
Normal file
1
Scripts/player.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bcgt64gerg8pv
|
||||||
16
Scripts/player_camera.gd
Normal file
16
Scripts/player_camera.gd
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
extends Camera3D
|
||||||
|
class_name PlayerCamera
|
||||||
|
|
||||||
|
@export var player : Player
|
||||||
|
|
||||||
|
const CAM_MOVE_SPEED = 5
|
||||||
|
|
||||||
|
func _physics_process(delta: float) -> void:
|
||||||
|
follow_player(delta)
|
||||||
|
|
||||||
|
|
||||||
|
func follow_player(delta):
|
||||||
|
var player_pos = player.global_position
|
||||||
|
|
||||||
|
global_position.x = lerp(global_position.x,player_pos.x,delta * CAM_MOVE_SPEED)
|
||||||
|
global_position.z = lerp(global_position.z,player_pos.z,delta * CAM_MOVE_SPEED)
|
||||||
1
Scripts/player_camera.gd.uid
Normal file
1
Scripts/player_camera.gd.uid
Normal file
@@ -0,0 +1 @@
|
|||||||
|
uid://bici4k5vkuoos
|
||||||
@@ -11,5 +11,41 @@ config_version=5
|
|||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="Daily Dungeon"
|
config/name="Daily Dungeon"
|
||||||
|
run/main_scene="uid://dbqyyunvx6fdj"
|
||||||
config/features=PackedStringArray("4.4", "GL Compatibility")
|
config/features=PackedStringArray("4.4", "GL Compatibility")
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
|
[autoload]
|
||||||
|
|
||||||
|
MousePos="*res://Scripts/mouse_pos.gd"
|
||||||
|
|
||||||
|
[display]
|
||||||
|
|
||||||
|
window/size/mode=3
|
||||||
|
|
||||||
|
[input]
|
||||||
|
|
||||||
|
move_left={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
move_right={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
move_forward={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
move_backward={
|
||||||
|
"deadzone": 0.2,
|
||||||
|
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
[layer_names]
|
||||||
|
|
||||||
|
3d_physics/layer_8="MouseTable"
|
||||||
|
|||||||
Reference in New Issue
Block a user