Difference between revisions of "Write (LogiX node)/ja"

From Neos Wiki
Jump to navigation Jump to search
(Created page with "== 一例 == 600px|Writeの使い方一例")
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<languages></languages>
 
<languages></languages>
Writeノードは、インパルスを受信すると、参照されたターゲット値を入力値で上書きします。
+
{{Infobox Logix Node
 +
| Name = Write
 +
| Image =[[File: WriteValueNode`1Node.png | noframe | 128px | 'Write' LogiX node ]]
 +
| Input0Type = Impulse | Input0Name = Write
 +
| Input1Type = dummy | Input1Name = Value
 +
| Output0Type = IValue`1 | Output0Name = Target
 +
| Output1Type = Impulse | Output1Name = OnDone
 +
| Output2Type = Impulse | Output2Name = OnFail
 +
}}
  
<!--[[File:|border|256px|right]]-->
+
'''Write'''ノードは、<code>Write</code>にインパルスを入力すると、参照されている <code>Target</code> 値を入力 <code>Value</code>値で上書きします。
 +
 
 +
== 使用方法 ==
 +
ノードブラウザから生成されたとき、<code>Value</code>入力はダミーのデータ型を持っています。これは、有効な入力が接続されたときに、入力データ型と一致するようにオーバーロードされます。入力のデータ型と、参照されている<code>Target</code>のデータ型は一致しなければなりません。
 +
 
 +
 
 +
<code>OnDone</code> 出力は、<code>Write</code>にインパルスを入力した後に <code>Target</code> 値が正常に上書きされたとき、または <code>Target</code> 値が、書き込もうとした変数をフックできるシステム(例えば[[Drive (LogiX node)|Drive]]node,[[ValueCopy (Component)|ValueCopy]]コンポーネントなど)によってドライブされる場合にインパルスを出力します。このインパルスは、<code>Write</code>に到達したインパルスの連鎖を継続します。
  
== Inputs & Outputs ==
 
{| class="wikitable"
 
|+Inputs
 
|-
 
| Color
 
| Label
 
| Type
 
|-
 
| style="background-color:{{Impulse-color}}" |
 
| Write
 
| [[:LogiX:Impulses|Impulse]]
 
|-
 
| style="background-color:{{Dummy-color}}" |
 
| Value
 
| [[:Category:Types:Dummy| (dummy)]]
 
|}
 
  
{| class="wikitable"
+
<code>OnFail</code> 出力は <code>Target</code> の値が設定できなかった場合、例えば <code>Target</code> の値が他のソースからドライブされ、書き込んだ値をフックできない場合、または有効な <code>Target</code> がない場合、インパルスを出力します。このインパルスは<code>Write</code>に到達したインパルスの連鎖を継続します。
|+Outputs
 
|-
 
| Color
 
| Label
 
| Type
 
|-
 
| style="background-color:{{IValue-color}}" |
 
| Target
 
| [[:Category:Types:IValue`1|IValue<nowiki><T></nowiki>]]
 
|-
 
| style="background-color:{{Impulse-color}}" |
 
| OnDone
 
| [[:LogiX:Impulses|Impulse]]
 
|-
 
| style="background-color:{{Impulse-color}}" |
 
| OnFail
 
| [[:LogiX:Impulses|Impulse]]
 
|}
 
  
== 使用方法 ==
 
ノード・ブラウザからスポーンされた場合、値の入力にはダミー(または未決定)の型が入っています。入力データ型と参照されるターゲットのデータ型は一致しなければなりません。
 
  
Writeノードで値を書き込むと、ワールド内のすべてのユーザ間で値が同期されます。したがって、このノードが動作するたびに、ユーザー間のネットワークを介していくつかの情報が渡されなければなりません。通常、これは無視できないほどのものではありません(絶対的に巨大な文字列を書かない限り)。しかし、大量の書き込みが発生している場合は、ネットワークに大きな負荷がかかり、ラグが発生する可能性があります。LogiXのセットアップで値が非常に急速に変化したり、連続的に変化したりする必要がある場合は、新しい値を書き込むのではなく、直接値を上書きすることを検討してください。
+
WriteノードでVariableノード、Componentフィールドなどの値を変更すると、データモデルの変更が行われ、セッション内の他のユーザーと同期されます。変更は更新の最後にのみ同期されるため、1 つのクライアントが同じターゲットに複数の書き込みを行った場合、最終的な値のみが送信されることに注意してください。さらに、値が更新の開始時に持っていた値にリセットされた場合、変更はブロードキャストされません。この同期処理のため、絶対に必要な場合を除き、非常に定期的に (たとえばアップデートのたびに) 値を書き込むことは望ましくありません。不必要なネットワークトラフィックを避けるため、連続的に変化する値には代わりに[[drive/ja|ドライブ]]システムを使用する方が一般的によいでしょう。[https://github.com/Neos-Metaverse/NeosPublic/issues/2590#issuecomment-874788205 ソース].
 +
 
 +
一般的に、Write/Write Latch ノードでは、コンポーネントまたはスロットのフィールドは値型(bools、ints、string、float など)のみ書き込み可能ですが、参照型フィールド(スロット、ユーザー、IAssetProvider<AudioClip> など)は[[Write_Ref_(LogiX_node)/ja|Write Ref]]が必要です。しかし、参照型 LogiX 変数ノードに Write/Write Latch ノードを使用して書き込むことは可能ですが、Write Ref では不可能です。また、入力の <code>SetValue</code> と <code>ResetValue</code> が参照データ型ではなく RefID の場合、Write/Write Latch を使用して参照型フィールドに書き込むことが可能です - しかし、生の RefID を扱うことは一般的にお勧めできません。
  
== 一例 ==
+
== ==
[[File:LogiX.Actions.Write Example1.jpg|600px|Writeの使い方一例]]
+
[[File:LogiX.Actions.Write Example1.jpg|600px|Example of Write]]
  
== Node Menu ==
+
== ノードメニュー ==
  
 
[[Category:LogiX{{#translation:}}|Write]]
 
[[Category:LogiX{{#translation:}}|Write]]
[[Category:LogiX: Actions{{#translation:}}|Write]]
+
[[Category:LogiX:Actions{{#translation:}}|Write]]
{{:NodeMenu-Actions{{#translation:}}}}
+
{{NodeMenu-Actions{{#translation:}}}}

Latest revision as of 08:16, 20 February 2022

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