Add a first-view controller and a bunch of things
1. Replace 4k models with low-poly once 2. Use bare mixamo for testing 3. Add a basic menu 4. Add a map with collisions and spawn areas
This commit is contained in:
parent
34e019f40a
commit
b214f8d278
5
.gitattributes
vendored
5
.gitattributes
vendored
@ -1,6 +1,5 @@
|
||||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
assets filter=lfs diff=lfs merge=lfs -text
|
||||
assets/models filter=lfs diff=lfs merge=lfs -text
|
||||
assets/sounds filter=lfs diff=lfs merge=lfs -text
|
||||
assets/** filter=lfs diff=lfs merge=lfs -text
|
||||
resources/** filter=lfs diff=lfs merge=lfs -text
|
||||
|
73
Demo/DemoWorld.tscn
Normal file
73
Demo/DemoWorld.tscn
Normal file
@ -0,0 +1,73 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://0576fim4xnjw"]
|
||||
|
||||
[ext_resource type="Script" path="res://Demo/MainCamera.gd" id="1"]
|
||||
[ext_resource type="Script" path="res://addons/Mirror/Mirror/Mirror.gd" id="2"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_omm3q"]
|
||||
|
||||
[sub_resource type="Sky" id="Sky_bigpx"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_omm3q")
|
||||
|
||||
[sub_resource type="Environment" id="Environment_y6thg"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_bigpx")
|
||||
|
||||
[sub_resource type="SphereMesh" id="4"]
|
||||
radius = 1.0
|
||||
height = 2.0
|
||||
|
||||
[sub_resource type="CapsuleMesh" id="7"]
|
||||
radius = 0.33
|
||||
height = 1.66
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="8"]
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="9"]
|
||||
seamless = true
|
||||
noise = SubResource("8")
|
||||
|
||||
[node name="DemoWorld" type="Node3D"]
|
||||
|
||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||
environment = SubResource("Environment_y6thg")
|
||||
|
||||
[node name="MeshInstance2" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.311584, -0.508855, 0.519106)
|
||||
layers = 2
|
||||
mesh = SubResource("4")
|
||||
|
||||
[node name="MeshInstance3" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.4, 0.4, 0.773196)
|
||||
mesh = SubResource("4")
|
||||
|
||||
[node name="MeshInstance4" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(0.3, 0, 0, 0, 0.3, 0, 0, 0, 0.3, 0.396369, 0.461957, -1.66788)
|
||||
mesh = SubResource("4")
|
||||
|
||||
[node name="Player" type="Node3D" parent="."]
|
||||
transform = Transform3D(0.733279, 0, -0.679928, 0, 1, 0, 0.679928, 0, 0.733279, -3.01042, 0.611678, 3.23258)
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="CameraRod" type="Node3D" parent="Player"]
|
||||
|
||||
[node name="MainCamera" type="Camera3D" parent="Player/CameraRod"]
|
||||
near = 0.3
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Player/CameraRod"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.4, 0)
|
||||
mesh = SubResource("7")
|
||||
skeleton = NodePath("../../..")
|
||||
|
||||
[node name="Mirror" type="Node3D" parent="."]
|
||||
script = ExtResource("2")
|
||||
ResolutionPerUnit = 200
|
||||
MainCamPath = NodePath("../Player/CameraRod/MainCamera")
|
||||
MirrorColor = Color(1, 1, 1, 1)
|
||||
|
||||
[node name="Mirror2" type="Node3D" parent="."]
|
||||
transform = Transform3D(0.658492, 0, -0.752587, 0, 1, 0, 0.752587, 0, 0.658492, 2.4934, 0, 0.705538)
|
||||
script = ExtResource("2")
|
||||
ResolutionPerUnit = 200
|
||||
MainCamPath = NodePath("../Player/CameraRod/MainCamera")
|
||||
MirrorDistortion = 20
|
||||
DistortionTexture = SubResource("9")
|
108
Demo/MainCamera.gd
Normal file
108
Demo/MainCamera.gd
Normal file
@ -0,0 +1,108 @@
|
||||
extends Node3D
|
||||
|
||||
class_name TpsCamera
|
||||
|
||||
|
||||
# Nodes
|
||||
@onready var camera_pivot : Node3D = self
|
||||
@onready var camera_rod : Node3D = get_node("CameraRod")
|
||||
@onready var camera : Camera3D = get_node("CameraRod/MainCamera")
|
||||
|
||||
# Movement
|
||||
@export var mouse_sensitivity : float = 0.15
|
||||
@export var camera_min_vertical_rotation : float = -85.0
|
||||
@export var camera_max_vertical_rotation : float = 85.0
|
||||
|
||||
# zooming
|
||||
@export var camera_zoom : float = 3.0 : set = set_camera_zoom
|
||||
func set_camera_zoom(value): camera_zoom = clamp(value, camera_min_zoom_distance, camera_max_zoom_distance)
|
||||
@export var camera_min_zoom_distance : float = 3.0
|
||||
@export var camera_max_zoom_distance : float = 15.0
|
||||
@export var camera_zoom_step : float = 0.5
|
||||
|
||||
# Cursor
|
||||
@onready var is_cursor_visible : get = get_is_cursor_visible, set = set_is_cursor_visible
|
||||
func set_is_cursor_visible(value): Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE if value else Input.MOUSE_MODE_CAPTURED)
|
||||
func get_is_cursor_visible(): return Input.get_mouse_mode() == Input.MOUSE_MODE_VISIBLE
|
||||
|
||||
var speed = 0.1
|
||||
|
||||
|
||||
#####################
|
||||
# Default methods #
|
||||
#####################
|
||||
|
||||
func _ready() -> void:
|
||||
self.is_cursor_visible = false
|
||||
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
process_basic_input()
|
||||
|
||||
if Input.is_action_pressed("ui_up"):
|
||||
self.global_transform.origin += - $CameraRod/MainCamera.global_transform.basis.z * speed
|
||||
if Input.is_action_pressed("ui_down"):
|
||||
self.global_transform.origin += $CameraRod/MainCamera.global_transform.basis.z * speed
|
||||
if Input.is_action_pressed("ui_right"):
|
||||
self.global_transform.origin += $CameraRod/MainCamera.global_transform.basis.x * speed
|
||||
if Input.is_action_pressed("ui_left"):
|
||||
self.global_transform.origin += - $CameraRod/MainCamera.global_transform.basis.x * speed
|
||||
#self.transform.origin = lerp(self.transform.origin, player.transform.origin, 0.1)
|
||||
|
||||
|
||||
func _unhandled_input(event: InputEvent) -> void:
|
||||
process_mouse_input(event)
|
||||
|
||||
|
||||
|
||||
####################
|
||||
# Camera3D methods #
|
||||
####################
|
||||
|
||||
|
||||
func rotate_camera(camera_direction : Vector2) -> void:
|
||||
self.rotation.y += -camera_direction.x
|
||||
# Vertical rotation
|
||||
camera_rod.rotate_x(-camera_direction.y)
|
||||
|
||||
# Limit vertical rotation
|
||||
camera_rod.rotation_degrees.x = clamp(
|
||||
camera_rod.rotation_degrees.x,
|
||||
camera_min_vertical_rotation, camera_max_vertical_rotation
|
||||
)
|
||||
|
||||
|
||||
|
||||
func toggle_cursor_visibility() -> void:
|
||||
self.is_cursor_visible = !self.is_cursor_visible
|
||||
|
||||
|
||||
|
||||
###################
|
||||
# Input methods #
|
||||
###################
|
||||
|
||||
func process_basic_input():
|
||||
if Input.is_action_just_pressed("ui_cancel"):
|
||||
toggle_cursor_visibility()
|
||||
|
||||
|
||||
func process_mouse_input(event : InputEvent) -> void:
|
||||
# Cursor movement
|
||||
if event is InputEventMouseMotion:
|
||||
var camera_direction = Vector2(
|
||||
deg_to_rad(event.relative.x * mouse_sensitivity),
|
||||
deg_to_rad(event.relative.y * mouse_sensitivity)
|
||||
)
|
||||
if !self.is_cursor_visible:
|
||||
rotate_camera(camera_direction)
|
||||
|
||||
# Scrolling
|
||||
elif event is InputEventMouseButton:
|
||||
if event.is_pressed() and not self.is_cursor_visible:
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
|
||||
self.camera_zoom -= camera_zoom_step
|
||||
if event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
|
||||
self.camera_zoom += camera_zoom_step
|
||||
|
||||
|
7
Demo/default_env.tres
Normal file
7
Demo/default_env.tres
Normal file
@ -0,0 +1,7 @@
|
||||
[gd_resource type="Environment" load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="Sky" id=1]
|
||||
|
||||
[resource]
|
||||
background_mode = 2
|
||||
background_sky = SubResource( 1 )
|
21
LICENSE.md
Normal file
21
LICENSE.md
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Norodix
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
0
Screenshots/.gdignore
Normal file
0
Screenshots/.gdignore
Normal file
BIN
Screenshots/Godot_icon.png
(Stored with Git LFS)
Normal file
BIN
Screenshots/Godot_icon.png
(Stored with Git LFS)
Normal file
Binary file not shown.
220
Screenshots/Godot_icon.svg
Normal file
220
Screenshots/Godot_icon.svg
Normal file
@ -0,0 +1,220 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="1024"
|
||||
height="1024"
|
||||
id="svg3030"
|
||||
version="1.1"
|
||||
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
|
||||
sodipodi:docname="Godot_icon.svg"
|
||||
inkscape:export-filename="/home/bence/Documents/GodotMirror/Screenshots/Godot_icon.svg.png"
|
||||
inkscape:export-xdpi="24"
|
||||
inkscape:export-ydpi="24">
|
||||
<defs
|
||||
id="defs3032" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="454.17422"
|
||||
inkscape:cy="511.72319"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="g1049"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:document-rotation="0" />
|
||||
<metadata
|
||||
id="metadata3035">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(0,-98.519719)">
|
||||
<g
|
||||
id="g1049">
|
||||
<path
|
||||
id="rect1129"
|
||||
style="fill:#ececec;stroke:#000000;stroke-width:37.583;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;opacity:1;fill-opacity:1;stroke-linejoin:round"
|
||||
d="M 39.535993,146.47003 553.73185,331.49989 V 894.11097 L 39.535993,1079.1409 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<g
|
||||
id="g1127"
|
||||
transform="matrix(1.0517442,0,0,1.0517442,-126.67183,-45.231534)">
|
||||
<g
|
||||
id="g1065"
|
||||
transform="translate(168.57143,10)">
|
||||
<g
|
||||
id="g78"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,885.69963,674.45569)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c 0,0 -0.325,1.994 -0.515,1.976 l -36.182,-3.491 c -2.879,-0.278 -5.115,-2.574 -5.317,-5.459 l -0.994,-14.247 -27.992,-1.997 -1.904,12.912 c -0.424,2.872 -2.932,5.037 -5.835,5.037 h -38.188 c -2.902,0 -5.41,-2.165 -5.834,-5.037 l -1.905,-12.912 -27.992,1.997 -0.994,14.247 c -0.202,2.886 -2.438,5.182 -5.317,5.46 l -36.2,3.49 c -0.187,0.018 -0.324,-1.978 -0.511,-1.978 l -0.049,-7.83 30.658,-4.944 1.004,-14.374 c 0.203,-2.91 2.551,-5.263 5.463,-5.472 l 38.551,-2.75 c 0.146,-0.01 0.29,-0.016 0.434,-0.016 2.897,0 5.401,2.166 5.825,5.038 l 1.959,13.286 h 28.005 l 1.959,-13.286 c 0.423,-2.871 2.93,-5.037 5.831,-5.037 0.142,0 0.284,0.005 0.423,0.015 l 38.556,2.75 c 2.911,0.209 5.26,2.562 5.463,5.472 l 1.003,14.374 30.645,4.966 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path80"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g82-3"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,555.4187,574.80276)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 v -47.514 -6.035 -5.492 c 0.108,-0.001 0.216,-0.005 0.323,-0.015 l 36.196,-3.49 c 1.896,-0.183 3.382,-1.709 3.514,-3.609 l 1.116,-15.978 31.574,-2.253 2.175,14.747 c 0.282,1.912 1.922,3.329 3.856,3.329 h 38.188 c 1.933,0 3.573,-1.417 3.855,-3.329 l 2.175,-14.747 31.575,2.253 1.115,15.978 c 0.133,1.9 1.618,3.425 3.514,3.609 l 36.182,3.49 c 0.107,0.01 0.214,0.014 0.322,0.015 v 4.711 l 0.015,0.005 V 0 h 0.134 c 4.795,6.12 9.232,12.569 13.487,19.449 -5.651,9.62 -12.575,18.217 -19.976,26.182 -6.864,-3.455 -13.531,-7.369 -19.828,-11.534 -3.151,3.132 -6.7,5.694 -10.186,8.372 -3.425,2.751 -7.285,4.768 -10.946,7.118 1.09,8.117 1.629,16.108 1.846,24.448 -9.446,4.754 -19.519,7.906 -29.708,10.17 -4.068,-6.837 -7.788,-14.241 -11.028,-21.479 -3.842,0.642 -7.702,0.88 -11.567,0.926 v 0.006 c -0.027,0 -0.052,-0.006 -0.075,-0.006 -0.024,0 -0.049,0.006 -0.073,0.006 V 63.652 C 93.903,63.606 90.046,63.368 86.203,62.726 82.965,69.964 79.247,77.368 75.173,84.205 64.989,81.941 54.915,78.789 45.47,74.035 45.686,65.695 46.225,57.704 47.318,49.587 43.65,47.237 39.795,45.22 36.369,42.469 32.888,39.791 29.333,37.229 26.181,34.097 19.884,38.262 13.219,42.176 6.353,45.631 -1.048,37.666 -7.968,29.069 -13.621,19.449 -9.368,12.569 -4.928,6.12 -0.134,0 Z"
|
||||
style="fill:#478cbf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path84-6"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g86-7"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,830.89115,692.93384)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 -1.121,-16.063 c -0.135,-1.936 -1.675,-3.477 -3.611,-3.616 l -38.555,-2.751 c -0.094,-0.007 -0.188,-0.01 -0.281,-0.01 -1.916,0 -3.569,1.406 -3.852,3.33 l -2.211,14.994 H -81.09 l -2.211,-14.994 c -0.297,-2.018 -2.101,-3.469 -4.133,-3.32 l -38.555,2.751 c -1.936,0.139 -3.476,1.68 -3.611,3.616 L -130.721,0 -163.268,3.138 c 0.015,-3.498 0.06,-7.33 0.06,-8.093 0,-34.374 43.605,-50.896 97.781,-51.086 h 0.066 0.067 c 54.176,0.19 97.766,16.712 97.766,51.086 0,0.777 0.047,4.593 0.063,8.093 z"
|
||||
style="fill:#478cbf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path88-5"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g90-3"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,670.78441,615.25518)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m -22.024595,1.6720738 c -12.042,0 -25.67305,-13.0143828 -21.598405,-1.6720738 3.739059,10.408162 17.019368,10.676839 21.492607,10.693249 C -17.657154,10.709659 -2.7380023,7.1323685 0,0 2.7380023,-7.1323685 -9.9765953,1.6720738 -22.024595,1.6720738 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path92-5"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sszzs" />
|
||||
</g>
|
||||
<g
|
||||
id="g98-9"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,720.56874,655.42554)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c -3.878,0 -7.021,2.858 -7.021,6.381 v 20.081 c 0,3.52 3.143,6.381 7.021,6.381 3.878,0 7.028,-2.861 7.028,-6.381 V 6.381 C 7.028,2.858 3.878,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path100-1"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g102-2"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,770.35921,615.25518)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c 0,-12.052 9.765,-21.815 21.815,-21.815 12.041,0 21.808,9.763 21.808,21.815 0,12.044 -9.767,21.802 -21.808,21.802 C 9.765,21.802 0,12.044 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path104-7"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g106-0"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,779.22038,617.43899)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c 0,-7.994 6.477,-14.473 14.471,-14.473 8.002,0 14.479,6.479 14.479,14.473 0,7.994 -6.477,14.479 -14.479,14.479 C 6.477,14.479 0,7.994 0,0"
|
||||
style="fill:#414042;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path108-9"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g1095"
|
||||
transform="matrix(-1,0,0,1,1125.4286,10)">
|
||||
<g
|
||||
id="g1069"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,885.69963,674.45569)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c 0,0 -0.325,1.994 -0.515,1.976 l -36.182,-3.491 c -2.879,-0.278 -5.115,-2.574 -5.317,-5.459 l -0.994,-14.247 -27.992,-1.997 -1.904,12.912 c -0.424,2.872 -2.932,5.037 -5.835,5.037 h -38.188 c -2.902,0 -5.41,-2.165 -5.834,-5.037 l -1.905,-12.912 -27.992,1.997 -0.994,14.247 c -0.202,2.886 -2.438,5.182 -5.317,5.46 l -36.2,3.49 c -0.187,0.018 -0.324,-1.978 -0.511,-1.978 l -0.049,-7.83 30.658,-4.944 1.004,-14.374 c 0.203,-2.91 2.551,-5.263 5.463,-5.472 l 38.551,-2.75 c 0.146,-0.01 0.29,-0.016 0.434,-0.016 2.897,0 5.401,2.166 5.825,5.038 l 1.959,13.286 h 28.005 l 1.959,-13.286 c 0.423,-2.871 2.93,-5.037 5.831,-5.037 0.142,0 0.284,0.005 0.423,0.015 l 38.556,2.75 c 2.911,0.209 5.26,2.562 5.463,5.472 l 1.003,14.374 30.645,4.966 z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path1067"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g1073"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,555.4187,574.80276)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 v -47.514 -6.035 -5.492 c 0.108,-0.001 0.216,-0.005 0.323,-0.015 l 36.196,-3.49 c 1.896,-0.183 3.382,-1.709 3.514,-3.609 l 1.116,-15.978 31.574,-2.253 2.175,14.747 c 0.282,1.912 1.922,3.329 3.856,3.329 h 38.188 c 1.933,0 3.573,-1.417 3.855,-3.329 l 2.175,-14.747 31.575,2.253 1.115,15.978 c 0.133,1.9 1.618,3.425 3.514,3.609 l 36.182,3.49 c 0.107,0.01 0.214,0.014 0.322,0.015 v 4.711 l 0.015,0.005 V 0 h 0.134 c 4.795,6.12 9.232,12.569 13.487,19.449 -5.651,9.62 -12.575,18.217 -19.976,26.182 -6.864,-3.455 -13.531,-7.369 -19.828,-11.534 -3.151,3.132 -6.7,5.694 -10.186,8.372 -3.425,2.751 -7.285,4.768 -10.946,7.118 1.09,8.117 1.629,16.108 1.846,24.448 -9.446,4.754 -19.519,7.906 -29.708,10.17 -4.068,-6.837 -7.788,-14.241 -11.028,-21.479 -3.842,0.642 -7.702,0.88 -11.567,0.926 v 0.006 c -0.027,0 -0.052,-0.006 -0.075,-0.006 -0.024,0 -0.049,0.006 -0.073,0.006 V 63.652 C 93.903,63.606 90.046,63.368 86.203,62.726 82.965,69.964 79.247,77.368 75.173,84.205 64.989,81.941 54.915,78.789 45.47,74.035 45.686,65.695 46.225,57.704 47.318,49.587 43.65,47.237 39.795,45.22 36.369,42.469 32.888,39.791 29.333,37.229 26.181,34.097 19.884,38.262 13.219,42.176 6.353,45.631 -1.048,37.666 -7.968,29.069 -13.621,19.449 -9.368,12.569 -4.928,6.12 -0.134,0 Z"
|
||||
style="fill:#478cbf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path1071"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g1077"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,830.89115,692.93384)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 -1.121,-16.063 c -0.135,-1.936 -1.675,-3.477 -3.611,-3.616 l -38.555,-2.751 c -0.094,-0.007 -0.188,-0.01 -0.281,-0.01 -1.916,0 -3.569,1.406 -3.852,3.33 l -2.211,14.994 H -81.09 l -2.211,-14.994 c -0.297,-2.018 -2.101,-3.469 -4.133,-3.32 l -38.555,2.751 c -1.936,0.139 -3.476,1.68 -3.611,3.616 L -130.721,0 -163.268,3.138 c 0.015,-3.498 0.06,-7.33 0.06,-8.093 0,-34.374 43.605,-50.896 97.781,-51.086 h 0.066 0.067 c 54.176,0.19 97.766,16.712 97.766,51.086 0,0.777 0.047,4.593 0.063,8.093 z"
|
||||
style="fill:#478cbf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path1075"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g1081"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,670.78441,615.25518)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m -22.024595,1.6720738 c -12.042,0 -25.67305,-13.0143828 -21.598405,-1.6720738 3.739059,10.408162 17.019368,10.676839 21.492607,10.693249 C -17.657154,10.709659 -2.7380023,7.1323685 0,0 2.7380023,-7.1323685 -9.9765953,1.6720738 -22.024595,1.6720738 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path1079"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="sszzs" />
|
||||
</g>
|
||||
<g
|
||||
id="g1085"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,720.56874,655.42554)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c -3.878,0 -7.021,2.858 -7.021,6.381 v 20.081 c 0,3.52 3.143,6.381 7.021,6.381 3.878,0 7.028,-2.861 7.028,-6.381 V 6.381 C 7.028,2.858 3.878,0 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path1083"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g1089"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,770.35921,615.25518)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c 0,-12.052 9.765,-21.815 21.815,-21.815 12.041,0 21.808,9.763 21.808,21.815 0,12.044 -9.767,21.802 -21.808,21.802 C 9.765,21.802 0,12.044 0,0"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path1087"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
id="g1093"
|
||||
transform="matrix(1.6878585,0,0,-1.6878585,779.22038,617.43899)"
|
||||
style="stroke-width:0.320312">
|
||||
<path
|
||||
d="m 0,0 c 0,-7.994 6.477,-14.473 14.471,-14.473 8.002,0 14.479,6.479 14.479,14.473 0,7.994 -6.477,14.479 -14.479,14.479 C 6.477,14.479 0,7.994 0,0"
|
||||
style="fill:#414042;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.320312"
|
||||
id="path1091"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 14 KiB |
BIN
Screenshots/Mirror.png
(Stored with Git LFS)
Normal file
BIN
Screenshots/Mirror.png
(Stored with Git LFS)
Normal file
Binary file not shown.
21
addons/Mirror/LICENSE.md
Normal file
21
addons/Mirror/LICENSE.md
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Norodix
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
103
addons/Mirror/Mirror/Mirror.gd
Normal file
103
addons/Mirror/Mirror/Mirror.gd
Normal file
@ -0,0 +1,103 @@
|
||||
@tool
|
||||
extends Node3D
|
||||
|
||||
const whitegreen : Color = Color(0.9, 0.97, 0.94)
|
||||
|
||||
## Size of the mirror in world units
|
||||
@export var size : Vector2 = Vector2(2, 2)
|
||||
|
||||
## Resolution of the rendered viewport is Size*ResolutionPerUnit
|
||||
@export var ResolutionPerUnit = 100
|
||||
|
||||
## The NodePath to the main camera
|
||||
@export var MainCamPath: NodePath = ""
|
||||
|
||||
## The cull mask array contains the visual layers which are NOT rendered. The render layers numbering is different from their indexing. To avoid rendering layer 1 add a 0 element to the list. To avoid rendering layer 2 add a 1 element to the list and so on.
|
||||
@export var cullMask : Array[int] = []
|
||||
|
||||
## Tint color of the mirror surface
|
||||
@export_color_no_alpha var MirrorColor : Color = whitegreen
|
||||
|
||||
## Distortion multiplier of the mirror
|
||||
@export_range(0, 30, 0.01) var MirrorDistortion = 0
|
||||
|
||||
## The distortion texture of the mirror
|
||||
@export var DistortionTexture: Texture2D
|
||||
|
||||
var MainCam : Camera3D = null
|
||||
var cam : Camera3D
|
||||
var mirror : MeshInstance3D
|
||||
var viewport : SubViewport
|
||||
|
||||
|
||||
func _enter_tree():
|
||||
var node = preload("MirrorContainer.tscn").instantiate()
|
||||
add_child(node)
|
||||
var mesh_instance : MeshInstance3D = node.find_child("MeshInstance3D")
|
||||
mesh_instance.mesh = mesh_instance.mesh.duplicate()
|
||||
|
||||
|
||||
func _ready():
|
||||
MainCam = get_node_or_null(MainCamPath)
|
||||
cam = $MirrorContainer/SubViewport/Camera3D
|
||||
mirror = $MirrorContainer/MeshInstance3D
|
||||
viewport = $MirrorContainer/SubViewport
|
||||
|
||||
|
||||
func _process(delta):
|
||||
_ready() # need to reload for proper operation when used as a toolscript
|
||||
if MainCam == null:
|
||||
# No camera specified for the mirror to operate checked
|
||||
return
|
||||
|
||||
# Cull camera layers
|
||||
cam.cull_mask = 0xFF
|
||||
for i in cullMask:
|
||||
cam.cull_mask &= ~(1<<i)
|
||||
|
||||
# set mirror surface's size
|
||||
mirror.mesh.size = size
|
||||
# set viewport to specified resolution
|
||||
viewport.size = size * ResolutionPerUnit
|
||||
|
||||
# Set tint color
|
||||
mirror.get_active_material(0).set_shader_parameter("tint", MirrorColor)
|
||||
|
||||
# Set distortion texture
|
||||
mirror.get_active_material(0).set_shader_parameter("distort_tex", DistortionTexture)
|
||||
# Set distortion strength
|
||||
mirror.get_active_material(0).set_shader_parameter("distort_strength", MirrorDistortion)
|
||||
|
||||
# Transform3D the mirror camera to the opposite side of the mirror plane
|
||||
var MirrorNormal = mirror.global_transform.basis.z
|
||||
var MirrorTransform = Mirror_transform(MirrorNormal, mirror.global_transform.origin)
|
||||
cam.global_transform = MirrorTransform * MainCam.global_transform
|
||||
|
||||
# Look perpendicular into the mirror plane for frostum camera
|
||||
cam.global_transform = cam.global_transform.looking_at(
|
||||
cam.global_transform.origin/2 + MainCam.global_transform.origin/2, \
|
||||
mirror.global_transform.basis.y
|
||||
)
|
||||
var cam2mirror_offset = mirror.global_transform.origin - cam.global_transform.origin
|
||||
var near = abs((cam2mirror_offset).dot(MirrorNormal)) # near plane distance
|
||||
near += 0.05 # avoid rendering own surface
|
||||
|
||||
# transform offset to camera's local coordinate system (frostum offset uses local space)
|
||||
var cam2mirror_camlocal = cam.global_transform.basis.inverse() * cam2mirror_offset
|
||||
var frostum_offset = Vector2(cam2mirror_camlocal.x, cam2mirror_camlocal.y)
|
||||
cam.set_frustum(mirror.mesh.size.x, frostum_offset, near, 10000)
|
||||
|
||||
|
||||
# n is the normal of the mirror plane
|
||||
# d is the offset from the plane of the mirrored object
|
||||
# Gets the transformation that mirrors through the plane with normal n and offset d
|
||||
func Mirror_transform(n : Vector3, d : Vector3) -> Transform3D:
|
||||
var basisX : Vector3 = Vector3(1.0, 0, 0) - 2 * Vector3(n.x * n.x, n.x * n.y, n.x * n.z)
|
||||
var basisY : Vector3 = Vector3(0, 1.0, 0) - 2 * Vector3(n.y * n.x, n.y * n.y, n.y * n.z)
|
||||
var basisZ : Vector3 = Vector3(0, 0, 1.0) - 2 * Vector3(n.z * n.x, n.z * n.y, n.z * n.z)
|
||||
|
||||
var offset = Vector3.ZERO
|
||||
offset = 2 * n.dot(d)*n
|
||||
|
||||
return Transform3D(Basis(basisX, basisY, basisZ), offset)
|
||||
pass
|
31
addons/Mirror/Mirror/Mirror.gdshader
Normal file
31
addons/Mirror/Mirror/Mirror.gdshader
Normal file
@ -0,0 +1,31 @@
|
||||
shader_type spatial;
|
||||
render_mode cull_disabled, unshaded;
|
||||
|
||||
uniform vec4 tint : source_color = vec4(vec3(0.98),1.0);
|
||||
uniform sampler2D mirror_tex : source_color, repeat_disable;
|
||||
uniform sampler2D distort_tex : source_color;
|
||||
uniform float distort_strength : hint_range(0, 30);
|
||||
|
||||
void vertex() {
|
||||
UV.x = 1.0 - UV.x;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
vec2 m_UV = UV;
|
||||
|
||||
// Backface texcoord flip correction
|
||||
if (!FRONT_FACING) {
|
||||
m_UV.x = 1.0 - m_UV.x;
|
||||
}
|
||||
|
||||
float distort_ofs = texture(distort_tex, m_UV).r;
|
||||
|
||||
// Map offset to [-1, 1] region
|
||||
distort_ofs = (distort_ofs * 2.0) - 1.0;
|
||||
|
||||
|
||||
vec2 base_uv = m_UV + distort_ofs * distort_strength / VIEWPORT_SIZE;
|
||||
vec4 mirror_sample = texture(mirror_tex,base_uv);
|
||||
|
||||
ALBEDO = tint.rgb * mirror_sample.rgb;
|
||||
}
|
29
addons/Mirror/Mirror/MirrorContainer.tscn
Normal file
29
addons/Mirror/Mirror/MirrorContainer.tscn
Normal file
@ -0,0 +1,29 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://b51uk2h1t8l33"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://cp471l6edt4ab" path="res://addons/Mirror/Mirror/MirrorMaterial.tres" id="1"]
|
||||
|
||||
[sub_resource type="QuadMesh" id="11"]
|
||||
size = Vector2(2, 2)
|
||||
|
||||
[node name="MirrorContainer" type="Node3D"]
|
||||
|
||||
[node name="SubViewport" type="SubViewport" parent="."]
|
||||
size = Vector2i(100, 100)
|
||||
render_target_update_mode = 3
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="SubViewport"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.406672, 1.21628, 8.51171)
|
||||
keep_aspect = 0
|
||||
cull_mask = 1048571
|
||||
projection = 2
|
||||
size = 3.0
|
||||
frustum_offset = Vector2(-0.406672, -1.21628)
|
||||
near = 8.51171
|
||||
far = 10000.0
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 2.38419e-07, 0, 1, 0, -2.38419e-07, 0, 1, 0, 0, 0)
|
||||
layers = 4
|
||||
mesh = SubResource("11")
|
||||
skeleton = NodePath("../..")
|
||||
surface_material_override/0 = ExtResource("1")
|
14
addons/Mirror/Mirror/MirrorMaterial.tres
Normal file
14
addons/Mirror/Mirror/MirrorMaterial.tres
Normal file
@ -0,0 +1,14 @@
|
||||
[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://cp471l6edt4ab"]
|
||||
|
||||
[ext_resource type="Shader" path="res://addons/Mirror/Mirror/Mirror.gdshader" id="1"]
|
||||
|
||||
[sub_resource type="ViewportTexture" id="12"]
|
||||
viewport_path = NodePath("SubViewport")
|
||||
|
||||
[resource]
|
||||
resource_local_to_scene = true
|
||||
render_priority = 0
|
||||
shader = ExtResource("1")
|
||||
shader_parameter/tint = Color(0.98, 0.98, 0.98, 1)
|
||||
shader_parameter/distort_strength = 0.0
|
||||
shader_parameter/mirror_tex = SubResource("12")
|
24
addons/Mirror/README.md
Normal file
24
addons/Mirror/README.md
Normal file
@ -0,0 +1,24 @@
|
||||
# Godot Mirror
|
||||
|
||||

|
||||
|
||||
A plugin created for godot to instance mirrors in a 3D scene. The mirrors use additional cameras to render the scene from a mirrored perspective.
|
||||
|
||||
Mirror properties that can be adjusted:
|
||||
- Tint
|
||||
- Size
|
||||
- Visible visual layers
|
||||
- Player camera
|
||||
|
||||
## Usage
|
||||
|
||||
After the addon is enabled a custom node is added to godot under the spatial node.
|
||||
|
||||
The main camera that renders the scene needs to be selected in the variables of the node. Only one camera is supported at a time. The plugin adds a secondary camera to the opposite side of the mirror relative to this camera and renders the image to the mirror surface.
|
||||
|
||||
The cull mask array contains the visual layers which are NOT rendered. The render layers numbering is different from their indexing. To avoid rendering layer 1 add a 0 element to the list.
|
||||
To avoid rendering layer 2 add a 1 element to the list and so on.
|
||||
|
||||
## Installation
|
||||
|
||||
Copy the addons/Mirror folder into your godot root directory, same as the asset library installs addons. Enable the plugin in Project settings/Plugins.
|
78
addons/Mirror/icon.svg
Normal file
78
addons/Mirror/icon.svg
Normal file
@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="16"
|
||||
height="16"
|
||||
viewBox="0 0 4.2333332 4.2333332"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
|
||||
sodipodi:docname="icon.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="22.627417"
|
||||
inkscape:cx="8.6940988"
|
||||
inkscape:cy="12.428262"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<g
|
||||
id="g872"
|
||||
transform="translate(0.02117361,-0.01175623)"
|
||||
style="fill:none;stroke-width:0.34395833;stroke-miterlimit:4;stroke-dasharray:none;stroke:#e58f91;stroke-opacity:1">
|
||||
<path
|
||||
id="rect842"
|
||||
style="fill:none;stroke:#e58f91;stroke-width:0.34395833;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;stroke-opacity:1"
|
||||
d="M 0.3745072,0.3633829 2.2572793,0.71289572 V 3.5439501 L 0.3745072,3.8934629 Z"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<circle
|
||||
style="fill:none;stroke:#e58f91;stroke-width:0.34395833;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;stroke-opacity:1"
|
||||
id="path847"
|
||||
cx="3.3799474"
|
||||
cy="2.1284225"
|
||||
r="0.43653148" />
|
||||
<circle
|
||||
style="fill:none;stroke:#e58f91;stroke-width:0.34395833;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stop-color:#000000;stroke-opacity:1"
|
||||
id="circle849"
|
||||
cx="1.3158932"
|
||||
cy="2.1284225"
|
||||
r="0.43653148" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
37
addons/Mirror/icon.svg.import
Normal file
37
addons/Mirror/icon.svg.import
Normal file
@ -0,0 +1,37 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dxj8owcka0ldn"
|
||||
path="res://.godot/imported/icon.svg-d5bf744255b68932164587d8eb3dc79a.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/Mirror/icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-d5bf744255b68932164587d8eb3dc79a.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
7
addons/Mirror/plugin.cfg
Normal file
7
addons/Mirror/plugin.cfg
Normal file
@ -0,0 +1,7 @@
|
||||
[plugin]
|
||||
|
||||
name="Mirror"
|
||||
description="Adds custom mirror node to the editor"
|
||||
author="Norodix"
|
||||
version="0.2"
|
||||
script="plugin.gd"
|
12
addons/Mirror/plugin.gd
Normal file
12
addons/Mirror/plugin.gd
Normal file
@ -0,0 +1,12 @@
|
||||
@tool
|
||||
extends EditorPlugin
|
||||
|
||||
|
||||
func _enter_tree():
|
||||
add_custom_type("Mirror", "Node3D", preload("Mirror/Mirror.gd"), preload("icon.svg"))
|
||||
pass
|
||||
|
||||
|
||||
func _exit_tree():
|
||||
remove_custom_type("Mirror")
|
||||
pass
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bawho1fs8uowk"
|
||||
path="res://.godot/imported/texture_02.png-814d4f515892bb8274d285748f4a73a0.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_02.png-814d4f515892bb8274d285748f4a73a0.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_02.png"
|
||||
dest_files=["res://.godot/imported/texture_02.png-814d4f515892bb8274d285748f4a73a0.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_02.png-814d4f515892bb8274d285748f4a73a0.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://kijtpalgio4q"
|
||||
path="res://.godot/imported/texture_03.png-eef45c22e5a84c5df22e7f80e41112c6.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_03.png-eef45c22e5a84c5df22e7f80e41112c6.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_03.png"
|
||||
dest_files=["res://.godot/imported/texture_03.png-eef45c22e5a84c5df22e7f80e41112c6.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_03.png-eef45c22e5a84c5df22e7f80e41112c6.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://du0f7hc4skged"
|
||||
path="res://.godot/imported/texture_06.png-004ed3d5b88361cdfb83a20714e917e7.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_06.png-004ed3d5b88361cdfb83a20714e917e7.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_06.png"
|
||||
dest_files=["res://.godot/imported/texture_06.png-004ed3d5b88361cdfb83a20714e917e7.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_06.png-004ed3d5b88361cdfb83a20714e917e7.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bg7hbu285xx3c"
|
||||
path="res://.godot/imported/texture_07.png-7c77ff22e41b4a54319073cb71530d81.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_07.png-7c77ff22e41b4a54319073cb71530d81.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_07.png"
|
||||
dest_files=["res://.godot/imported/texture_07.png-7c77ff22e41b4a54319073cb71530d81.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_07.png-7c77ff22e41b4a54319073cb71530d81.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://o0rxfy5dvpsb"
|
||||
path="res://.godot/imported/texture_08.png-5883ddd047173c8b118ead887054e6fc.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_08.png-5883ddd047173c8b118ead887054e6fc.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_08.png"
|
||||
dest_files=["res://.godot/imported/texture_08.png-5883ddd047173c8b118ead887054e6fc.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_08.png-5883ddd047173c8b118ead887054e6fc.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cxj3qslcw455r"
|
||||
path="res://.godot/imported/texture_09.png-8e25cd5657e2d326068eb27bfa1aacec.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_09.png-8e25cd5657e2d326068eb27bfa1aacec.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_09.png"
|
||||
dest_files=["res://.godot/imported/texture_09.png-8e25cd5657e2d326068eb27bfa1aacec.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_09.png-8e25cd5657e2d326068eb27bfa1aacec.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://n25a1tlc20r2"
|
||||
path="res://.godot/imported/texture_10.png-1e788999a192eabd201c3b3435475799.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_10.png-1e788999a192eabd201c3b3435475799.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_10.png"
|
||||
dest_files=["res://.godot/imported/texture_10.png-1e788999a192eabd201c3b3435475799.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_10.png-1e788999a192eabd201c3b3435475799.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ciwwbgcpode0d"
|
||||
path="res://.godot/imported/texture_11.png-f61ad46caf1a41d85454e490ec43c8ec.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_11.png-f61ad46caf1a41d85454e490ec43c8ec.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_11.png"
|
||||
dest_files=["res://.godot/imported/texture_11.png-f61ad46caf1a41d85454e490ec43c8ec.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_11.png-f61ad46caf1a41d85454e490ec43c8ec.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dsf0exq5n4glb"
|
||||
path="res://.godot/imported/texture_12.png-aa893b2c5354267551e55ec14bb1999b.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_12.png-aa893b2c5354267551e55ec14bb1999b.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/dark/texture_12.png"
|
||||
dest_files=["res://.godot/imported/texture_12.png-aa893b2c5354267551e55ec14bb1999b.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_12.png-aa893b2c5354267551e55ec14bb1999b.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://brf3u1fddrxlq"
|
||||
path="res://.godot/imported/texture_01.png-94ebd82494c839e91a05b9e1cc2750ca.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_01.png-94ebd82494c839e91a05b9e1cc2750ca.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/green/texture_01.png"
|
||||
dest_files=["res://.godot/imported/texture_01.png-94ebd82494c839e91a05b9e1cc2750ca.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_01.png-94ebd82494c839e91a05b9e1cc2750ca.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://yg2714dns88k"
|
||||
path="res://.godot/imported/texture_02.png-aa1bb055b55bdc7c20e196b7286eebdf.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_02.png-aa1bb055b55bdc7c20e196b7286eebdf.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/green/texture_02.png"
|
||||
dest_files=["res://.godot/imported/texture_02.png-aa1bb055b55bdc7c20e196b7286eebdf.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_02.png-aa1bb055b55bdc7c20e196b7286eebdf.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://kbyfceu4geke"
|
||||
path="res://.godot/imported/texture_04.png-4678cc1dfb831f775bdc30cfd7f78769.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_04.png-4678cc1dfb831f775bdc30cfd7f78769.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/green/texture_04.png"
|
||||
dest_files=["res://.godot/imported/texture_04.png-4678cc1dfb831f775bdc30cfd7f78769.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_04.png-4678cc1dfb831f775bdc30cfd7f78769.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dkaygit5l83nq"
|
||||
path="res://.godot/imported/texture_01.png-e10423e44834e1b4a90c3134e446b32d.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_01.png-e10423e44834e1b4a90c3134e446b32d.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/light/texture_01.png"
|
||||
dest_files=["res://.godot/imported/texture_01.png-e10423e44834e1b4a90c3134e446b32d.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_01.png-e10423e44834e1b4a90c3134e446b32d.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://bpgpb8fitgael"
|
||||
path="res://.godot/imported/texture_02.png-ffde4d38b35463525c3815b255790206.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_02.png-ffde4d38b35463525c3815b255790206.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/light/texture_02.png"
|
||||
dest_files=["res://.godot/imported/texture_02.png-ffde4d38b35463525c3815b255790206.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_02.png-ffde4d38b35463525c3815b255790206.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
@ -3,25 +3,26 @@
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dx31pblshvnjw"
|
||||
path="res://.godot/imported/texture_02.png-fcb52d424cd62d43221e4153fa3176f8.ctex"
|
||||
path.s3tc="res://.godot/imported/texture_02.png-fcb52d424cd62d43221e4153fa3176f8.s3tc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
"imported_formats": ["s3tc_bptc"],
|
||||
"vram_texture": true
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://addons/kenney_prototype_textures/purple/texture_02.png"
|
||||
dest_files=["res://.godot/imported/texture_02.png-fcb52d424cd62d43221e4153fa3176f8.ctex"]
|
||||
dest_files=["res://.godot/imported/texture_02.png-fcb52d424cd62d43221e4153fa3176f8.s3tc.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/mode=2
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/generate=true
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
detect_3d/compress_to=0
|
||||
|
BIN
assets/models/character/character.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Diffuse.png
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Diffuse.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Diffuse.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Diffuse.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Glossiness.png
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Glossiness.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Glossiness.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Glossiness.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Normal.png
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Normal.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Normal.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Normal.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Specular.png
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Specular.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1001_Specular.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1001_Specular.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Diffuse.png
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1002_Diffuse.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Diffuse.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1002_Diffuse.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Normal.png
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1002_Normal.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/character_Ch02_1002_Normal.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/character_Ch02_1002_Normal.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/dummy/dummy.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/character/dummy/dummy.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/character/dummy/dummy.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/character/dummy/dummy.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/el_test_Image_0.png
(Stored with Git LFS)
Normal file
BIN
assets/models/el_test_Image_0.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/el_test_Image_0.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/el_test_Image_0.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/el_test_Image_1.png
(Stored with Git LFS)
Normal file
BIN
assets/models/el_test_Image_1.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/el_test_Image_1.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/el_test_Image_1.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/el_test_Image_2.png
(Stored with Git LFS)
Normal file
BIN
assets/models/el_test_Image_2.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/el_test_Image_2.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/el_test_Image_2.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/hands/hands.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/hands/hands.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/hands/hands.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/hands/hands.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_bottom_bars.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_top.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balconyLadder_top_bars.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balcony_typeA.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/balcony_typeA_bars.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_small.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_small_roof.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_wide.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailAwning_wide_roof.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_damaged_concrete.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeA_concrete.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_concrete.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrierStrong_typeB_signs.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA.glb.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_metal.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png.import
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeA_signs.png.import
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB.glb
(Stored with Git LFS)
Normal file
BIN
assets/models/kenney/RetroUrban/detailBarrier_typeB.glb
(Stored with Git LFS)
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user