add files
This commit is contained in:
parent
a543c3fba6
commit
8907612f55
11 changed files with 269 additions and 0 deletions
4
.editorconfig
Normal file
4
.editorconfig
Normal file
|
@ -0,0 +1,4 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
BIN
LoadedModContent/GreatTransformation/Models/Anita3st.glb
Normal file
BIN
LoadedModContent/GreatTransformation/Models/Anita3st.glb
Normal file
Binary file not shown.
|
@ -0,0 +1,37 @@
|
|||
[remap]
|
||||
|
||||
importer="scene"
|
||||
importer_version=1
|
||||
type="PackedScene"
|
||||
uid="uid://c7g1gipglo0gx"
|
||||
path="res://.godot/imported/Anita3st.glb-ff32b6134ac6bb4b90a65a4c2be45f29.scn"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://LoadedModContent/GreatTransformation/Models/Anita3st.glb"
|
||||
dest_files=["res://.godot/imported/Anita3st.glb-ff32b6134ac6bb4b90a65a4c2be45f29.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
|
|
@ -0,0 +1,61 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://cwus7ucfs7krc"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://c7g1gipglo0gx" path="res://LoadedModContent/GreatTransformation/Models/Anita3st.glb" id="1_psnof"]
|
||||
[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/AnimatronicController.gd" id="2_jnn4e"]
|
||||
[ext_resource type="Script" uid="uid://d1p4ite8ts2wi" path="res://Scripts/LightController.gd" id="3_f5t6i"]
|
||||
|
||||
[sub_resource type="Environment" id="Environment_45het"]
|
||||
ambient_light_source = 1
|
||||
|
||||
[node name="GreatTransformation" type="Node3D"]
|
||||
|
||||
[node name="Anita" parent="." instance=ExtResource("1_psnof")]
|
||||
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0)
|
||||
script = ExtResource("2_jnn4e")
|
||||
|
||||
[node name="Spots" type="Node3D" parent="."]
|
||||
script = ExtResource("3_f5t6i")
|
||||
|
||||
[node name="Anita 1" type="SpotLight3D" parent="Spots"]
|
||||
transform = Transform3D(-0.965926, -0.109382, 0.23457, -2.84193e-15, 0.906308, 0.422618, -0.258819, 0.408218, -0.875426, 0.45, 2.75, -2)
|
||||
visible = false
|
||||
light_color = Color(1, 0.529412, 0.85098, 1)
|
||||
light_energy = 5.0
|
||||
spot_attenuation = 2.0
|
||||
spot_angle = 10.0
|
||||
spot_angle_attenuation = 0.15
|
||||
|
||||
[node name="Anita 2" type="SpotLight3D" parent="Spots"]
|
||||
transform = Transform3D(-0.965926, 0.109382, -0.23457, -9.47311e-16, 0.906308, 0.422618, 0.258819, 0.408218, -0.875426, -0.5, 2.75, -2)
|
||||
visible = false
|
||||
light_color = Color(0.666667, 0.960784, 0.596078, 1)
|
||||
light_energy = 5.0
|
||||
spot_attenuation = 2.0
|
||||
spot_angle = 10.0
|
||||
spot_angle_attenuation = 0.15
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_45het")
|
||||
|
||||
[node name="Angle 1" type="Camera3D" parent="."]
|
||||
transform = Transform3D(-1, -2.26267e-08, 8.44439e-08, 0, 0.965926, 0.258819, -8.74228e-08, 0.258819, -0.965926, 0, 1.75, -2)
|
||||
current = true
|
||||
fov = 60.0
|
||||
|
||||
[node name="Angle 2" type="Camera3D" parent="."]
|
||||
transform = Transform3D(-1, -2.26267e-08, 8.44439e-08, 0, 0.965926, 0.258819, -8.74228e-08, 0.258819, -0.965926, 0, 2, -1)
|
||||
fov = 60.0
|
||||
|
||||
[node name="Angle 3" type="Camera3D" parent="."]
|
||||
transform = Transform3D(-0.866025, 0.25, -0.433013, 0, 0.866025, 0.5, 0.5, 0.433013, -0.75, -1, 2.75, -2)
|
||||
fov = 60.0
|
||||
|
||||
[node name="OmniLight3D" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1.5, -3)
|
||||
light_color = Color(1, 0.960784, 0.85098, 1)
|
||||
light_energy = 0.5
|
||||
|
||||
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.5, -3)
|
||||
light_color = Color(1, 0.960784, 0.85098, 1)
|
||||
light_energy = 0.5
|
45
LoadedModContent/ModManifest/GreatTransformation.gd
Normal file
45
LoadedModContent/ModManifest/GreatTransformation.gd
Normal file
|
@ -0,0 +1,45 @@
|
|||
extends Node
|
||||
|
||||
var ModInfo = {
|
||||
"mod_name": "Great Transformation",
|
||||
"mod_creator": "Persephone (KawaiiZenbo)",
|
||||
"mod_version": 1.0,
|
||||
"mod_description": "Embark on a magical journey featuring the cutest cheerleader, Anita!\nSmells like a treated lake and waterlogged wood.\n\nAnita is from the game \"oneway.exe\".\nThis mod is not associated with Disordered Media or Adair Carnival of Family Magic.",
|
||||
"implements_stages":
|
||||
{
|
||||
"Great Transformation": {
|
||||
"bits": 19,
|
||||
"scene": "res://LoadedModContent/GreatTransformation/Stages/GreatTransformation.tscn",
|
||||
"scene_ref_base": "SubViewport/GreatTransformation/",
|
||||
"camera_count": 3,
|
||||
|
||||
"ust_type": "Rockafire Explosion/3-Stage",
|
||||
|
||||
"bit_mapping":
|
||||
{
|
||||
23: { "bot": "Anita", "movement": "Mouth", "flow_in": 3.0, "flow_out": 2.0 },
|
||||
26: { "bot": "Anita", "movement": "Left Eyelid", "flow_in": 1.5, "flow_out": 2.0 },
|
||||
27: { "bot": "Anita", "movement": "Right Eyelid", "flow_in": 1.5, "flow_out": 2.0 },
|
||||
28: { "bot": "Anita", "movement": "Eyes Left", "flow_in": 3.5, "flow_out": 1.5 },
|
||||
29: { "bot": "Anita", "movement": "Eyes Right", "flow_in": 3.5, "flow_out": 1.5 },
|
||||
30: { "bot": "Anita", "movement": "Head Left", "flow_in": 1.5, "flow_out": 1.5 },
|
||||
31: { "bot": "Anita", "movement": "Head Right", "flow_in": 1.5, "flow_out": 1.5 },
|
||||
32: { "bot": "Anita", "movement": "Head Up", "flow_in": 1.0, "flow_out": 1.0 },
|
||||
33: { "bot": "Anita", "movement": "Left Arm Up", "flow_in": 0.8, "flow_out": 0.6 },
|
||||
34: { "bot": "Anita", "movement": "Left Arm Twist", "flow_in": 0.8, "flow_out": 0.8 },
|
||||
35: { "bot": "Anita", "movement": "Left Elbow", "flow_in": 1.0, "flow_out": 1.0 },
|
||||
36: { "bot": "Anita", "movement": "Right Arm Up", "flow_in": 0.8, "flow_out": 0.6 },
|
||||
37: { "bot": "Anita", "movement": "Right Arm Twist", "flow_in": 0.8, "flow_out": 0.8 },
|
||||
38: { "bot": "Anita", "movement": "Right Elbow", "flow_in": 1.0, "flow_out": 1.0 },
|
||||
39: { "bot": "Anita", "movement": "Body Left", "flow_in": 0.7, "flow_out": 0.7 },
|
||||
40: { "bot": "Anita", "movement": "Body Right", "flow_in": 0.7, "flow_out": 0.7 },
|
||||
41: { "bot": "Anita", "movement": "Body Lean", "flow_in": 1.0, "flow_out": 0.8 },
|
||||
125: { "bot": "Spots", "movement": "Anita 1", "flow_in": "None", "flow_out": "None" },
|
||||
131: { "bot": "Spots", "movement": "Anita 2", "flow_in": "None", "flow_out": "None" },
|
||||
},
|
||||
|
||||
"cosmetics": [ ],
|
||||
"cosmetic_defaults": [ ]
|
||||
}
|
||||
}
|
||||
}
|
1
LoadedModContent/ModManifest/GreatTransformation.gd.uid
Normal file
1
LoadedModContent/ModManifest/GreatTransformation.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://cbpaav5uyn1sq
|
93
Scripts/AnimatronicController.gd
Normal file
93
Scripts/AnimatronicController.gd
Normal file
|
@ -0,0 +1,93 @@
|
|||
extends Node3D
|
||||
|
||||
var animation_player : AnimationPlayer
|
||||
var animation_tree : AnimationTree
|
||||
var blend_tree : AnimationNodeBlendTree
|
||||
|
||||
var movement_states : Dictionary
|
||||
|
||||
func _ready():
|
||||
animation_player = $AnimationPlayer
|
||||
|
||||
animation_tree = AnimationTree.new()
|
||||
animation_tree.anim_player = animation_player.get_path()
|
||||
add_child(animation_tree)
|
||||
|
||||
animation_tree.tree_root = AnimationNodeBlendTree.new()
|
||||
animation_tree.active = true
|
||||
blend_tree = animation_tree.tree_root as AnimationNodeBlendTree
|
||||
|
||||
animation_player.speed_scale = 0
|
||||
|
||||
var animations = animation_player.get_animation_list()
|
||||
|
||||
for animation in animations:
|
||||
movement_states[animation] = [false, 0.0, 0.0, 0.0]
|
||||
|
||||
var prev_name = "Anim_" + animations[0]
|
||||
var old_time_name = "Time_" + animations[0]
|
||||
var old_seek_name = "Seek_" + animations[0]
|
||||
|
||||
var prev_anim_node := AnimationNodeAnimation.new()
|
||||
prev_anim_node.animation = animations[0]
|
||||
blend_tree.add_node(prev_name, prev_anim_node)
|
||||
|
||||
var old_time_node := AnimationNodeTimeScale.new()
|
||||
blend_tree.add_node(old_time_name,old_time_node)
|
||||
|
||||
var _old_seek_node := AnimationNodeTimeSeek.new()
|
||||
blend_tree.add_node(old_seek_name,_old_seek_node)
|
||||
|
||||
blend_tree.connect_node(old_time_name,0,prev_name)
|
||||
blend_tree.connect_node(old_seek_name,0,old_time_name)
|
||||
prev_name = old_seek_name
|
||||
|
||||
for i in range(1, animations.size()):
|
||||
var anim_name = "Anim_" + animations[i]
|
||||
var add_name = "Add_" + animations[i]
|
||||
var time_name = "Time_" + animations[i]
|
||||
var seek_name = "Seek_" + animations[i]
|
||||
|
||||
var new_anim_node := AnimationNodeAnimation.new()
|
||||
new_anim_node.animation = animations[i]
|
||||
blend_tree.add_node(anim_name, new_anim_node)
|
||||
|
||||
var time_node := AnimationNodeTimeScale.new()
|
||||
blend_tree.add_node(time_name,time_node)
|
||||
|
||||
var seek_node := AnimationNodeTimeSeek.new()
|
||||
blend_tree.add_node(seek_name,seek_node)
|
||||
|
||||
var add_node := AnimationNodeAdd2.new()
|
||||
blend_tree.add_node(add_name, add_node)
|
||||
|
||||
blend_tree.connect_node(time_name, 0, anim_name)
|
||||
blend_tree.connect_node(seek_name, 0, time_name)
|
||||
blend_tree.connect_node(add_name, 0, prev_name)
|
||||
blend_tree.connect_node(add_name, 1, seek_name)
|
||||
prev_name = add_name
|
||||
|
||||
blend_tree.connect_node("output", 0, prev_name)
|
||||
|
||||
for i in range(0, animations.size()):
|
||||
animation_tree.set("parameters/Add_" + str(animations[i]) + "/add_amount", 1.0)
|
||||
animation_tree.set("parameters/Seek_" + str(animations[i]) + "/seek_request", 0)
|
||||
animation_tree.set("parameters/Time_" + str(animations[i]) + "/scale", 0)
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
for key in movement_states:
|
||||
var anim_path = "parameters/Seek_" + key + "/seek_request"
|
||||
var state = movement_states[key]
|
||||
if (state[0]):
|
||||
state[1] = clamp(float(state[1]) + (delta * state[2]), 0, 1)
|
||||
else:
|
||||
state[1] = clamp(float(state[1]) - (delta * state[3]), 0, 1)
|
||||
animation_tree.set(anim_path, state[1])
|
||||
|
||||
func _movement_in(movement, rate):
|
||||
movement_states[movement][0] = true
|
||||
movement_states[movement][2] = rate
|
||||
|
||||
func _movement_out(movement, rate):
|
||||
movement_states[movement][0] = false
|
||||
movement_states[movement][3] = rate
|
1
Scripts/AnimatronicController.gd.uid
Normal file
1
Scripts/AnimatronicController.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://bu68w4jnh0n2b
|
7
Scripts/LightController.gd
Normal file
7
Scripts/LightController.gd
Normal file
|
@ -0,0 +1,7 @@
|
|||
extends Node3D
|
||||
|
||||
func _movement_in(movement, _rate):
|
||||
get_node(movement).visible = true
|
||||
|
||||
func _movement_out(movement, _rate):
|
||||
get_node(movement).visible = false
|
1
Scripts/LightController.gd.uid
Normal file
1
Scripts/LightController.gd.uid
Normal file
|
@ -0,0 +1 @@
|
|||
uid://d1p4ite8ts2wi
|
19
project.godot
Normal file
19
project.godot
Normal file
|
@ -0,0 +1,19 @@
|
|||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="PneuMod-GreatTransformation"
|
||||
config/features=PackedStringArray("4.4", "GL Compatibility")
|
||||
|
||||
[rendering]
|
||||
|
||||
renderer/rendering_method="gl_compatibility"
|
||||
renderer/rendering_method.mobile="gl_compatibility"
|
Loading…
Add table
Add a link
Reference in a new issue