KinematicDaicon
![]()
KinematicDaicon はキネマティックオブジェクトを表すノードです。動いて相互作用するオブジェクトを作成するのに必要なものがすべて含まれています。
パラメーター:
- d3
CharacterBody3D
KinematicDaicon のコア。
- whisker
Area3D
これは衝突を追跡し、オブジェクトを正しくレンダリングするために y および z-sorting 連動します。オブジェクトがバリアの後ろにあるかどうかを判定します。
- shader_cast
RayCast3D
ShaderCast は特別な目的のノードです。その目的は、プレイヤーの前にあるオブジェクトとの衝突を検出し、それに基づいてシェーダーを描画することです。
- tile_size
int
タイルサイズとは、3D空間において1メートルに相当するピクセル数を決定するものです。 (要するに、3D空間におけるセルサイズあたりのタイルサイズを指します)
- y_3d
int
キャラクターのZ軸上の位置。
- z_step
int
Zステップは、高さレベル間のソートシステムにおけるステップです。
例えば、z_step = 10の場合、次のように設定されます:
レベル -1 = -10 レベル 0 = 0 レベル 1 = 10 レベル 2 = 20
- mesh
MeshInstance3D
カーネルに埋め込まれたメッシュ・ノード・セル(インストール後、3Dセクションで見ることができる)。 セクション「Core : mesh_properties」に独自の辞書があります。
- shape
Node3D
コアに埋め込まれたシェイプノードのセル(コリジョンに必要)。 CollisionShape3D または CollisionPolygon3D のみをスキップします。 これは「Core : shape_properties」/"の下に独自の辞書を持っています。
Mesh & Shape-セクション
「Mesh & Shape」セクションには、MeshとShapeのパラメーターが含まれています。
Slots-セクション
Node3D
スロット - 開発者ノードをコアに実装する必要がある場合のセル(コード経由の通信のみ)。
Core-セクション
- child_count
int
カーネルの子ノードの数を常にカウントする。
- properties
Dictionary
セルを介してカーネルに格納されるノードパラメータの辞書。カーネルの子ノードの動的展開に必要なすべてのパラメータを格納する。
KinematicBody3D-セクション
カーネルのルート・ノードのパラメータ・セクション。
(ドキュメントを見る Godot : CharacterBody3D / KinematicBody3D)
CollisionObject3D-セクション
カーネルのルート・ノードのパラメータ・セクション。
(ドキュメントを見る Godot : CollisionObject3D)
Info
axis_lock も含まれる。
RayCast-セクション
Whisker および ShaderCast ノードのパラメーターセクション。
(Godot のドキュメントを参照:Area3D - RayCast3D)
方法:
- _ready
各起動時にカーネルをデプロイする。ノードの基本設定を行います。
- _process
エディターでのみ動作します。
2Dでのノードの動きと3Dでのコアの動きを同期させる。
- update_pos
func update_pos(coef = 1):
self.position.x = (d3.position.x - offset_3d.x) * tile_size
self.position.y = ((d3.position.z - offset_3d.z) - (d3.position.y - offset_3d.y)) * tile_size
if whisker.get_overlapping_bodies():
if whisker.get_overlapping_bodies()[0].has_meta("z_index"):
self.z_index = whisker.get_overlapping_bodies()[0].get_meta("z_index") - 1
else:
self.z_index = (int(d3.position.y + (offset_3d.y * 1.1))) * z_step - 1
else:
self.z_index = ((d3.position.y - offset_3d.y) + coef) * z_step + 2
d3.set_meta("z_index", self.z_index)
この関数は,コアの3次元座標を渡して,2次元空間におけるオブジェクトの位置を更新する.
coef はオブジェクトの高さを決定します。
- get_node_properties
func get_node_properties(node: Node) -> Dictionary:
var properties : Dictionary = {
"Name" : node.name,
"Class" : node.get_class(),
"Properties" : {}
}
for prop in node.get_property_list():
if prop.usage & PROPERTY_USAGE_STORAGE:
properties.Properties[prop.name] = node.get(prop.name)
return properties
この関数は、すべてのノードのパラメータ、名前、クラスを辞書に書き込み、それを返します。
- _expand
func _expand() -> void:
_expand_d3()
_expand_ray_cast()
if mesh_properties:
_expand_mesh()
if shape_properties:
_expand_shape()
_expand_slots()
この関数は、カーネルのデプロイメントを扱う。