GDCubismEffectTargetPoint

Desc

GDCubismUserModel の子要素として配置することで、指定した座標に顔や視線を向ける様になります。

この要素を利用するには、Live2Dモデルに事前設定をしておく必要があります。

マウスポインタで画面内でドラッグした位置に視線を動かしたい場合は、以下の様なコードを使って GDCubismEffectTargetPoint に現在位置を更新させてください。

func _input(event):

    if event as InputEventMouseButton:
        pressed = event.is_pressed()

    if event as InputEventMouseMotion:
        if pressed == true:
            # マウス座標を表示に使用している Node に変換
            var local_pos = $Sprite2D.to_local(event.position)
            # 変換した座標を SubViewport の表示サイズに調整
            var render_size: Vector2 = Vector2(
                float($Sprite2D/GDCubismUserModel.size.x) * $Sprite2D.scale.x,
                float($Sprite2D/GDCubismUserModel.size.y) * $Sprite2D.scale.y * -1.0
            ) * 0.5
            local_pos /= render_size
            $Sprite2D/GDCubismUserModel/GDCubismEffectTargetPoint.set_target(local_pos)
        else:
            $Sprite2D/GDCubismUserModel/GDCubismEffectTargetPoint.set_target(Vector2.ZERO)

Properties

String

body_angle_x

[default: "ParamBodyAngleX"]

float

body_range

[default: 10.0]

String

eyes_ball_x

[default: "ParamEyeBallX"]

String

eyes_ball_y

[default: "ParamEyeBallX"]

float

eyes_range

[default: 1.0]

String

head_angle_x

[default: "ParamAngleX"]

String

head_angle_y

[default: "ParamAngleY"]

String

head_angle_z

[default: "ParamAngleZ"]

float

head_range

[default: 30.0]

Methods

Vector2

get_target()

void

set_target(target: Vector2)

Signals

Enumerations

Constants

Property Descriptions

String body_angle_x [default: "ParamBodyAngleX"]

set_targetで体の向きを変更する際に使用する ID を指定します。

String body_range [default: 10.0]

body_angle_x で指定した ID をどの程度動かすかを指定します。
値が大きいほど敏感に反応し、 0.0 を指定すると反応しなくなります。

String eyes_ball_x [default: "ParamEyeBallX"]

set_targetで視線(瞳の向き)を変更する際に使用する ID を指定します。

String eyes_ball_y [default: "ParamEyeBallX"]

set_targetで視線(瞳の向き)を変更する際に使用する ID を指定します。

String eyes_range [default: 1.0]

eyes_ball_x, eyes_ball_x で指定した ID をどの程度動かすかを指定します。
値が大きいほど敏感に反応し、 0.0 を指定すると反応しなくなります。

String head_angle_x [default: "ParamHeadAngleX"]

set_targetで視線(瞳の向き)を変更する際に使用する ID を指定します。

String head_angle_y [default: "ParamHeadAngleY"]

set_targetで視線(瞳の向き)を変更する際に使用する ID を指定します。

String head_angle_z [default: "ParamHeadAngleZ"]

set_targetで視線(瞳の向き)を変更する際に使用する ID を指定します。

String head_range [default: 3.0]

head_angle_x, head_angle_y, head_angle_z で指定した ID をどの程度動かすかを指定します。
値が大きいほど敏感に反応し、 0.0 を指定すると反応しなくなります。

Method Descriptions

Vector2 get_target()

Live2Dモデルの向いている向きを取得します。

void set_target(target: Vector2)

Live2Dモデルの向いている向きを設定します。
設定可能な向きは x, y どちらも -1.0 から 1.0 の範囲です。
範囲を超える値を渡した場合は、範囲内に収められます。

指定する座標はスクリーンの座標ではなく、テクスチャを貼り付けている Node の中心からの範囲となります。

  • x: 0.0, y: 0.0 正面

  • x: -1.0, y: 0.0 画面左

  • x: 1.0, y: 0.0 画面右

  • x: 0.0, y: -1.0 画面下

  • x: 0.0, y: 1.0 画面上