Update
This commit is contained in:
@@ -1,16 +1,5 @@
|
||||
extends Characters_
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a = 2
|
||||
# var b = "text"
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
#func _process(delta):
|
||||
|
||||
onready var female = preload("res://characters/vroid1-female.tscn")
|
||||
onready var male = preload("res://characters/vroid1-man.tscn")
|
||||
onready var face_ctrl = preload("res://scenes/face/head_comtrol.tscn")
|
||||
@@ -20,10 +9,12 @@ onready var modules = {
|
||||
"marker": preload("res://scripts/modules/npc_marker.gd"),
|
||||
"sacrifice": preload("res://scripts/modules/npc_sacrifice.gd"),
|
||||
"nun": preload("res://scripts/modules/npc_nun.gd"),
|
||||
"mystress": preload("res://scripts/modules/npc_mystress.gd"),
|
||||
"player": preload("res://scripts/modules/player_controls.gd"),
|
||||
"player_clothes": preload("res://scripts/modules/player_clothes.gd"),
|
||||
"hurtboxes": preload("res://scripts/modules/character_hurtboxes.gd"),
|
||||
"student": preload("res://scripts/modules/npc_student.gd")
|
||||
"student": preload("res://scripts/modules/npc_student.gd"),
|
||||
"bandit": preload("res://scripts/modules/npc_bandit.gd")
|
||||
}
|
||||
|
||||
var face_data_path = "res://scenes/face/"
|
||||
@@ -47,6 +38,21 @@ var roommates = {}
|
||||
#var _crowd: DetourCrowdManager
|
||||
|
||||
func _ready():
|
||||
var capsule_male = CapsuleShape.new()
|
||||
capsule_male.radius = 0.3
|
||||
capsule_male.height = 1.2
|
||||
capsule_male.margin = 0.05
|
||||
var capsule_female = CapsuleShape.new()
|
||||
capsule_female.radius = 0.2
|
||||
capsule_female.height = 1.1
|
||||
capsule_female.margin = 0.05
|
||||
CharacterSystemWorld.add_character_scene(female, {}, "female")
|
||||
CharacterSystemWorld.add_character_scene(male, {}, "male")
|
||||
for k in modules.keys():
|
||||
CharacterSystemWorld.add_module(k, modules[k])
|
||||
CharacterSystemWorld.set_face_ctrl_scene(face_ctrl)
|
||||
CharacterSystemWorld.add_character_shape(capsule_female, Transform(Basis().rotated(Vector3(1, 0, 0), -PI/2.0), Vector3(0, 0.751, 0)), "female")
|
||||
CharacterSystemWorld.add_character_shape(capsule_male, Transform(Basis().rotated(Vector3(1, 0, 0), -PI/2.0), Vector3(0, 0.899, 0)), "male")
|
||||
set_root_motion_mod(Transform())
|
||||
var fd = File.new()
|
||||
fd.open("res://data/names.json", File.READ)
|
||||
@@ -62,10 +68,12 @@ func _ready():
|
||||
"female":
|
||||
female_faces.push_back(fp)
|
||||
mesh_female_faces[fp] = load(fp)
|
||||
CharacterSystemWorld.add_face_scene(mesh_female_faces[fp], "female")
|
||||
|
||||
"male":
|
||||
male_faces.push_back(fp)
|
||||
mesh_male_faces[fp] = load(fp)
|
||||
CharacterSystemWorld.add_face_scene(mesh_male_faces[fp], "male")
|
||||
for id in range(10000):
|
||||
var fp_m = face_data_path + "male-face" + str(id) + ".tscn"
|
||||
var fp_f = face_data_path + "female-face" + str(id) + ".tscn"
|
||||
@@ -75,18 +83,24 @@ func _ready():
|
||||
if data_fd.file_exists(fp_m):
|
||||
male_faces.push_back(fp_m)
|
||||
mesh_male_faces[fp_m] = load(fp_m)
|
||||
CharacterSystemWorld.add_face_scene(mesh_male_faces[fp_m], "male")
|
||||
if data_fd.file_exists(fp_f):
|
||||
female_faces.push_back(fp_f)
|
||||
mesh_female_faces[fp_f] = load(fp_f)
|
||||
CharacterSystemWorld.add_face_scene(mesh_female_faces[fp_f], "female")
|
||||
if data_fd.file_exists(hp_m):
|
||||
male_hairs.push_back(hp_m)
|
||||
mesh_male_hairs[hp_m] = load(hp_m)
|
||||
CharacterSystemWorld.add_hair_scene(mesh_male_hairs[hp_m], "male")
|
||||
if data_fd.file_exists(hp_f):
|
||||
female_hairs.push_back(hp_f)
|
||||
mesh_female_hairs[hp_f] = load(hp_f)
|
||||
CharacterSystemWorld.add_hair_scene(mesh_female_hairs[hp_f], "female")
|
||||
if data_fd.file_exists(mat):
|
||||
hair_materials.push_back(mat)
|
||||
data_hair_materials[mat] = load(mat)
|
||||
CharacterSystemWorld.add_hair_material(data_hair_materials[mat], "male")
|
||||
CharacterSystemWorld.add_hair_material(data_hair_materials[mat], "female")
|
||||
assert(male_faces.size() > 0)
|
||||
assert(female_faces.size() > 0)
|
||||
assert(male_hairs.size() > 0)
|
||||
@@ -146,6 +160,7 @@ func get_hair_node(sc: Node) -> Node:
|
||||
assert(0)
|
||||
return null
|
||||
func compose_kinematic_character(g, enable_modules = [], face = -1, hair = -1, hair_mat = -1):
|
||||
return CharacterSystemWorld.create_character(g, enable_modules, face, hair, hair_mat)
|
||||
var body = KinematicBody.new()
|
||||
var cshape = CollisionShape.new()
|
||||
body.add_child(cshape)
|
||||
@@ -245,7 +260,8 @@ func replace_character(obj, g, enable_modules = [], face = -1, hair = -1, hair_m
|
||||
var xform = obj.global_transform
|
||||
var p = obj.get_parent()
|
||||
obj.queue_free()
|
||||
var body = compose_kinematic_character(g, enable_modules, face, hair, hair_mat)
|
||||
# var body = compose_kinematic_character(g, enable_modules, face, hair, hair_mat)
|
||||
var body = CharacterSystemWorld.create_character(g, enable_modules, face, hair, hair_mat)
|
||||
p.add_child(body)
|
||||
body.global_transform = xform
|
||||
var orientation = Transform()
|
||||
@@ -253,15 +269,15 @@ func replace_character(obj, g, enable_modules = [], face = -1, hair = -1, hair_m
|
||||
body.set_meta("orientation", orientation)
|
||||
return body
|
||||
const basedir = "res://scenes/clothes/"
|
||||
func prepare_extra_skeleton(obj, g):
|
||||
var queue = [obj]
|
||||
while queue.size() > 0:
|
||||
var item = queue.pop_front()
|
||||
if item is Skeleton:
|
||||
item.add_to_group(g)
|
||||
break
|
||||
for g in item.get_children():
|
||||
queue.push_back(g)
|
||||
#func prepare_extra_skeleton(obj, g):
|
||||
# var queue = [obj]
|
||||
# while queue.size() > 0:
|
||||
# var item = queue.pop_front()
|
||||
# if item is Skeleton:
|
||||
# item.add_to_group(g)
|
||||
# break
|
||||
# for g in item.get_children():
|
||||
# queue.push_back(g)
|
||||
func set_hair_material(hair, mat: Material):
|
||||
assert(mat)
|
||||
var queue = [hair]
|
||||
@@ -274,7 +290,9 @@ func set_hair_material(hair, mat: Material):
|
||||
queue.push_back(g)
|
||||
func setup_garments(obj, garments, garments_head, material):
|
||||
var skel = obj.get_meta("skeleton")
|
||||
assert(skel)
|
||||
var hair_skel = obj.get_meta("hair_skeleton")
|
||||
assert(hair_skel)
|
||||
|
||||
if obj.has_meta("garments"):
|
||||
print("Can remove garments")
|
||||
@@ -611,7 +629,5 @@ func _physics_process(delta):
|
||||
if !player:
|
||||
return
|
||||
if player.has_meta("animation_tree") && !player.has_meta("vehicle"):
|
||||
character_physics(player)
|
||||
# for e in get_tree().get_nodes_in_group("character") + [player]:
|
||||
# if e && e.has_meta("animation_tree"):
|
||||
# character_physics(e)
|
||||
if streaming.can_spawn:
|
||||
character_physics(player)
|
||||
|
||||
Reference in New Issue
Block a user