로직스(LogiX)

From Neos Wiki
Jump to navigation Jump to search
This page is a translated version of the page LogiX and the translation is 100% complete.
Other languages:
English • ‎čeština • ‎日本語 • ‎한국어

로직스(Logix)는 네오스의 비주얼 프로그래밍 시스템이며, 오브젝트의 행위를 프로그래밍하기 위해 사용됩니다. 로직스 노드와 선을 통한 노드들간의 연결을 통해 구성할 수 있습니다.

네오스 내에서는 로직스 툴팁(LogiX Tooltip)을 이용하여 하단 이미지에 보이는 로직스 노드 메뉴(LogiX node menu)를 이용할 수 있습니다. 이 메뉴에서 로직스로 사용가능한 모든 명령어를 확인할 수 있습니다.


RubikLogix.png

  • 네오스에서 볼 수 있는 로직스 노드 탐색기


로직스 노드 메뉴(LogiX node menu)

Actions Assets Audio Avatar Color Components Debug
Flow Formatting Input Input Devices Interaction Locomotion Math
Meta Network Operators Physics Playback References Rendering
Slots String Tools Transactions Transform UI Undo
Users Utility Variables Visualization World Cache Delay Value
Demultiplex Display Display Impulse Impulse Relay Multiplex Pick Random Relay
Updating Relay

LogiX Fundamentals

임펄스(Impulses)

임펄스는 사용자의 입력에 대해 즉각적인 반응을 나타낼 수 있으며, 이 성질은 Windows 개발언어의 Event와 유사합니다. 임펄스는 Pulse 데이터명을 가진 노드의 인자와 연결이 가능합니다.

임펄스 자체는 네트워크를 경유하지 않고 사용자의 로컬 컴퓨터에서만 발생하나, Write 노드 같은 월드 내에 시각적인 변화를 발생시킬 수 있는 노드들과 사용할 경우 그 정보를 모든 사용자와 동기화 시켜야 하므로 네트워크 로드가 발생할 수 있습니다.


Values

These are data values that come from fields in Components via interfaces or as the outputs of Logix nodes. They can be generic C# system types or custom Neos types. Depending on how the value is calculated, via logix or a component, the data can appear differently for different players - This is most apparent when a field is driven, or something involving the Local User is used as an input. Types

Nodes

Nodes are what creates a Logix program, they do various calculations or operations. Some nodes only run calculations based on their input values and provide the outputs readily, others are "passthrough" nodes that require an impulse to trigger or affect their operation. Often passthrough nodes perform a change in the datamodel, though this is not always the case.

Passthrough nodes can be chained together using the corresponding impulse passthrough outputs, to control the order of operations.

Passthrough nodes and other impulse-generating nodes, such as events, can have data outputs that only present valid data within their accompanying output impulse's Evaluation Context - You must process them using the same impulse that the node was triggered with or the data will be gone.

Overloading

Logix is strongly typed, so nodes can only accept a single type of value for each pin. This means there needs to be multiple Logix components for each operator (for instance add for int32, and add for float), however users do not need to care about this because of overloading.

When you assign a pin in Logix with a Logix tooltip, if the pin type does not match the type of the wire you are trying to connect, a search is done to find a different component representing the same operation that has compatible pins. If one is found the node is replaced, and the wire is assigned. If one is not found a cast node may be created, or the assignment fails and the wire is not connected.

Many nodes support overloading with a set of input pins such as the multiplex node, and some nodes can have more exotic overloading patterns such as the x node.

To see overloading in action, assign a float to a + node, then remove the wire and assign an int to the same node. The node should automatically convert to the float overload (which it likely spawned as), and then be converted to an int overload when that wire is connected. Do note that if you attach a float to the first pin, and then an int to the second, a cast node is created instead.