7 Commits

Author SHA1 Message Date
Matteo Sonaglioni
7006b2a6f0 Merge branch 'main' into polish3 2026-05-21 22:54:02 +02:00
Matteo Sonaglioni
02311f2ac5 revamp rails - add new tree 2026-05-21 16:48:03 +02:00
Matteo Sonaglioni
4408e0d933 prop: vase - bike - car - tractor - motorbike - housevendingmachine 2026-05-19 17:21:12 +02:00
Matteo Sonaglioni
7331b71877 prop: tenda - windhousedecoration 2026-05-18 23:29:40 +02:00
Matteo Sonaglioni
4bd878d2a8 prop: clima - shrine - post box 2026-05-15 02:51:26 +02:00
Matteo Sonaglioni
c2a6b991dd prop: sign - lantern -scarecrow 2026-05-13 18:54:54 +02:00
c5232d1082 main 2026-05-13 15:50:44 +00:00
65 changed files with 71 additions and 32070 deletions

View File

@@ -2,7 +2,7 @@ extends CharacterBody3D
class_name AIBase class_name AIBase
@export_group("Settings") @export_group("Movement")
@export var speed: float = 4.0 @export var speed: float = 4.0
var _enable_state_machine: bool = true var _enable_state_machine: bool = true
@export var enable_state_machine: bool: @export var enable_state_machine: bool:
@@ -11,7 +11,10 @@ var _enable_state_machine: bool = true
toggle_enable_state_machine() toggle_enable_state_machine()
get: get:
return _enable_state_machine return _enable_state_machine
@export var anim_player: AnimationPlayer
@onready var patrol_radius_shape: CollisionShape3D = $%PatrolRadiusShape
@onready var nav_agent: NavigationAgent3D = $%NavigationAgent3D
@onready var state_machine: StateMachine = $%StateMachine
@export_group("Entities") @export_group("Entities")
enum EntityType { HUMANOID, ANIMAL } enum EntityType { HUMANOID, ANIMAL }
@@ -20,9 +23,6 @@ enum EntityType { HUMANOID, ANIMAL }
@export var allowed_biomes: Array[String] = [] @export var allowed_biomes: Array[String] = []
@export_range(0.0, 100.0, 0.1) var spawn_uniqueness: float = 1.0 @export_range(0.0, 100.0, 0.1) var spawn_uniqueness: float = 1.0
@onready var patrol_radius_shape: CollisionShape3D = $%PatrolRadiusShape
@onready var nav_agent: NavigationAgent3D = $%NavigationAgent3D
@onready var state_machine: StateMachine = $%StateMachine
func _ready() -> void: func _ready() -> void:
randomize() randomize()
@@ -48,11 +48,6 @@ func _physics_process(delta: float) -> void:
velocity.x = direction.x * speed velocity.x = direction.x * speed
velocity.z = direction.z * speed velocity.z = direction.z * speed
if velocity.length_squared() > 0.1:
var look_dir = Vector3(velocity.x, 0, velocity.z)
var target_transform = global_transform.looking_at(global_position - look_dir, Vector3.UP)
global_transform = global_transform.interpolate_with(target_transform, delta * 10.0)
move_and_slide() move_and_slide()
func navigate_to_random_point() -> void: func navigate_to_random_point() -> void:

View File

