Difference between revisions of "Write Latch (LogiX node)/ko"

From Neos Wiki
Jump to navigation Jump to search
(Updating to match new version of source page)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
<languages></languages>
 
<languages></languages>
<div class="mw-translate-fuzzy">
+
{{Infobox Logix Node
'''Set'''에 '''Impulse'''가 입력되면 '''SetValue'''의 값을 출력의 Target에 보내고, '''OnSet'''에 '''Impulse'''를 바이패스합니다. '''Reset'''에 '''Impulse'''를 보내는 경우에는 '''ResetValue'''의 입력값을 '''Target'''에 보내고, '''OnReset'''에 '''Impulse'''를 바이패스하지요.
+
| Name = Write Latch
</div>
+
| Image =[[File: WriteLatch`1Node.png | noframe | 128px | 'Write Latch' LogiX node ]]
 +
| Input0Type = Impulse | Input0Name = Set
 +
| Input1Type = Impulse | Input1Name = Reset
 +
| Input2Type = dummy | Input2Name = SetValue
 +
| Input3Type = dummy | Input3Name = ResetValue
 +
| Output0Type = IValue`1 | Output0Name = Target
 +
| Output1Type = Impulse | Output1Name = OnSet
 +
| Output2Type = Impulse | Output2Name = OnReset
 +
}}
  
<div class="mw-translate-fuzzy">
+
이 노드는 <code>Set</code> 또는 <code>Reset</code> 중 Impulse가 들어오는 곳에 따라 입력측의 <code>SetValue</code> 또는 <code>ResetValue</code>의 값을 출력인 <code>Target</code>로 전달합니다.
<!--[[File:|border|256px|right]]-->
 
</div>
 
  
<div class="mw-translate-fuzzy">
+
== 사용방법 ==
== 입력인자 & 반환값 ==
+
이 노드는 처음 꺼내면, 입력측 <code>Value</code>는 dummy 자료형(자료형이 정해지지 않은 상태를 의미)을 가집니다. 입력에 사용 가능한 데이터를 연결하면 자료형이 결정됩니다. 입력 자료형이 경정되면 출력측 <code>Target</code>의 자료형도 동일하게 지정됩니다.
{| class="wikitable"
 
|+입력인자(Input parameters)
 
|-
 
| 자료형 대표색
 
| 인자명
 
| 자료형
 
|-
 
| style="background-color:{{Impulse-color}}" |
 
| Set
 
| [[:LogiX:Impulses|Impulse]]
 
|-
 
| style="background-color:{{Impulse-color}}" |
 
| Reset
 
| [[:LogiX:Impulses|Impulse]]
 
|-
 
| style="background-color:{{Dummy-color}}" |
 
| SetValue
 
| [[:Category:Types:Dummy|(dummy)]]
 
|-
 
| style="background-color:{{Dummy-color}}" |
 
| ResetValue
 
| [[:Category:Types:Dummy|(dummy)]]
 
|}
 
</div>
 
  
  
The <code>OnSet</code> output fires an impulse after an impulse is received at <code>Set</code>. This occurs regardless of whether there is a valid <code>Target</code> or whether any <code>Target</code> was actually written to. This continues the impulse chain which arrived at <code>Set</code>.
+
<code>Set</code>에 impulse가 들어오면, <code>OnSet</code>에 연결된 입력값을 <code>Target</code>에 쓰고 <code>OnSet</code>으로 impulse를 전송합니다.
  
  
The <code>OnReset</code> output fires an impulse after an impulse is received at <code>Reset</code>. This occurs regardless of whether there is a valid <code>Target</code> or whether any <code>Target</code> was actually written to. This continues the impulse chain which arrived at <code>Reset</code>.
+
<code>Reset</code>에 impulse가 들어오면, <code>OnReset</code>에 연결된 입력값을 <code>Target</code>에 쓰고 <code>OnReset</code>으로 impulse를 전송합니다.
  
  
Changing the value of a Variable node, Component field etc. via a Write Latch node results in a datamodel change which will then be synchronised to other users in the session. Note that changes are only synchronised at the end of every update so, if multiple writes to the same target are performed by a single client within an update, only the final value will be sent. Additionally, no changes will be broadcast if the value is reset to the value it held at the beginning of an update. Due to this synchronisation process, it is inadvisable to write to a value very regularly (e.g. every update) unless absolutely necessary. It is generally better to use the [[drive|Drive]] system instead for continuously changing values to avoid unnecessary network traffic. [https://github.com/Neos-Metaverse/NeosPublic/issues/2590#issuecomment-874788205 Source].
+
이 노드는 Variable 노드, 구성요소의 필드등의 값을 변경합니다. 이렇게 값이 변경되면 세션내 다른 사용자들에게 변경된 정보가 동기화 됩니다. 값의 변경 정보가 동기화 되는것은 매 업데이트시 이루어지므로, 업데이트 주기가 오기 전에 값이 여러번 변경될 경우 마지막 값만 적용되어 동기화됩니다. 부가적으로, 업데이트 주기가 오기 전 값이 여러번 변경되더라도 마지막으로 동기화된 값과 업데이트 직전 동기화 대기중인 값이 같을 경우 이 값은 동기화되지 않습니다.(ex. 1(직전 동기화된 값) -> 2(업데이트 주기가 오기전 변경된 값) -> 3(업데이트 주기가 오기전 변경된 값) -> 1(동기화 대기상태인 값)인 경우, 결국 동일한 값이므로 동기화 절차를 수행하지 않습니다). 이런 동기화 절차를 수행하므로 매 업데이트마다 값을 계속 변경하는 것은 불필요한 트래픽을 유발하므로, 특정한 규칙성을 가진 값의 변경은 '''[[drive|드라이브]]''' 노드들을 이용하는것을 추천합니다. '''[https://github.com/Neos-Metaverse/NeosPublic/issues/2590#issuecomment-874788205 참고정보].'''
  
 
Generally, with a Write/Write Latch node, one can only write to component or slot fields which are value-typed (e.g. bools, ints, strings, floats), whereas reference-typed fields (e.g. slot, user, IAssetProvider<AudioClip> etc.) require [[Write Ref (LogiX node)|Write Ref]]. However, it ''is'' possible to write to reference-typed LogiX variable nodes using a Write/Write Latch node where it ''isn't'' possible to do so with Write Ref. It is also possible to write to reference-typed fields using Write/Write Latch if the input <code>SetValue</code> and <code>ResetValue</code> are RefIDs, rather than reference datatypes - it is generally not recommended to work with raw RefIDs though.
 
Generally, with a Write/Write Latch node, one can only write to component or slot fields which are value-typed (e.g. bools, ints, strings, floats), whereas reference-typed fields (e.g. slot, user, IAssetProvider<AudioClip> etc.) require [[Write Ref (LogiX node)|Write Ref]]. However, it ''is'' possible to write to reference-typed LogiX variable nodes using a Write/Write Latch node where it ''isn't'' possible to do so with Write Ref. It is also possible to write to reference-typed fields using Write/Write Latch if the input <code>SetValue</code> and <code>ResetValue</code> are RefIDs, rather than reference datatypes - it is generally not recommended to work with raw RefIDs though.
  
<div class="mw-translate-fuzzy">
+
== 예제 ==
{| class="wikitable"
+
아래의 두 이미지는 동일한 기능을 수행하지만 로직스의 구성이 다른 예를 보여 줍니다.[[Write (LogiX node)|Write]] 노드 2개를 이용하여 유사하게 만들어진 것입니다. 입력과 출력이 정확히 일치하지 않다는 점은 인지하고 봐 주시면 됩니다.
|+반환값
 
|-
 
| 자료형 대표색
 
| 인자명
 
| 자료형
 
|-
 
| style="background-color:{{IValue-color}}" |
 
| Target
 
| [[:Category:Types:IValue`1|IValue<nowiki><T></nowiki>]]
 
|-
 
| style="background-color:{{Impulse-color}}" |
 
| OnSet
 
| [[:LogiX:Impulses|Impulse]]
 
|-
 
| style="background-color:{{Impulse-color}}" |
 
| OnReset
 
| [[:LogiX:Impulses|Impulse]]
 
|}
 
</div>
 
  
 
[[File:LogiX.Actions.WriteLatch.Example.jpg|600px|Example usage Write Latch]]
 
[[File:LogiX.Actions.WriteLatch.Example.jpg|600px|Example usage Write Latch]]
Line 72: Line 35:
 
[[File:LogiX.Actions.Write.imp_WriteLatch.jpg|600px|Comparable usage of two Write nodes]]
 
[[File:LogiX.Actions.Write.imp_WriteLatch.jpg|600px|Comparable usage of two Write nodes]]
  
<div class="mw-translate-fuzzy">
+
== 노드 메뉴(Node Menu) ==
== 사용방법 ==
 
이 노드의 입력인자인 '''SetValue'''와 '''ResetValue'''는 자료형이 확정되지 않은 '''Dummy'''로 표현됩니다. 노드에 연결하는 자료형에 맞추어 출력쪽 '''Target'''도 동일한 자료형을 사용할 수 있도록 작성하여 주세요.
 
</div>
 
  
 
[[Category:LogiX{{#translation:}}|Write Latch]]
 
[[Category:LogiX{{#translation:}}|Write Latch]]
 
[[Category:LogiX:Actions{{#translation:}}|Write Latch]]
 
[[Category:LogiX:Actions{{#translation:}}|Write Latch]]
 
{{NodeMenu-Actions{{#translation:}}}}
 
{{NodeMenu-Actions{{#translation:}}}}

Latest revision as of 03:26, 4 January 2022

Other languages:
English • ‎日本語 • ‎한국어
Write Latch
'Write Latch' LogiX node
Inputs
  Impulse Set
  Impulse Reset
  dummy SetValue
  dummy ResetValue
Outputs
  IValue`1 Target
  Impulse OnSet
  Impulse OnReset

이 노드는 Set 또는 Reset 중 Impulse가 들어오는 곳에 따라 입력측의 SetValue 또는 ResetValue의 값을 출력인 Target로 전달합니다.

사용방법

이 노드는 처음 꺼내면, 입력측 Value는 dummy 자료형(자료형이 정해지지 않은 상태를 의미)을 가집니다. 입력에 사용 가능한 데이터를 연결하면 자료형이 결정됩니다. 입력 자료형이 경정되면 출력측 Target의 자료형도 동일하게 지정됩니다.


Set에 impulse가 들어오면, OnSet에 연결된 입력값을 Target에 쓰고 OnSet으로 impulse를 전송합니다.


Reset에 impulse가 들어오면, OnReset에 연결된 입력값을 Target에 쓰고 OnReset으로 impulse를 전송합니다.


이 노드는 Variable 노드, 구성요소의 필드등의 값을 변경합니다. 이렇게 값이 변경되면 세션내 다른 사용자들에게 변경된 정보가 동기화 됩니다. 값의 변경 정보가 동기화 되는것은 매 업데이트시 이루어지므로, 업데이트 주기가 오기 전에 값이 여러번 변경될 경우 마지막 값만 적용되어 동기화됩니다. 부가적으로, 업데이트 주기가 오기 전 값이 여러번 변경되더라도 마지막으로 동기화된 값과 업데이트 직전 동기화 대기중인 값이 같을 경우 이 값은 동기화되지 않습니다.(ex. 1(직전 동기화된 값) -> 2(업데이트 주기가 오기전 변경된 값) -> 3(업데이트 주기가 오기전 변경된 값) -> 1(동기화 대기상태인 값)인 경우, 결국 동일한 값이므로 동기화 절차를 수행하지 않습니다). 이런 동기화 절차를 수행하므로 매 업데이트마다 값을 계속 변경하는 것은 불필요한 트래픽을 유발하므로, 특정한 규칙성을 가진 값의 변경은 드라이브 노드들을 이용하는것을 추천합니다. 참고정보.

Generally, with a Write/Write Latch node, one can only write to component or slot fields which are value-typed (e.g. bools, ints, strings, floats), whereas reference-typed fields (e.g. slot, user, IAssetProvider<AudioClip> etc.) require Write Ref. However, it is possible to write to reference-typed LogiX variable nodes using a Write/Write Latch node where it isn't possible to do so with Write Ref. It is also possible to write to reference-typed fields using Write/Write Latch if the input SetValue and ResetValue are RefIDs, rather than reference datatypes - it is generally not recommended to work with raw RefIDs though.

예제

아래의 두 이미지는 동일한 기능을 수행하지만 로직스의 구성이 다른 예를 보여 줍니다.Write 노드 2개를 이용하여 유사하게 만들어진 것입니다. 입력과 출력이 정확히 일치하지 않다는 점은 인지하고 봐 주시면 됩니다.

Example usage Write Latch

Comparable usage of two Write nodes

노드 메뉴(Node Menu)

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