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:
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
Reference in New Issue
Block a user