@@ -2,6 +2,8 @@
[ext_resource type="Script" uid="uid://b30p1yqojbbbk" path="res://core/ai/agents/base/ai_base.gd" id="1_4d1nn"] [ext_resource type="Script" uid="uid://b30p1yqojbbbk" path="res://core/ai/agents/base/ai_base.gd" id="1_4d1nn"]
[ext_resource type="Script" uid="uid://ps3vlu2qvmop" path="res://core/ai/framework/state_machine.gd" id="2_q1hg3"] [ext_resource type="Script" uid="uid://ps3vlu2qvmop" path="res://core/ai/framework/state_machine.gd" id="2_q1hg3"]
[ext_resource type="Script" uid="uid://nga8qx56iwgu" path="res://core/ai/agents/base/idle_state.gd" id="3_26faq"]
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/agents/base/patrol_state.gd" id="4_lim44"]
[sub_resource type="CapsuleMesh" id="CapsuleMesh_mh3lg"] [sub_resource type="CapsuleMesh" id="CapsuleMesh_mh3lg"]
@@ -23,9 +25,18 @@ shape = SubResource("CapsuleShape3D_mh3lg")
[node name="NavigationAgent3D" type="NavigationAgent3D" parent="." unique_id=1370024449] [node name="NavigationAgent3D" type="NavigationAgent3D" parent="." unique_id=1370024449]
unique_name_in_owner = true unique_name_in_owner = true
[node name="StateMachine" type="Node" parent="." unique_id=1286404264] [node name="StateMachine" type="Node" parent="." unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
unique_name_in_owner = true unique_name_in_owner = true
script = ExtResource("2_q1hg3") script = ExtResource("2_q1hg3")
initial_state = NodePath("IdleState")
[node name="IdleState" type="Node" parent="StateMachine" unique_id=763668255]
script = ExtResource("3_26faq")
state_id = &"idle"
[node name="PatrolState" type="Node" parent="StateMachine" unique_id=2054606629]
script = ExtResource("4_lim44")
state_id = &"patrol"
[node name="PatrolRadiusShape" type="CollisionShape3D" parent="." unique_id=1379515938] [node name="PatrolRadiusShape" type="CollisionShape3D" parent="." unique_id=1379515938]
unique_name_in_owner = true unique_name_in_owner = true

View File

@@ -0,0 +1,26 @@
extends State
const PATROL_STATE_ID: StringName = &"patrol"
@export var wait_time: float = 3.0
var runtime_timer: Timer
func enter() -> void:
runtime_timer = Timer.new()
runtime_timer.name = "IdleTimer"
add_child(runtime_timer)
runtime_timer.one_shot = true
runtime_timer.timeout.connect(_on_timer_timeout)
runtime_timer.start(wait_time)
func exit() -> void:
if runtime_timer:
if runtime_timer.is_connected("timeout", _on_timer_timeout):
runtime_timer.timeout.disconnect(_on_timer_timeout)
runtime_timer.queue_free()
runtime_timer = null
func _on_timer_timeout() -> void:
transitioned.emit(self, PATROL_STATE_ID)

View File

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

View File

@@ -1,10 +1,12 @@
extends State extends State
const IDLE_STATE_ID: StringName = &"idle"
@onready var agent: AIBase = owner
func enter() -> void: func enter() -> void:
super.enter()
run_animation()
agent.navigate_to_random_point() agent.navigate_to_random_point()
func physics_update(_delta) -> void: func physics_update(_delta) -> void:
if agent.nav_agent.is_navigation_finished(): if agent.nav_agent.is_navigation_finished():
transitioned.emit(self, next_state_id) transitioned.emit(self, IDLE_STATE_ID)

View File

@@ -1,53 +0,0 @@
[gd_scene format=3 uid="uid://dd8wn62anbts8"]
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_p2hpa"]
[ext_resource type="PackedScene" uid="uid://bjp8wbrtfl4v2" path="res://core/ai/agents/cow/cow_mannequin.tscn" id="2_6gadt"]
[sub_resource type="BoxShape3D" id="BoxShape3D_6gadt"]
size = Vector3(1, 1.4033203, 2.201294)
[node name="AiCow" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_p2hpa")]
anim_player = NodePath("CowMannequin/AnimationPlayer")
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
visible = false
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.20166016, 0.24859619)
shape = SubResource("BoxShape3D_6gadt")
[node name="CowMannequin" parent="." index="5" unique_id=1390675137 instance=ExtResource("2_6gadt")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, -0.9, 0)
[node name="Skeleton3D" parent="CowMannequin/Armature" parent_id_path=PackedInt32Array(1390675137, 698629112) index="0" unique_id=1122133347]
bones/1/position = Vector3(-0.00911771, 0.0010000349, 0.006467142)
bones/3/position = Vector3(0.0017672703, 0.020791268, -0.0029404918)
bones/4/position = Vector3(-0.0032468068, 0.0023884464, 0.01873094)
bones/4/rotation = Quaternion(0.10042217, -0.10042243, 0.69993955, 0.69993955)
bones/5/rotation = Quaternion(0.67686933, -0.7237772, -0.07669845, 0.11005373)
bones/6/rotation = Quaternion(0.2912588, -0.018159404, 0.0055299345, 0.95645595)
bones/8/position = Vector3(-0.0032468068, 0.003527336, -0.02178527)
bones/8/rotation = Quaternion(-0.13840333, 0.13840266, 0.6934296, 0.6934297)
bones/9/rotation = Quaternion(0.63873273, -0.71572495, 0.1725141, -0.22360067)
bones/10/rotation = Quaternion(-0.5624951, 0.015998652, 0.010887203, 0.82657415)
bones/12/position = Vector3(0.0026304817, 0.0015686632, 0.01873094)
bones/12/rotation = Quaternion(0.69003975, 0.6900398, -0.15441875, 0.15441847)
bones/13/rotation = Quaternion(-0.06197851, -0.1282304, 0.73018706, 0.6682384)
bones/14/rotation = Quaternion(0.1410681, 0.051763278, -0.0073862504, 0.9886182)
bones/16/position = Vector3(0.0026304817, 0.005057063, -0.02178527)
bones/16/rotation = Quaternion(0.70645297, 0.7064531, 0.030399354, -0.030400336)
bones/17/rotation = Quaternion(0.198508, 0.20028433, 0.69889957, 0.65728253)
bones/18/rotation = Quaternion(-0.4085358, -0.008673466, -0.0038824743, 0.9126928)
bones/20/position = Vector3(-0.0003228268, 0.009853916, -0.026626632)
bones/26/position = Vector3(-0.00072195934, 0.0076745725, 0.016512236)
bones/26/rotation = Quaternion(0.0042201285, 0.8477673, 0.5299017, -0.021842854)
bones/27/rotation = Quaternion(0.1513493, -0.04170839, -0.04666066, 0.9864972)
bones/28/rotation = Quaternion(-0.6312453, -0.17917253, 0.17600863, 0.73378986)
bones/30/position = Vector3(-0.0003228271, 0.011335416, -0.01734586)
bones/33/position = Vector3(-0.008358625, 0.004613471, -0.013200058)
bones/33/rotation = Quaternion(0.76341635, -5.672201e-07, -6.704141e-07, 0.6459068)
bones/35/position = Vector3(0.008608938, 0.0010000349, 0.028441517)
bones/35/rotation = Quaternion(0.7071068, -6.866289e-07, -1.22965e-06, 0.7071067)
bones/37/position = Vector3(0.007849856, 0.0010000349, -0.02901155)
[editable path="CowMannequin"]

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,81 +0,0 @@
[gd_scene format=3 uid="uid://bjp8wbrtfl4v2"]
[ext_resource type="PackedScene" uid="uid://b7d57tyxi41r1" path="res://core/ai/agents/cow/cow.fbx" id="1_60f5q"]
[ext_resource type="Animation" uid="uid://bsuoywknbbnm0" path="res://core/ai/agents/cow/idle.res" id="2_5ukcj"]
[ext_resource type="Animation" uid="uid://ckmybsnuf4stp" path="res://core/ai/agents/cow/walking.res" id="3_0mu5m"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lowte"]
_data = {
&"idle": ExtResource("2_5ukcj"),
&"walking": ExtResource("3_0mu5m")
}
[node name="CowMannequin" unique_id=786985233 instance=ExtResource("1_60f5q")]
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(698629112) index="0" unique_id=1122133347]
bones/1/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
bones/1/scale = Vector3(1, 1, 1)
bones/4/rotation = Quaternion(0.0015316998, -0.0015319793, 0.70710516, 0.70710516)
bones/5/position = Vector3(1.3183898e-16, 0.006025583, -6.675722e-10)
bones/5/rotation = Quaternion(0.703962, -0.69745475, -0.08083715, 0.10705068)
bones/5/scale = Vector3(1, 0.99999976, 1)
bones/6/position = Vector3(-1.403955e-10, 0.009248152, 3.7406075e-11)
bones/6/rotation = Quaternion(0.18324056, -0.018661192, 0.0034790868, 0.98288476)
bones/6/scale = Vector3(1, 1, 1)
bones/8/scale = Vector3(0.99999994, 0.99999994, 1)
bones/9/position = Vector3(-3.8163916e-17, 0.0046958304, 1.907358e-10)
bones/9/rotation = Quaternion(0.6754388, -0.68119305, 0.18401879, -0.21423234)
bones/9/scale = Vector3(1, 0.99999994, 1.0000001)
bones/10/position = Vector3(7.2902e-10, 0.011755081, -3.0995417e-10)
bones/10/rotation = Quaternion(-0.35146433, 0.018116632, 0.0068026204, 0.9360013)
bones/10/scale = Vector3(0.9999999, 1, 1.0000001)
bones/12/rotation = Quaternion(0.707105, 0.70710486, 0.0016303749, -0.0016306548)
bones/12/scale = Vector3(1, 1, 1)
bones/13/position = Vector3(-1.5265567e-16, 0.0060255853, 6.6757205e-10)
bones/13/rotation = Quaternion(-0.057434652, -0.13032891, 0.70625645, 0.69348216)
bones/13/scale = Vector3(0.99999994, 1, 0.9999999)
bones/14/position = Vector3(-4.5945833e-10, 0.009248151, -5.7053273e-09)
bones/14/rotation = Quaternion(0.18302466, 0.051401887, -0.0095829815, 0.9817169)
bones/14/scale = Vector3(1, 1.0000001, 0.99999994)
bones/16/rotation = Quaternion(0.7071062, 0.7071063, 0.0008663558, -0.0008670737)
bones/16/scale = Vector3(1, 1, 1)
bones/17/position = Vector3(1.7347235e-17, 0.0046958304, -1.9073432e-10)
bones/17/rotation = Quaternion(0.1907959, 0.2076444, 0.67355627, 0.6832297)
bones/17/scale = Vector3(1, 1, 1.0000001)
bones/18/position = Vector3(1.834215e-10, 0.011755081, -1.7500804e-09)
bones/18/rotation = Quaternion(-0.35151497, -0.0088962475, -0.003340601, 0.93613404)
bones/18/scale = Vector3(1, 1.0000001, 0.99999994)
bones/20/rotation = Quaternion(0.60080343, -0.03016121, 0.03526711, 0.7980488)
bones/21/position = Vector3(0.00011168665, 0.0039693406, -0.013754063)
bones/21/rotation = Quaternion(0.98885596, 3.1474094e-08, 2.23642e-07, -0.14887528)
bones/21/scale = Vector3(1, 1.0000001, 1.0000001)
bones/22/position = Vector3(-2.5714557e-11, 0.00836347, -9.433328e-09)
bones/22/rotation = Quaternion(-0.6231534, 9.0575064e-08, -7.589477e-08, 0.78209966)
bones/22/scale = Vector3(1, 0.9999999, 0.99999994)
bones/23/position = Vector3(-2.1545942e-12, 0.0072733457, -2.594807e-09)
bones/23/rotation = Quaternion(-1.8223004e-08, 0.98608583, -0.16623694, 2.7314604e-07)
bones/23/scale = Vector3(1, 0.9999997, 0.9999997)
bones/24/position = Vector3(3.3663968e-13, 0.006993335, -2.8376712e-09)
bones/24/rotation = Quaternion(-0.048028953, 2.6759114e-08, 4.5447155e-08, 0.998846)
bones/24/scale = Vector3(1, 0.99999994, 1.0000001)
bones/26/rotation = Quaternion(0.0054439656, 0.86556005, 0.50029516, -0.021930087)
bones/26/scale = Vector3(1, 1.0000002, 1)
bones/27/position = Vector3(1.8971762e-10, 0.013189232, -5.7312505e-10)
bones/27/rotation = Quaternion(0.15129425, -0.018451845, -0.013046658, 0.9882304)
bones/27/scale = Vector3(0.99999994, 0.99999994, 1.0000001)
bones/28/position = Vector3(-2.1601461e-10, 0.013573305, 4.8459786e-10)
bones/28/rotation = Quaternion(-0.6245376, -0.19781438, 0.16660775, 0.7369289)
bones/28/scale = Vector3(1, 0.9999999, 1.0000001)
bones/30/rotation = Quaternion(3.5765906e-06, 0.67050743, 0.7419029, 3.2289404e-06)
bones/31/position = Vector3(-1.2499713e-14, 0.01925819, -1.2902629e-09)
bones/31/rotation = Quaternion(0.086390205, 0.0012038474, -0.013495129, 0.99616927)
bones/31/scale = Vector3(0.9999999, 0.99999994, 1)
bones/33/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
bones/33/scale = Vector3(1, 1, 1)
bones/35/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
bones/35/scale = Vector3(1, 1, 1)
bones/37/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
bones/37/scale = Vector3(1, 1, 1)
[node name="AnimationPlayer" parent="." index="1" unique_id=1944296898]
libraries/custom = SubResource("AnimationLibrary_lowte")

Binary file not shown.

Binary file not shown.

View File

@@ -1,61 +0,0 @@
[gd_scene format=3 uid="uid://cayakdk7gmlyg"]
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_e5v3h"]
[ext_resource type="PackedScene" uid="uid://dqhueybnlrrqx" path="res://core/ai/agents/horse/horse_mannequin.tscn" id="2_4t6jw"]
[ext_resource type="Animation" uid="uid://doyi6etqvy4n2" path="res://core/ai/agents/horse/idle.res" id="3_qe4rt"]
[ext_resource type="Animation" uid="uid://hotr7r3fd1sq" path="res://core/ai/agents/horse/walking.res" id="4_q8m0v"]
[sub_resource type="BoxShape3D" id="BoxShape3D_4t6jw"]
size = Vector3(1, 1.4991455, 1.7949219)
[sub_resource type="AnimationLibrary" id="AnimationLibrary_or6xs"]
_data = {
&"idle": ExtResource("3_qe4rt"),
&"walking": ExtResource("4_q8m0v")
}
[node name="AiHorse" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_e5v3h")]
anim_player = NodePath("HorseMannequin/AnimationPlayer")
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
visible = false
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.2074585, 0.14794922)
shape = SubResource("BoxShape3D_4t6jw")
[node name="HorseMannequin" parent="." index="5" unique_id=1289880358 instance=ExtResource("2_4t6jw")]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
[node name="Skeleton3D" parent="HorseMannequin/Armature" parent_id_path=PackedInt32Array(1289880358, 502167939) index="0" unique_id=972507008]
bones/1/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
bones/4/rotation = Quaternion(0.0012952884, -0.0012955684, 0.7071056, 0.7071057)
bones/5/rotation = Quaternion(0.70685357, -0.70227593, -0.04508998, 0.07164877)
bones/6/rotation = Quaternion(0.13314606, -0.018813655, 0.0025279524, 0.9909147)
bones/8/rotation = Quaternion(0.00078355736, -0.00078427553, 0.70710635, 0.70710635)
bones/9/rotation = Quaternion(0.6711558, -0.6744515, 0.20213859, -0.23195927)
bones/10/rotation = Quaternion(-0.3574636, 0.018072592, 0.006918765, 0.9337266)
bones/12/rotation = Quaternion(0.7071054, 0.7071055, 0.0013743625, -0.0013746425)
bones/13/rotation = Quaternion(-0.02159133, -0.09508795, 0.70796114, 0.69948786)
bones/14/rotation = Quaternion(0.13298893, 0.051821847, -0.0069631753, 0.9897374)
bones/16/rotation = Quaternion(0.7071064, 0.70710653, 0.00066260004, -0.00066331815)
bones/17/rotation = Quaternion(0.20885532, 0.22542001, 0.6690968, 0.6766645)
bones/18/rotation = Quaternion(-0.3575147, -0.008874607, -0.003397635, 0.9338592)
bones/20/rotation = Quaternion(0.6010642, -0.021428203, 0.02848876, 0.79840535)
bones/21/rotation = Quaternion(0.99267024, 2.482745e-08, 2.2239277e-07, -0.12085533)
bones/22/rotation = Quaternion(-0.6165577, 9.507701e-08, -7.2693986e-08, 0.7873097)
bones/23/rotation = Quaternion(-1.5614631e-08, 0.9891947, -0.14660779, 2.7153942e-07)
bones/24/rotation = Quaternion(0.03904001, 3.5621138e-08, 1.47960275e-08, 0.99923766)
bones/26/rotation = Quaternion(0.008421451, 0.95973384, 0.27944198, -0.027427308)
bones/27/rotation = Quaternion(-0.08868468, -0.022488868, -0.01781765, 0.9956465)
bones/28/rotation = Quaternion(-0.62453747, -0.1978144, 0.1666077, 0.736929)
bones/30/rotation = Quaternion(3.4527793e-06, 0.6944211, 0.71956885, 3.3297817e-06)
bones/31/rotation = Quaternion(0.053752482, 0.0007617086, -0.013526975, 0.9984624)
bones/33/rotation = Quaternion(0.7071068, -6.209646e-07, -6.209645e-07, 0.7071067)
bones/35/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
bones/37/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
[node name="AnimationPlayer" parent="HorseMannequin" index="1" unique_id=868895357]
libraries/custom = SubResource("AnimationLibrary_or6xs")
[editable path="HorseMannequin"]

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
[gd_scene format=3 uid="uid://dqhueybnlrrqx"]
[ext_resource type="PackedScene" uid="uid://be1ql8okme4n7" path="res://core/ai/agents/horse/horse.fbx" id="1_fbqil"]
[node name="HorseMannequin" unique_id=1289880358 instance=ExtResource("1_fbqil")]

Binary file not shown.

Binary file not shown.

View File

@@ -1,10 +0,0 @@
[gd_scene format=3 uid="uid://bdqeshcwwnyc4"]
[ext_resource type="PackedScene" uid="uid://mvh2v6v72stt" path="res://core/ai/agents/human/ai_human.tscn" id="1_awhwq"]
[node name="AiCitizen" unique_id=1228675528 instance=ExtResource("1_awhwq")]
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
initial_state = NodePath("")
[editable path="HumanMannequin"]

View File

@@ -1,53 +0,0 @@
[gd_scene format=3 uid="uid://bbseno7clbepx"]
[ext_resource type="PackedScene" uid="uid://bdqeshcwwnyc4" path="res://core/ai/agents/human/ai_citizen.tscn" id="1_cduuu"]
[node name="AiCitizenSitter" unique_id=1228675528 instance=ExtResource("1_cduuu")]
[node name="SK_Mannequin" parent="HumanMannequin" parent_id_path=PackedInt32Array(333236377) index="0" unique_id=377304892]
transform = Transform3D(0.99906886, 0.025971904, -0.03444738, 0.038254507, -0.16420224, 0.98568463, 0.019943757, -0.98608464, -0.1650429, 0.034450583, -0.44864154, 0.18535595)
[node name="Skeleton3D" parent="HumanMannequin/SK_Mannequin" index="0" unique_id=427572412]
bones/2/rotation = Quaternion(-0.007029906, 0.032859802, -0.23654123, 0.97104025)
bones/3/rotation = Quaternion(-0.000884556, 0.0033522977, 0.10280211, 0.99469584)
bones/4/rotation = Quaternion(-0.00040807336, 0.0034836144, 0.0045103733, 0.9999837)
bones/5/rotation = Quaternion(0.13797933, 0.74176145, 0.017092831, 0.6560942)
bones/6/rotation = Quaternion(0.049281683, 0.43982458, -0.36467218, 0.81923133)
bones/7/rotation = Quaternion(-0.049351897, 0.03842162, -0.476375, 0.87701494)
bones/8/rotation = Quaternion(-0.41694272, -0.05554785, -0.18030654, 0.889136)
bones/9/rotation = Quaternion(0.094457716, 0.050416686, 0.50820345, 0.85455555)
bones/10/rotation = Quaternion(0.011606372, 0.08610083, 0.2719557, 0.95838)
bones/12/rotation = Quaternion(-0.00016985182, 0.0032503307, 0.42722064, 0.90414155)
bones/13/rotation = Quaternion(-0.018024907, 0.015150134, 0.27278355, 0.9617873)
bones/15/rotation = Quaternion(-0.13467012, -0.10029431, 0.2853874, 0.94358844)
bones/16/rotation = Quaternion(0.010311794, -0.034373257, 0.13259757, 0.9905202)
bones/18/rotation = Quaternion(-0.09865642, -0.08747626, 0.37470394, 0.917721)
bones/19/rotation = Quaternion(0.0042531197, -0.033760007, 0.1860149, 0.98195755)
bones/21/rotation = Quaternion(0.70078146, 0.36200625, -0.001720201, 0.61469823)
bones/22/rotation = Quaternion(-0.001820262, 0.12128391, 0.22490783, 0.9668006)
bones/26/rotation = Quaternion(0.76902086, -0.13267346, -0.62528044, -0.005393706)
bones/27/rotation = Quaternion(0.034201004, 0.38763282, -0.48749813, 0.7816117)
bones/28/rotation = Quaternion(-0.053170834, 0.025972798, -0.32202634, 0.9448796)
bones/29/rotation = Quaternion(-0.43919632, 0.049489442, -0.098192796, 0.89163643)
bones/30/rotation = Quaternion(0.103668794, 0.04579189, 0.46590617, 0.8775462)
bones/31/rotation = Quaternion(0.011519267, 0.09922818, 0.29214594, 0.95114243)
bones/33/rotation = Quaternion(9.437185e-05, 0.009016322, 0.44048977, 0.89771235)
bones/34/rotation = Quaternion(-0.018226523, 0.017689873, 0.23132406, 0.97254515)
bones/36/rotation = Quaternion(-0.13272016, -0.101737194, 0.26830983, 0.9487069)
bones/37/rotation = Quaternion(0.010193698, -0.046628788, 0.19672133, 0.97929704)
bones/39/rotation = Quaternion(-0.110196866, -0.05036995, 0.35450295, 0.9271716)
bones/40/rotation = Quaternion(0.0042593707, -0.028552007, 0.17841409, 0.983532)
bones/42/rotation = Quaternion(0.7297342, 0.26573184, -0.09265223, 0.6231294)
bones/43/rotation = Quaternion(0.06426929, 0.22943345, 0.1991351, 0.95056564)
bones/47/rotation = Quaternion(0.00421817, -0.00037953872, -0.21590644, 0.9764049)
bones/49/rotation = Quaternion(0.14012733, -0.038448263, 0.6819175, 0.7168505)
bones/50/rotation = Quaternion(-0.05631607, 0.020481886, -0.74316776, 0.6664162)
bones/52/rotation = Quaternion(-0.0004946971, -0.048858073, -0.0074254284, 0.998778)
bones/55/rotation = Quaternion(0.0132777635, 0.10731075, 0.71409845, -0.6916441)
bones/56/rotation = Quaternion(0.03920827, -0.09832406, -0.75485575, 0.64729285)
bones/58/rotation = Quaternion(0.01656407, -0.06386153, 0.030505493, 0.9973549)
[node name="AnimationPlayer" parent="HumanMannequin" parent_id_path=PackedInt32Array(333236377) index="1" unique_id=233699491]
autoplay = &"custom/sit"
[editable path="HumanMannequin"]

View File

@@ -1,25 +0,0 @@
[gd_scene format=3 uid="uid://bnnuke5e7e1yr"]
[ext_resource type="PackedScene" uid="uid://bdqeshcwwnyc4" path="res://core/ai/agents/human/ai_citizen.tscn" id="1_dms8s"]
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="2_awhwq"]
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_8d0tj"]
[node name="AiCitizenWalker" unique_id=1228675528 instance=ExtResource("1_dms8s")]
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
initial_state = NodePath("IdleState")
[node name="IdleState" type="Node" parent="StateMachine" index="0" unique_id=42226979]
script = ExtResource("2_awhwq")
state_id = &"idle"
next_state_id = &"patrol"
animation_name = "custom/idle"
[node name="PatrolState" type="Node" parent="StateMachine" index="1" unique_id=1357892786]
script = ExtResource("3_8d0tj")
state_id = &"patrol"
next_state_id = &"idle"
animation_name = "custom/walking"
wait_time = 0.0
[editable path="HumanMannequin"]

