2020/11/27(金) [n年前の日記]
#1 [godot] Godot Engineでマウスを動かしてカメラを動かしたい
Godot Engine 3.2.3 x64 を勉強中。Godot Engine のカメラをマウス操作で動かしたいなと。
色々ググってコピペして、こんな感じになった。
_Main.gd
html5でエクスポートしてみた。Webブラウザ上で動くはず。マウスを動かすとカメラがグルグル回る。
_particles_test_3d.html
色々ググってコピペして、こんな感じになった。
_Main.gd
extends Spatial
export var camera_dist = 50
export var angle_speed = 15
var ang = Vector3()
func _ready():
ang = $Camera.rotation_degrees
func _process(delta):
ang.y += angle_speed * delta
set_camera_angle(ang)
func _input(event):
if event is InputEventMouseMotion:
ang.y -= (event.relative.x * 360 / 1280)
ang.x -= (event.relative.y * 180 / 720)
set_camera_angle(ang)
func set_camera_angle(angle):
var pos = Vector3()
var d = abs(camera_dist * cos(deg2rad(angle.x)))
pos.y = camera_dist * sin(deg2rad(-angle.x))
pos.z = d * cos(deg2rad(angle.y))
pos.x = d * sin(deg2rad(angle.y))
$Camera.rotation_degrees = angle
$Camera.translation = pos
- _input(event) というメソッドを用意すると、マウスを動かしたりマウスボタンを押したときにこのメソッドが呼ばれる。
- event が InputEventMouseMotion なら、マウスカーソルが動いたということ。
- event.relative.x と event.relative.y で、マウスカーソルがどれだけ動いたかが得られる。単位はドット。
html5でエクスポートしてみた。Webブラウザ上で動くはず。マウスを動かすとカメラがグルグル回る。
_particles_test_3d.html
◎ 2021/01/28追記。 :
Webブラウザ上で表示すると、カメラの向きが妙だなと…。まあ、こんな感じでカメラを動かせるっぽい、ということで…。
[ ツッコむ ]
以上です。