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 |
[default: "ParamBodyAngleX"] |
|
float |
[default: 10.0] |
|
String |
[default: "ParamEyeBallX"] |
|
String |
[default: "ParamEyeBallX"] |
|
float |
[default: 1.0] |
|
String |
[default: "ParamAngleX"] |
|
String |
[default: "ParamAngleY"] |
|
String |
[default: "ParamAngleZ"] |
|
float |
[default: 30.0] |
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 画面上
-