View File

@@ -1,27 +0,0 @@
[gd_scene format=3 uid="uid://ceqxsqfiotm5j"]
[ext_resource type="PackedScene" uid="uid://mvh2v6v72stt" path="res://core/ai/agents/human/ai_human.tscn" id="1_l2y7m"]
[ext_resource type="Script" uid="uid://bngfthvt04ivv" path="res://core/ai/framework/patrol_state.gd" id="3_2oda6"]
[ext_resource type="Script" uid="uid://d3hy70ec8vqo5" path="res://core/ai/framework/run_animation_state.gd" id="4_2oda6"]
[node name="AiFarmer" unique_id=1228675528 instance=ExtResource("1_l2y7m")]
[node name="StateMachine" parent="." index="3" unique_id=1286404264 node_paths=PackedStringArray("initial_state")]
initial_state = NodePath("GatherState")
[node name="PatrolState" type="Node" parent="StateMachine" index="0" unique_id=930272128]
script = ExtResource("3_2oda6")
state_id = &"patrol"
next_state_id = &"gather"
animation_name = "custom/walking"
wait_time = 0.0
[node name="GatherState" type="Node" parent="StateMachine" index="1" unique_id=48091671]
script = ExtResource("4_2oda6")
state_id = &"gather"
next_state_id = &"patrol"
animation_name = "custom/gather"
exit_on_animation_finished = true
wait_time = 1.0
[editable path="HumanMannequin"]

