Write (LogiXノード)

From Neos Wiki
Revision as of 08:16, 20 February 2022 by Aesc (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Other languages:
English • ‎日本語 • ‎한국어
Write
'Write' LogiX node
Inputs
  Impulse Write
  dummy Value
Outputs
  IValue`1 Target
  Impulse OnDone
  Impulse OnFail

Writeノードは、Writeにインパルスを入力すると、参照されている Target 値を入力 Value値で上書きします。

使用方法

ノードブラウザから生成されたとき、Value入力はダミーのデータ型を持っています。これは、有効な入力が接続されたときに、入力データ型と一致するようにオーバーロードされます。入力のデータ型と、参照されているTargetのデータ型は一致しなければなりません。


OnDone 出力は、Writeにインパルスを入力した後に Target 値が正常に上書きされたとき、または Target 値が、書き込もうとした変数をフックできるシステム(例えばDrivenode,ValueCopyコンポーネントなど)によってドライブされる場合にインパルスを出力します。このインパルスは、Writeに到達したインパルスの連鎖を継続します。


OnFail 出力は Target の値が設定できなかった場合、例えば Target の値が他のソースからドライブされ、書き込んだ値をフックできない場合、または有効な Target がない場合、インパルスを出力します。このインパルスはWriteに到達したインパルスの連鎖を継続します。


WriteノードでVariableノード、Componentフィールドなどの値を変更すると、データモデルの変更が行われ、セッション内の他のユーザーと同期されます。変更は更新の最後にのみ同期されるため、1 つのクライアントが同じターゲットに複数の書き込みを行った場合、最終的な値のみが送信されることに注意してください。さらに、値が更新の開始時に持っていた値にリセットされた場合、変更はブロードキャストされません。この同期処理のため、絶対に必要な場合を除き、非常に定期的に (たとえばアップデートのたびに) 値を書き込むことは望ましくありません。不必要なネットワークトラフィックを避けるため、連続的に変化する値には代わりにドライブシステムを使用する方が一般的によいでしょう。ソース.

一般的に、Write/Write Latch ノードでは、コンポーネントまたはスロットのフィールドは値型(bools、ints、string、float など)のみ書き込み可能ですが、参照型フィールド(スロット、ユーザー、IAssetProvider<AudioClip> など)はWrite Refが必要です。しかし、参照型 LogiX 変数ノードに Write/Write Latch ノードを使用して書き込むことは可能ですが、Write Ref では不可能です。また、入力の SetValueResetValue が参照データ型ではなく RefID の場合、Write/Write Latch を使用して参照型フィールドに書き込むことが可能です - しかし、生の RefID を扱うことは一般的にお勧めできません。

Example of Write

ノードメニュー

Actions
Back -- ++ Drive Drive Playback Tween Write
Write Latch Write Ref Write Ref Latch