Godot Engine 3.xのGDScriptの一人称コントローラースクリプトの例と、それを運動式のボディノードに適用する方法の例を示します。


キネマティックボディを拡張します

var velocity = vector3（）
var速度= 10

func _physics_process（delta）：
    velocity = vector3（）

    input.is_action_pressed（ "move_forward"）の場合：
        Velocity.Z- = 1
    input.is_action_pressed（ "move_backward"）の場合：
        Velocity.Z += 1
    input.is_action_pressed（ "move_left"）の場合：
        velocity.x- = 1
    input.is_action_pressed（ "move_right"）の場合：
        velocity.x += 1

    Velocity = Velocity.Normalized（） *速度
    move_and_slide（velocity）

このスクリプトをシーンのキネマティックボディノードに適用するには、新しいKinematicBodyノードを作成し、右クリックして「スクリプトを添付」します。次に、スクリプトを新しいスクリプトファイルに貼り付けて保存します。

このスクリプトをGodot Engine 4.xで機能させるには、いくつかの構文の変更と物理学の処理方法の変更を含む新しいAPIを使用するために、スクリプトを更新する必要があります。Godot Engine 4.xで機能するはずのスクリプトの更新バージョンを次に示します。

キネマティックボディを拡張します

var velocity = vector3.zero
var速度= 10

func _physics_process（delta）：
    velocity = vector3.zero

    input.is_action_pressed（ "move_forward"）の場合：
        Velocity.Z- = 1
    input.is_action_pressed（ "move_backward"）の場合：
        Velocity.Z += 1
    input.is_action_pressed（ "move_left"）の場合：
        velocity.x- = 1
    input.is_action_pressed（ "move_right"）の場合：
        velocity.x += 1

    Velocity = Velocity.Normalized（） *速度
    move_and_slide（velocity）

Godot Engine 4.xでは、Kinematicbodyノードがrigidbodyに変更され、Move_and_slideメソッドが移動に置き換えられたことに注意してください。
Here is an example of a first person controller script in GDScript for Godot Engine 3.x and how it can be applied to a KinematicBody node:


extends KinematicBody

var velocity = Vector3()
var speed = 10

func _physics_process(delta):
    velocity = Vector3()

    if Input.is_action_pressed("move_forward"):
        velocity.z -= 1
    if Input.is_action_pressed("move_backward"):
        velocity.z += 1
    if Input.is_action_pressed("move_left"):
        velocity.x -= 1
    if Input.is_action_pressed("move_right"):
        velocity.x += 1

    velocity = velocity.normalized() * speed
    move_and_slide(velocity)

To apply this script to a KinematicBody node in your scene, create a new KinematicBody node, right-click it, and select "Attach Script." Then paste the script into the new script file and save it.

To make this script work in Godot Engine 4.x, the script needs to be updated to use the new API, which includes some syntax changes and changes to how physics are processed. Here is an updated version of the script that should work in Godot Engine 4.x:

extends KinematicBody

var velocity = Vector3.ZERO
var speed = 10

func _physics_process(delta):
    velocity = Vector3.ZERO

    if Input.is_action_pressed("move_forward"):
        velocity.z -= 1
    if Input.is_action_pressed("move_backward"):
        velocity.z += 1
    if Input.is_action_pressed("move_left"):
        velocity.x -= 1
    if Input.is_action_pressed("move_right"):
        velocity.x += 1

    velocity = velocity.normalized() * speed
    move_and_slide(velocity)

Note that in Godot Engine 4.x, the KinematicBody node has been renamed to RigidBody, and the move_and_slide method has been replaced with move.