View File

@@ -1,58 +0,0 @@
[gd_scene format=3 uid="uid://mvh2v6v72stt"]
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_hko2w"]
[ext_resource type="PackedScene" uid="uid://legcajdd0jsy" path="res://core/ai/agents/human/human_mannequin.tscn" id="2_cnrgi"]
[node name="AiHuman" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_hko2w")]
anim_player = NodePath("HumanMannequin/AnimationPlayer")
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
visible = false
[node name="HumanMannequin" parent="." index="5" unique_id=333236377 instance=ExtResource("2_cnrgi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.9, 0)
[node name="SK_Mannequin" parent="HumanMannequin" index="0" unique_id=377304892]
transform = Transform3D(0.99999994, 0, 0, 0, -4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0)
[node name="Skeleton3D" parent="HumanMannequin/SK_Mannequin" index="0" unique_id=427572412]
bones/2/rotation = Quaternion(-2.1971985e-24, 0, -0.062388558, 0.99805194)
bones/3/rotation = Quaternion(4.135903e-25, 1.6543612e-24, 0.12241964, 0.99247843)
bones/4/rotation = Quaternion(2.2850868e-23, 0, 0.024252614, 0.9997059)
bones/5/rotation = Quaternion(0.20891805, 0.7294167, 0.12304399, 0.6396598)
bones/6/rotation = Quaternion(0.11299576, 0.33062968, -0.16141911, 0.92296255)
bones/7/rotation = Quaternion(-0.05401651, -0.079182714, -0.26340967, 0.9599103)
bones/8/rotation = Quaternion(-0.61789525, 0.019371983, 0.010653294, 0.7859496)
bones/9/rotation = Quaternion(0.1333045, -0.0031801206, 0.22317973, 0.96561414)
bones/10/rotation = Quaternion(0.012043531, -0.0029058352, 0.10444825, 0.9944532)
bones/12/rotation = Quaternion(0.028522171, -0.05687394, 0.19848494, 0.9780366)
bones/13/rotation = Quaternion(-0.018628873, 0.007972199, 0.10711657, 0.99404)
bones/15/rotation = Quaternion(-0.1295377, -0.18789689, 0.14421311, 0.9628693)
bones/16/rotation = Quaternion(0.010359715, -0.010519396, 0.09774818, 0.9951017)
bones/18/rotation = Quaternion(-0.095480494, -0.116765715, 0.18851167, 0.9704188)
bones/19/rotation = Quaternion(0.00430111, -0.0141675975, 0.11596311, 0.9931432)
bones/21/rotation = Quaternion(0.6303091, 0.37152508, -0.07729015, 0.6772783)
bones/22/rotation = Quaternion(0.0026046867, 0.086798474, 0.13014112, 0.98768544)
bones/26/rotation = Quaternion(0.7294168, -0.20891781, -0.6396598, 0.12304417)
bones/27/rotation = Quaternion(0.11299576, 0.33062968, -0.16141911, 0.92296255)
bones/28/rotation = Quaternion(-0.05401651, -0.079182714, -0.26340967, 0.9599103)
bones/29/rotation = Quaternion(-0.61789525, 0.019371983, 0.010653294, 0.7859496)
bones/30/rotation = Quaternion(0.1333045, -0.0031801206, 0.22317973, 0.96561414)
bones/31/rotation = Quaternion(0.012043531, -0.0029058352, 0.10444825, 0.9944532)
bones/33/rotation = Quaternion(0.028522171, -0.05687394, 0.19848494, 0.9780366)
bones/34/rotation = Quaternion(-0.018628873, 0.007972199, 0.10711657, 0.99404)
bones/36/rotation = Quaternion(-0.1295377, -0.18789689, 0.14421311, 0.9628693)
bones/37/rotation = Quaternion(0.010359715, -0.010519396, 0.09774818, 0.9951017)
bones/39/rotation = Quaternion(-0.095480494, -0.116765715, 0.18851167, 0.9704188)
bones/40/rotation = Quaternion(0.00430111, -0.0141675975, 0.11596311, 0.9931432)
bones/42/rotation = Quaternion(0.6303091, 0.37152508, -0.07729015, 0.6772783)
bones/43/rotation = Quaternion(0.0026047025, 0.08679848, 0.13014114, 0.98768544)
bones/47/rotation = Quaternion(-1.5923227e-23, 0, -0.20371072, 0.97903115)
bones/49/rotation = Quaternion(0.07370486, -0.062138822, -0.008584324, 0.9953053)
bones/50/rotation = Quaternion(-0.048884246, 0.018863896, -0.06552225, 0.99647444)
bones/52/rotation = Quaternion(-0.0058857696, 0.03199128, 0.07035475, 0.9969916)
bones/55/rotation = Quaternion(0.062138822, 0.07370486, 0.9953054, 0.008584333)
bones/56/rotation = Quaternion(-0.048884246, 0.018863896, -0.06552225, 0.99647444)
bones/58/rotation = Quaternion(-0.0058857696, 0.03199128, 0.07035475, 0.9969916)
[editable path="HumanMannequin"]

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,94 +0,0 @@
[gd_scene format=3 uid="uid://legcajdd0jsy"]
[ext_resource type="PackedScene" uid="uid://ys8pesrqeyv2" path="res://core/ai/agents/human/human_mannequin_mixamo.fbx" id="1_561x5"]
[ext_resource type="Animation" uid="uid://c3rjx3uo8mbt3" path="res://core/ai/agents/human/gather.res" id="2_3r4wv"]
[ext_resource type="Animation" uid="uid://b2wo1mpqihko6" path="res://core/ai/agents/human/idle.res" id="2_b4vfe"]
[ext_resource type="Animation" uid="uid://ckkmrph86jlsd" path="res://core/ai/agents/human/walking.res" id="3_jl3mr"]
[ext_resource type="Animation" uid="uid://biaxql3fr1787" path="res://core/ai/agents/human/sit.res" id="4_xaokg"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3r4wv"]
_data = {
&"gather": ExtResource("2_3r4wv"),
&"idle": ExtResource("2_b4vfe"),
&"sit": ExtResource("4_xaokg"),
&"walking": ExtResource("3_jl3mr")
}
[node name="HumanMannequin" unique_id=1583776159 instance=ExtResource("1_561x5")]
[node name="SK_Mannequin" parent="." index="0" unique_id=377304892]
transform = Transform3D(0.9990688, 0.025971903, -0.034447376, 0.038254507, -0.16420223, 0.9856846, 0.019943757, -0.9860846, -0.16504289, 0.034450583, -0.44864154, 0.18535595)
[node name="Skeleton3D" parent="SK_Mannequin" index="0" unique_id=427572412]
bones/2/rotation = Quaternion(-0.007029906, 0.032859802, -0.23654123, 0.97104025)
bones/3/rotation = Quaternion(-0.000884556, 0.0033522977, 0.10280211, 0.99469584)
bones/4/position = Vector3(0.13407329, 0.004204774, -5.584202e-15)
bones/4/rotation = Quaternion(-0.00040807336, 0.0034836144, 0.0045103733, 0.9999837)
bones/5/rotation = Quaternion(0.13797933, 0.74176145, 0.017092831, 0.6560942)
bones/6/position = Vector3(0.15784872, 1.4317955e-11, 6.3591354e-11)
bones/6/rotation = Quaternion(0.049281683, 0.43982458, -0.36467218, 0.81923133)
bones/7/position = Vector3(0.3033993, 8.407472e-11, 3.197531e-11)
bones/7/rotation = Quaternion(-0.049351897, 0.03842162, -0.476375, 0.87701494)
bones/8/position = Vector3(0.26975143, 1.572964e-11, -9.6207486e-11)
bones/8/rotation = Quaternion(-0.41694272, -0.05554785, -0.18030654, 0.889136)
bones/9/rotation = Quaternion(0.094457716, 0.050416686, 0.50820345, 0.85455555)
bones/10/position = Vector3(0.04287498, -2.9850333e-10, 5.048406e-11)
bones/10/rotation = Quaternion(0.011606372, 0.08610083, 0.2719557, 0.95838)
bones/11/position = Vector3(0.0339379, 1.1695445e-10, -2.349232e-11)
bones/12/rotation = Quaternion(-0.00016985182, 0.0032503307, 0.42722064, 0.90414155)
bones/13/position = Vector3(0.046403743, -3.648193e-11, 1.830866e-11)
bones/13/rotation = Quaternion(-0.018024907, 0.015150134, 0.27278355, 0.9617873)
bones/14/position = Vector3(0.036488436, -1.9989443e-10, 1.6076356e-11)
bones/15/rotation = Quaternion(-0.13467012, -0.10029431, 0.2853874, 0.94358844)
bones/16/position = Vector3(0.03570981, 1.8669866e-10, 3.9181436e-12)
bones/16/rotation = Quaternion(0.010311794, -0.034373257, 0.13259757, 0.9905202)
bones/17/position = Vector3(0.029856307, -3.005879e-10, -4.0375425e-11)
bones/18/rotation = Quaternion(-0.09865642, -0.08747626, 0.37470394, 0.917721)
bones/19/position = Vector3(0.04430177, 4.6665116e-11, -9.4033115e-12)
bones/19/rotation = Quaternion(0.0042531197, -0.033760007, 0.1860149, 0.98195755)
bones/20/position = Vector3(0.034766525, -1.6786372e-10, 2.768652e-11)
bones/21/rotation = Quaternion(0.70078146, 0.36200625, -0.001720201, 0.61469823)
bones/22/position = Vector3(0.038696717, 5.0118687e-11, 9.9849684e-11)
bones/22/rotation = Quaternion(-0.001820262, 0.12128391, 0.22490783, 0.9668006)
bones/23/position = Vector3(0.040621713, 1.0721979e-11, -5.127232e-12)
bones/24/position = Vector3(0.14, 1.110223e-16, 2.220446e-16)
bones/24/rotation = Quaternion(-2.7755576e-17, -6.938894e-17, -6.938894e-18, 1)
bones/25/position = Vector3(0.005, -2.7755576e-17, 0)
bones/25/rotation = Quaternion(-9.540979e-18, -2.7755576e-17, 9.540979e-18, 1)
bones/26/rotation = Quaternion(0.76902086, -0.13267346, -0.62528044, -0.005393706)
bones/27/rotation = Quaternion(0.034201004, 0.38763282, -0.48749813, 0.7816117)
bones/28/rotation = Quaternion(-0.053170834, 0.025972798, -0.32202634, 0.9448796)
bones/29/position = Vector3(-0.26975244, 2.563412e-07, -1.1905385e-08)
bones/29/rotation = Quaternion(-0.43919632, 0.049489442, -0.098192796, 0.89163643)
bones/30/rotation = Quaternion(0.103668794, 0.04579189, 0.46590617, 0.8775462)
bones/31/rotation = Quaternion(0.011519267, 0.09922818, 0.29214594, 0.95114243)
bones/33/rotation = Quaternion(9.437185e-05, 0.009016322, 0.44048977, 0.89771235)
bones/34/rotation = Quaternion(-0.018226523, 0.017689873, 0.23132406, 0.97254515)
bones/36/rotation = Quaternion(-0.13272016, -0.101737194, 0.26830983, 0.9487069)
bones/37/rotation = Quaternion(0.010193698, -0.046628788, 0.19672133, 0.97929704)
bones/39/rotation = Quaternion(-0.110196866, -0.05036995, 0.35450295, 0.9271716)
bones/40/rotation = Quaternion(0.0042593707, -0.028552007, 0.17841409, 0.983532)
bones/42/rotation = Quaternion(0.7297342, 0.26573184, -0.09265223, 0.6231294)
bones/43/rotation = Quaternion(0.06426929, 0.22943345, 0.1991351, 0.95056564)
bones/45/rotation = Quaternion(-0.1176271, 1.3974802e-16, -6.288661e-17, 0.99305785)
bones/46/rotation = Quaternion(-0.17323487, -2.099698e-25, 1.9374898e-17, 0.9848805)
bones/47/rotation = Quaternion(0.00421817, -0.00037953872, -0.21590644, 0.9764049)
bones/48/position = Vector3(0.092836134, 0.0036415688, 2.7747754e-17)
bones/48/rotation = Quaternion(1.2661336e-17, 9.989056e-18, 0.13354194, 0.99104315)
bones/49/rotation = Quaternion(0.14012733, -0.038448263, 0.6819175, 0.7168505)
bones/50/position = Vector3(-0.42572036, 1.7074263e-12, -4.667877e-12)
bones/50/rotation = Quaternion(-0.05631607, 0.020481886, -0.74316776, 0.6664162)
bones/51/position = Vector3(-0.20476776, -1.3877788e-17, 0)
bones/52/position = Vector3(-0.4019669, -3.933849e-11, 1.899425e-12)
bones/52/rotation = Quaternion(-0.0004946971, -0.048858073, -0.0074254284, 0.998778)
bones/54/position = Vector3(-0.22094238, 4.7704896e-18, 0)
bones/55/rotation = Quaternion(0.0132777635, 0.10731075, 0.71409845, -0.6916441)
bones/56/rotation = Quaternion(0.03920827, -0.09832406, -0.75485575, 0.64729285)
bones/57/position = Vector3(0.20476907, 0, -5.551115e-17)
bones/58/rotation = Quaternion(0.01656407, -0.06386153, 0.030505493, 0.9973549)
bones/60/position = Vector3(0.22094241, 3.035766e-18, -2.7755576e-17)
bones/67/position = Vector3(-4.440892e-16, 0, 7.632783e-17)
bones/67/rotation = Quaternion(-2.8449465e-16, 8.326673e-17, 2.7755576e-17, 1)
[node name="AnimationPlayer" parent="." index="1" unique_id=233699491]
libraries/custom = SubResource("AnimationLibrary_3r4wv")

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

View File

@@ -1,68 +0,0 @@
[gd_scene format=3 uid="uid://c2hg6hu2y5srb"]
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_j8spt"]
[ext_resource type="PackedScene" uid="uid://b0xb7kl4rjd66" path="res://core/ai/agents/pig/pig_mannequin.tscn" id="2_qmc2e"]
[ext_resource type="Animation" uid="uid://cneiflmpalcg5" path="res://core/ai/agents/pig/idle.res" id="3_lvpc5"]
[ext_resource type="Animation" uid="uid://0563r715lmw1" path="res://core/ai/agents/pig/walking.res" id="4_3f3hl"]
[sub_resource type="BoxShape3D" id="BoxShape3D_lvpc5"]
size = Vector3(1, 1.4848633, 1.960083)
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lvpc5"]
_data = {
&"idle": ExtResource("3_lvpc5"),
&"walking": ExtResource("4_3f3hl")
}
[node name="AiPig" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_j8spt")]
anim_player = NodePath("PigMannequin/AnimationPlayer")
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
visible = false
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.24243164, 0.10699463)
shape = SubResource("BoxShape3D_lvpc5")
[node name="PigMannequin" parent="." index="5" unique_id=926755470 instance=ExtResource("2_qmc2e")]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
[node name="Skeleton3D" parent="PigMannequin/Armature" parent_id_path=PackedInt32Array(926755470, 1135672511) index="0" unique_id=689596368]
bones/1/rotation = Quaternion(0.7071068, -7.052583e-07, -7.052583e-07, 0.7071067)
bones/3/position = Vector3(5.37765e-05, 0.017809996, -0.007695386)
bones/3/rotation = Quaternion(-0.027121998, 0, 0, 0.99963224)
bones/4/position = Vector3(-0.004269575, -0.0009057691, 0.018837402)
bones/4/rotation = Quaternion(-0.20850496, 0.20850474, 0.675667, 0.6756669)
bones/5/rotation = Quaternion(0.70767504, -0.7007484, -0.04928623, 0.07562217)
bones/6/rotation = Quaternion(0.5074964, -0.016355418, 0.009635334, 0.86144483)
bones/8/position = Vector3(-0.004269574, 0.0008725248, -0.02819033)
bones/8/rotation = Quaternion(-0.021000031, 0.020999499, 0.7067949, 0.7067949)
bones/9/rotation = Quaternion(0.6762797, -0.7030302, 0.13760945, -0.17163305)
bones/10/rotation = Quaternion(-0.76131815, 0.012544005, 0.014735432, 0.64808965)
bones/12/position = Vector3(0.0036532492, -0.0009057691, 0.018837402)
bones/12/rotation = Quaternion(0.67572093, 0.6757209, -0.20832984, 0.20832963)
bones/13/rotation = Quaternion(-0.025831472, -0.099082425, 0.70891863, 0.6978179)
bones/14/rotation = Quaternion(0.50689334, 0.045050938, -0.026540417, 0.8604216)
bones/16/position = Vector3(0.0036521717, 0.0008013838, -0.028183708)
bones/16/rotation = Quaternion(0.7068031, 0.7068031, -0.020723455, 0.020722982)
bones/17/rotation = Quaternion(0.1443776, 0.16487122, 0.6747477, 0.7047611)
bones/18/rotation = Quaternion(-0.7649948, -0.0061196624, -0.0072699804, 0.64396644)
bones/20/position = Vector3(-0.00042349403, 0.0063493187, -0.030968314)
bones/20/rotation = Quaternion(0.60138106, 0.012805484, 0.0019118772, 0.79885745)
bones/22/position = Vector3(-0.0002038494, 0.0041766805, 0.0044565103)
bones/22/rotation = Quaternion(0.0076635648, 0.7548352, 0.6556045, -0.018651871)
bones/23/rotation = Quaternion(0.065689825, -0.010677165, -0.019551655, 0.99759144)
bones/24/rotation = Quaternion(-0.24106143, -0.2388839, 0.03569213, 0.9399734)
bones/26/position = Vector3(-0.00032282702, 0.010153349, -0.021613695)
bones/26/rotation = Quaternion(3.6196245e-06, 0.6452338, 0.7639852, 3.2175833e-06)
bones/27/rotation = Quaternion(0.0455184, 0.00040800165, -0.025042463, 0.99864954)
bones/29/position = Vector3(-0.01117923, 0.0010000349, -0.03163386)
bones/29/rotation = Quaternion(0.7071068, -6.178108e-07, -6.178107e-07, 0.7071067)
bones/31/rotation = Quaternion(0.7071068, -1.0424332e-06, -1.0424329e-06, 0.7071067)
bones/33/position = Vector3(0.010670463, 0.0010000349, -0.03166372)
bones/33/rotation = Quaternion(0.70755845, -7.1388774e-07, -1.0355643e-06, 0.7066547)
[node name="AnimationPlayer" parent="PigMannequin" index="1" unique_id=1348500176]
libraries/custom = SubResource("AnimationLibrary_lvpc5")
[editable path="PigMannequin"]

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
[gd_scene format=3 uid="uid://b0xb7kl4rjd66"]
[ext_resource type="PackedScene" uid="uid://bi5f24frndw7j" path="res://core/ai/agents/pig/pig.fbx" id="1_ptg6h"]
[node name="PigMannequin" unique_id=926755470 instance=ExtResource("1_ptg6h")]

Binary file not shown.

View File

@@ -1,40 +0,0 @@
[gd_scene format=3 uid="uid://2md4l83fy8kr"]
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_0bu1i"]
[ext_resource type="PackedScene" uid="uid://c16j3umhplew4" path="res://core/ai/agents/pug/pug_mannequin.tscn" id="2_n0mit"]
[ext_resource type="Animation" uid="uid://cwrfo6h44qghm" path="res://core/ai/agents/pug/idle.res" id="3_hv1px"]
[ext_resource type="Animation" uid="uid://dbv2ikwa8h4nb" path="res://core/ai/agents/pug/walking.res" id="4_cjq2y"]
[sub_resource type="AnimationLibrary" id="AnimationLibrary_iapui"]
_data = {
&"idle": ExtResource("3_hv1px"),
&"walking": ExtResource("4_cjq2y")
}
[node name="AiPug" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_0bu1i")]
anim_player = NodePath("PugMannequin/AnimationPlayer")
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
visible = false
[node name="PugMannequin" parent="." index="5" unique_id=1732134047 instance=ExtResource("2_n0mit")]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
[node name="Skeleton3D" parent="PugMannequin/Armature" parent_id_path=PackedInt32Array(1732134047, 251322627) index="0" unique_id=1067550931]
bones/8/position = Vector3(-0.0054483665, 0.008346455, -0.020266803)
bones/8/rotation = Quaternion(-0.007561639, 0.007561228, 0.70706636, 0.70706636)
bones/9/rotation = Quaternion(0.6665347, -0.6790185, 0.20055033, -0.23333457)
bones/10/rotation = Quaternion(-0.37439552, 0.017943675, 0.007246467, 0.92706716)
bones/14/rotation = Quaternion(0.13296904, 0.051822018, -0.0069621373, 0.9897401)
bones/16/position = Vector3(0.0048320387, 0.008252437, -0.02027757)
bones/16/rotation = Quaternion(0.7070978, 0.7070978, -0.0035577225, 0.0035573125)
bones/17/rotation = Quaternion(0.20727697, 0.22687204, 0.66435784, 0.68131787)
bones/18/rotation = Quaternion(-0.38250104, -0.0087800585, -0.0036350952, 0.9239062)
bones/20/rotation = Quaternion(0.6013276, -0.007656022, 0.017799761, 0.79876757)
bones/24/rotation = Quaternion(-0.45064288, -0.22904137, 0.090387635, 0.858074)
bones/27/rotation = Quaternion(0.05229574, 5.703821e-05, -0.025155801, 0.99831474)
[node name="AnimationPlayer" parent="PugMannequin" index="1" unique_id=2146190163]
libraries/custom = SubResource("AnimationLibrary_iapui")
[editable path="PugMannequin"]

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,29 +0,0 @@
[gd_scene format=3 uid="uid://c16j3umhplew4"]
[ext_resource type="PackedScene" uid="uid://buqmw5lbfom07" path="res://core/ai/agents/pug/pug.fbx" id="1_3c2yk"]
[node name="PugMannequin" unique_id=1732134047 instance=ExtResource("1_3c2yk")]
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(251322627) index="0" unique_id=1067550931]
bones/1/rotation = Quaternion(0.7071068, -8.7384586e-07, -8.7384575e-07, 0.7071067)
bones/3/position = Vector3(5.37765e-05, 0.023020823, -0.0001735416)
bones/4/rotation = Quaternion(0.0013124894, -0.0013127187, 0.7071056, 0.7071056)
bones/5/rotation = Quaternion(0.7071125, -0.70201516, -0.045116592, 0.07163183)
bones/6/rotation = Quaternion(0.13312602, -0.018813718, 0.0025276097, 0.9909174)
bones/8/rotation = Quaternion(0.0006567046, -0.0006571151, 0.7071065, 0.7071065)
bones/9/rotation = Quaternion(0.66675293, -0.67880416, 0.20062506, -0.23327015)
bones/10/rotation = Quaternion(-0.35678986, 0.01807761, 0.006905738, 0.9339843)
bones/12/rotation = Quaternion(0.70710534, 0.70710546, 0.0014091316, -0.0014093613)
bones/13/rotation = Quaternion(-0.021626502, -0.09508007, 0.7082199, 0.6992257)
bones/14/rotation = Quaternion(0.13296904, 0.051822014, -0.0069621364, 0.98974)
bones/16/rotation = Quaternion(0.7071066, 0.7071067, 0.00044525132, -0.00044566192)
bones/17/rotation = Quaternion(0.20738536, 0.2267729, 0.6646832, 0.6810004)
bones/18/rotation = Quaternion(-0.35684106, -0.008877046, -0.003391197, 0.93411684)
bones/20/rotation = Quaternion(0.6013276, -0.007656024, 0.017799761, 0.79876757)
bones/22/rotation = Quaternion(0.0076703057, 0.9327372, 0.3595561, -0.025732514)
bones/23/rotation = Quaternion(-0.089636706, -0.019697238, -0.01825219, 0.99561244)
bones/24/rotation = Quaternion(-0.44343108, -0.23039742, 0.11800072, 0.85811526)
bones/26/rotation = Quaternion(5.170388e-06, 0.6954638, 0.7185612, 5.0026606e-06)
bones/27/rotation = Quaternion(0.052304644, 0.00074447604, -0.01352817, 0.99853927)
bones/29/rotation = Quaternion(0.7071068, -9.581396e-07, -9.581394e-07, 0.7071067)
bones/31/rotation = Quaternion(0.7071068, -1.2110207e-06, -1.2110205e-06, 0.7071067)

Binary file not shown.

View File

@@ -1,36 +0,0 @@
[gd_scene format=3 uid="uid://bs1bdtm7jdtgb"]
[ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_smbiq"]
[ext_resource type="PackedScene" uid="uid://58u6viv3qd63" path="res://core/ai/agents/sheep/sheep_mannequin.tscn" id="2_hnenk"]
[ext_resource type="Animation" uid="uid://ifn4akvcgaua" path="res://core/ai/agents/sheep/idle.res" id="3_i3d22"]
[ext_resource type="Animation" uid="uid://52eg4664eik0" path="res://core/ai/agents/sheep/walking.res" id="4_hxh1r"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hnenk"]
size = Vector3(1, 1.4770508, 1.3725281)
[sub_resource type="AnimationLibrary" id="AnimationLibrary_vlyix"]
_data = {
&"idle": ExtResource("3_i3d22"),
&"walking": ExtResource("4_hxh1r")
}
[node name="AiSheep" unique_id=1228675528 node_paths=PackedStringArray("anim_player") instance=ExtResource("1_smbiq")]
anim_player = NodePath("SheepMannequin/AnimationPlayer")
[node name="MeshInstance3D" parent="." index="0" unique_id=214482161]
visible = false
[node name="CollisionShape3D" parent="." index="1" unique_id=92811823]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.23852539, 0.11299133)
shape = SubResource("BoxShape3D_hnenk")
[node name="SheepMannequin" parent="." index="5" unique_id=1153770042 instance=ExtResource("2_hnenk")]
transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, -0.9, 0)
[node name="Armature" parent="SheepMannequin" index="0" unique_id=1644576745]
transform = Transform3D(100, 0, 0, 0, -4.3711384e-06, 99.99999, 0, -99.99999, -4.3711384e-06, 0, 0, 0)
[node name="AnimationPlayer" parent="SheepMannequin" index="1" unique_id=770197846]
libraries/custom = SubResource("AnimationLibrary_vlyix")
[editable path="SheepMannequin"]

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,29 +0,0 @@
[gd_scene format=3 uid="uid://58u6viv3qd63"]
[ext_resource type="PackedScene" uid="uid://oog8biov508a" path="res://core/ai/agents/sheep/sheep.fbx" id="1_pnkxh"]
[node name="SheepMannequin" unique_id=1153770042 instance=ExtResource("1_pnkxh")]
[node name="Skeleton3D" parent="Armature" parent_id_path=PackedInt32Array(1644576745) index="0" unique_id=811031257]
bones/1/rotation = Quaternion(0.7071068, -7.052583e-07, -7.052583e-07, 0.7071067)
bones/4/rotation = Quaternion(0.0017592248, -0.0017595046, 0.7071046, 0.7071046)
bones/5/rotation = Quaternion(0.706397, -0.7005701, -0.057003256, 0.08339989)
bones/6/rotation = Quaternion(0.17354831, -0.018694565, 0.003295098, 0.98464245)
bones/8/rotation = Quaternion(0.0011415672, -0.0011422854, 0.7071059, 0.7071059)
bones/9/rotation = Quaternion(0.66940695, -0.67618734, 0.20153745, -0.23248184)
bones/10/rotation = Quaternion(-0.38440856, 0.017864142, 0.0074402345, 0.92296034)
bones/12/rotation = Quaternion(0.70710427, 0.7071044, 0.001866237, -0.0018665171)
bones/13/rotation = Quaternion(-0.033540055, -0.106803544, 0.7078988, 0.6973861)
bones/14/rotation = Quaternion(0.17334078, 0.051493812, -0.009075931, 0.9834729)
bones/16/rotation = Quaternion(0.70710605, 0.7071062, 0.0009843343, -0.0009850523)
bones/17/rotation = Quaternion(0.2082713, 0.22595985, 0.6673435, 0.67839366)
bones/18/rotation = Quaternion(-0.384463, -0.008772296, -0.0036537221, 0.92309153)
bones/20/rotation = Quaternion(0.6012591, 0.022893472, -0.005923484, 0.7987042)
bones/22/rotation = Quaternion(0.006586622, 0.9146406, 0.40345904, -0.02469813)
bones/23/rotation = Quaternion(0.07927493, -0.021147288, -0.014362239, 0.996525)
bones/24/rotation = Quaternion(-0.6495659, -0.19198355, 0.17329836, 0.71496445)
bones/26/rotation = Quaternion(3.4527793e-06, 0.6944211, 0.71956885, 3.3297817e-06)
bones/27/rotation = Quaternion(0.0651835, 0.0008379451, -0.017830681, 0.9977136)
bones/29/rotation = Quaternion(0.7071068, -7.052583e-07, -7.052583e-07, 0.7071067)
bones/31/rotation = Quaternion(0.7071068, -1.0424332e-06, -1.0424329e-06, 0.7071067)
bones/33/rotation = Quaternion(0.7071068, -1.0424332e-06, -1.0424329e-06, 0.7071067)

Binary file not shown.

View File

@@ -1,6 +0,0 @@
extends State
func enter() -> void:
super.enter()
run_animation()

View File

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

View File

@@ -3,55 +3,18 @@ extends Node
class_name State class_name State
@export var state_id: StringName = &"" @export var state_id: StringName = &""
@export var next_state_id: StringName
@export var animation_name: String
@export var exit_on_animation_finished: bool
@export var wait_time: float = 3.0
var runtime_timer: Timer
@onready var agent: AIBase = owner
@warning_ignore("unused_signal")
signal transitioned(state: State, new_state_id: StringName) signal transitioned(state: State, new_state_id: StringName)
func _ready() -> void:
if wait_time > 0:
runtime_timer = Timer.new()
runtime_timer.name = "IdleTimer"
runtime_timer.one_shot = true
add_child(runtime_timer)
runtime_timer.timeout.connect(_on_timer_timeout)
func enter() -> void: func enter() -> void:
if exit_on_animation_finished: pass
if not agent.anim_player.animation_finished.is_connected(_on_animation_finished):
agent.anim_player.animation_finished.connect(_on_animation_finished)
elif wait_time > 0:
runtime_timer.start(wait_time)
func exit() -> void: func exit() -> void:
if exit_on_animation_finished and agent.anim_player.animation_finished.is_connected(_on_animation_finished):
agent.anim_player.animation_finished.disconnect(_on_animation_finished)
if runtime_timer and not runtime_timer.is_stopped():
runtime_timer.stop()
func update(_delta: float) -> void:
pass pass
func physics_update(_delta: float) -> void: func update(_delta) -> void:
pass pass
func run_animation() -> void: func physics_update(_delta) -> void:
if agent.anim_player and agent.anim_player.has_animation(animation_name): pass
agent.anim_player.play(animation_name)
func _on_animation_finished(anim_name: StringName) -> void:
if animation_name == anim_name:
if wait_time > 0:
runtime_timer.start(wait_time)
else:
transitioned.emit(self, next_state_id)
func _on_timer_timeout() -> void:
transitioned.emit(self, next_state_id)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

View File

@@ -2,16 +2,16 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://buy4x63u237np" uid="uid://b1wg4lif82dxp"
path="res://.godot/imported/main_menu_background.png-a82c66c237b4c84234f36e08895b07ce.ctex" path="res://.godot/imported/photo_2025-08-27_17-35-14.jpg-78d5e1b9cf2d920968331a684da2ca42.ctex"
metadata={ metadata={
"vram_texture": false "vram_texture": false
} }
[deps] [deps]
source_file="res://core/main_menu/assets/main_menu_background.png" source_file="res://core/main_menu/assets/photo_2025-08-27_17-35-14.jpg"
dest_files=["res://.godot/imported/main_menu_background.png-a82c66c237b4c84234f36e08895b07ce.ctex"] dest_files=["res://.godot/imported/photo_2025-08-27_17-35-14.jpg-78d5e1b9cf2d920968331a684da2ca42.ctex"]
[params] [params]

View File

@@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://csqxuftsnv1br" path="res://core/main_menu/main_menu.gd" id="1_g1whv"] [ext_resource type="Script" uid="uid://csqxuftsnv1br" path="res://core/main_menu/main_menu.gd" id="1_g1whv"]
[ext_resource type="PackedScene" uid="uid://cxf8s80ivwj1p" path="res://core/game_menu/option_menu.tscn" id="1_uvy4f"] [ext_resource type="PackedScene" uid="uid://cxf8s80ivwj1p" path="res://core/game_menu/option_menu.tscn" id="1_uvy4f"]
[ext_resource type="Texture2D" uid="uid://buy4x63u237np" path="res://core/main_menu/assets/main_menu_background.png" id="2_mloc8"] [ext_resource type="Texture2D" uid="uid://b1wg4lif82dxp" path="res://core/main_menu/assets/photo_2025-08-27_17-35-14.jpg" id="2_mloc8"]
[ext_resource type="PackedScene" uid="uid://caqf471x0kttc" path="res://core/game_menu/settings_menu.tscn" id="3_26agx"] [ext_resource type="PackedScene" uid="uid://caqf471x0kttc" path="res://core/game_menu/settings_menu.tscn" id="3_26agx"]
[node name="MainMenu" type="Control" unique_id=889720172] [node name="MainMenu" type="Control" unique_id=889720172]

View File

@@ -1,8 +1,6 @@
[gd_scene format=3 uid="uid://dqvrhiqgkd3w1"] [gd_scene format=3 uid="uid://dqvrhiqgkd3w1"]
[ext_resource type="PackedScene" uid="uid://bnnuke5e7e1yr" path="res://core/ai/agents/human/ai_citizen_walker.tscn" id="1_a2xtd"] [ext_resource type="PackedScene" uid="uid://clx701xdwelgx" path="res://core/ai/agents/base/ai_base.tscn" id="1_a2xtd"]
[ext_resource type="PackedScene" uid="uid://ceqxsqfiotm5j" path="res://core/ai/agents/human/ai_farmer.tscn" id="2_n3ssi"]
[ext_resource type="PackedScene" uid="uid://bbseno7clbepx" path="res://core/ai/agents/human/ai_citizen_sitter.tscn" id="3_fdj8t"]
[sub_resource type="NavigationMesh" id="NavigationMesh_optuv"] [sub_resource type="NavigationMesh" id="NavigationMesh_optuv"]
vertices = PackedVector3Array(10.984741, 0.25012434, -1.0140381, 11.234741, 0.25012434, 0.23596191, 19.484741, 0.25012434, 0.23596191, 19.484741, 0.25012434, -19.514038, 9.234741, 0.25012434, -1.0140381, -19.515259, 0.25012434, -19.514038, -19.515259, 0.25012434, -0.014038086, 8.984741, 0.25012434, -0.014038086, 10.984741, 0.25012434, 1.2359619, 19.484741, 0.25012434, 19.235962, 9.234741, 0.25012434, 1.2359619, -19.515259, 0.25012434, 19.235962) vertices = PackedVector3Array(10.984741, 0.25012434, -1.0140381, 11.234741, 0.25012434, 0.23596191, 19.484741, 0.25012434, 0.23596191, 19.484741, 0.25012434, -19.514038, 9.234741, 0.25012434, -1.0140381, -19.515259, 0.25012434, -19.514038, -19.515259, 0.25012434, -0.014038086, 8.984741, 0.25012434, -0.014038086, 10.984741, 0.25012434, 1.2359619, 19.484741, 0.25012434, 19.235962, 9.234741, 0.25012434, 1.2359619, -19.515259, 0.25012434, 19.235962)
@@ -43,6 +41,14 @@ mesh = SubResource("BoxMesh_lmjyn")
[node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Obstacle/StaticBody3D" unique_id=1663742898] [node name="CollisionShape3D" type="CollisionShape3D" parent="NavigationRegion3D/Obstacle/StaticBody3D" unique_id=1663742898]
shape = SubResource("BoxShape3D_lmjyn") shape = SubResource("BoxShape3D_lmjyn")
[node name="AIBase" parent="." unique_id=1228675528 instance=ExtResource("1_a2xtd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.48246834, 0.21202153, 0.11262059)
speed = 5.0
enable_state_machine = true
[node name="Camera3D" type="Camera3D" parent="." unique_id=1148396057]
transform = Transform3D(-2.0613477e-08, 0.8818225, -0.47158146, 3.854569e-08, 0.47158146, 0.8818225, 1, -3.5527137e-15, -4.371139e-08, -18.21907, 28.71355, 0)
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1772424900] [node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1772424900]
environment = SubResource("Environment_lmjyn") environment = SubResource("Environment_lmjyn")
@@ -86,15 +92,3 @@ Parameters:
- Wait Time: Delay in seconds on the IdleState node. - Wait Time: Delay in seconds on the IdleState node.
- Area Radius: Radius of the SphereShape3D used by PatrolRadiusShape." - Area Radius: Radius of the SphereShape3D used by PatrolRadiusShape."
autowrap_mode = 2 autowrap_mode = 2
[node name="AiCitizenWalker" parent="." unique_id=1228675528 instance=ExtResource("1_a2xtd")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -7, 1, -6)
[node name="Camera3D" type="Camera3D" parent="." unique_id=1753000680]
transform = Transform3D(1, 0, 0, 0, 0.42261824, 0.9063078, 0, -0.9063078, 0.42261824, 0, 18.361065, 15.377485)
[node name="AiFarmer" parent="." unique_id=1839077075 instance=ExtResource("2_n3ssi")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.2447205, 0.94226265, 2.9251099)
[node name="AiCitizenSitter" parent="." unique_id=127569260 instance=ExtResource("3_fdj8t")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.074956, 1.3552468, 11.883549)

View File

@@ -20,7 +20,7 @@ config/icon="uid://bfar1kk3pgq8f"
UIEvents="*uid://dehu28iq27mbn" UIEvents="*uid://dehu28iq27mbn"
GameState="*uid://b17g2w2g101o6" GameState="*uid://b17g2w2g101o6"
CollectionManager="*uid://22orqdm34hfm" CollectionManager="*uid://c3kq1qddpm8tf"
AudioManager="*uid://dcttbbavtwtsg" AudioManager="*uid://dcttbbavtwtsg"
SceneManager="*uid://bw8hwkw55j675" SceneManager="*uid://bw8hwkw55j675"