feat(node-editor, blueprint): add group box and math/logic nodes (#438)
* feat(node-editor, blueprint): add group box and math/logic nodes node-editor: - Add visual group box for organizing nodes - Dynamic bounds calculation based on node pin counts - Groups auto-resize to wrap contained nodes - Dragging group header moves all nodes together blueprint: - Add comprehensive math nodes (modulo, power, sqrt, trig, etc.) - Add logic nodes (comparison, boolean, select) docs: - Update nodes.md with new math and logic nodes - Add group feature documentation to editor-guide.md * chore: remove unused debug and test scripts Remove FBX animation debug scripts that are no longer needed: - analyze-fbx, debug-*, test-*, verify-*, check-*, compare-*, trace-*, simple-fbx-test Remove unused kill-dev-server.js from editor-app
This commit is contained in:
@@ -270,6 +270,30 @@ If you delete a variable but nodes still reference it:
|
||||
- Nodes display a **red border** and **warning icon**
|
||||
- You need to recreate the variable or delete these nodes
|
||||
|
||||
## Node Grouping
|
||||
|
||||
You can organize multiple nodes into a visual group box to help manage complex blueprints.
|
||||
|
||||
### Creating a Group
|
||||
|
||||
1. Box-select or Ctrl+click to select multiple nodes (at least 2)
|
||||
2. Right-click on the selected nodes
|
||||
3. Choose **Create Group**
|
||||
4. A group box will automatically wrap all selected nodes
|
||||
|
||||
### Group Operations
|
||||
|
||||
| Action | Method |
|
||||
|--------|--------|
|
||||
| Move group | Drag the group header, all nodes move together |
|
||||
| Ungroup | Right-click on group box → **Ungroup** |
|
||||
|
||||
### Features
|
||||
|
||||
- **Dynamic sizing**: Group box automatically resizes to wrap all nodes
|
||||
- **Independent movement**: You can move nodes within the group individually, and the box adjusts
|
||||
- **Editor only**: Groups are purely visual organization, no runtime impact
|
||||
|
||||
## Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Function |
|
||||
|
||||
@@ -75,13 +75,87 @@ Control execution flow:
|
||||
|
||||
## Math Nodes
|
||||
|
||||
Basic Operations:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Add` / `Subtract` / `Multiply` / `Divide` | Basic operations |
|
||||
| `Add` / `Subtract` / `Multiply` / `Divide` | Basic arithmetic |
|
||||
| `Modulo` | Modulo operation (%) |
|
||||
| `Negate` | Negate value |
|
||||
| `Abs` | Absolute value |
|
||||
| `Clamp` | Clamp to range |
|
||||
| `Lerp` | Linear interpolation |
|
||||
| `Sign` | Sign (+1, 0, -1) |
|
||||
| `Min` / `Max` | Minimum/Maximum |
|
||||
| `Clamp` | Clamp to range |
|
||||
| `Wrap` | Wrap value to range |
|
||||
|
||||
Power & Roots:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Power` | Power (A^B) |
|
||||
| `Sqrt` | Square root |
|
||||
|
||||
Rounding:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Floor` | Round down |
|
||||
| `Ceil` | Round up |
|
||||
| `Round` | Round to nearest |
|
||||
|
||||
Trigonometry:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Sin` / `Cos` / `Tan` | Sine/Cosine/Tangent |
|
||||
| `Asin` / `Acos` / `Atan` | Inverse trig functions |
|
||||
| `Atan2` | Two-argument arctangent |
|
||||
| `DegToRad` / `RadToDeg` | Degree/Radian conversion |
|
||||
|
||||
Interpolation:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Lerp` | Linear interpolation |
|
||||
| `InverseLerp` | Inverse linear interpolation |
|
||||
|
||||
Random:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Random Range` | Random float in range |
|
||||
| `Random Int` | Random integer in range |
|
||||
|
||||
## Logic Nodes
|
||||
|
||||
Comparison:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Equal` | Equal (==) |
|
||||
| `Not Equal` | Not equal (!=) |
|
||||
| `Greater Than` | Greater than (>) |
|
||||
| `Greater Or Equal` | Greater than or equal (>=) |
|
||||
| `Less Than` | Less than (<) |
|
||||
| `Less Or Equal` | Less than or equal (<=) |
|
||||
| `In Range` | Check if value is in range |
|
||||
|
||||
Logical Operations:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `AND` | Logical AND |
|
||||
| `OR` | Logical OR |
|
||||
| `NOT` | Logical NOT |
|
||||
| `XOR` | Exclusive OR |
|
||||
| `NAND` | NOT AND |
|
||||
|
||||
Utility:
|
||||
|
||||
| Node | Description |
|
||||
|------|-------------|
|
||||
| `Is Null` | Check if value is null |
|
||||
| `Select` | Choose A or B based on condition (ternary) |
|
||||
|
||||
## Debug Nodes
|
||||
|
||||
|
||||
@@ -270,6 +270,30 @@ your-project/
|
||||
- 节点会显示 **红色边框** 和 **警告图标**
|
||||
- 需要重新创建变量或删除这些节点
|
||||
|
||||
## 节点分组
|
||||
|
||||
可以将多个节点组织到一个可视化组框中,便于整理复杂蓝图。
|
||||
|
||||
### 创建组
|
||||
|
||||
1. 框选或 Ctrl+点击 选中多个节点(至少 2 个)
|
||||
2. 右键点击选中的节点
|
||||
3. 选择 **创建分组**
|
||||
4. 组框会自动包裹所有选中的节点
|
||||
|
||||
### 组操作
|
||||
|
||||
| 操作 | 方式 |
|
||||
|------|------|
|
||||
| 移动组 | 拖拽组框头部,所有节点一起移动 |
|
||||
| 取消分组 | 右键点击组框 → **取消分组** |
|
||||
|
||||
### 特性
|
||||
|
||||
- **动态大小**:组框会自动调整大小以包裹所有节点
|
||||
- **独立移动**:可以单独移动组内的节点,组框会自动调整
|
||||
- **仅编辑器**:组是纯视觉组织,不影响运行时逻辑
|
||||
|
||||
## 快捷键
|
||||
|
||||
| 快捷键 | 功能 |
|
||||
|
||||
@@ -75,13 +75,87 @@ description: "蓝图内置 ECS 操作节点"
|
||||
|
||||
## 数学节点 (Math)
|
||||
|
||||
基础运算:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Add` / `Subtract` / `Multiply` / `Divide` | 四则运算 |
|
||||
| `Modulo` | 取模运算 (%) |
|
||||
| `Negate` | 取负 |
|
||||
| `Abs` | 绝对值 |
|
||||
| `Clamp` | 限制范围 |
|
||||
| `Lerp` | 线性插值 |
|
||||
| `Sign` | 符号 (+1, 0, -1) |
|
||||
| `Min` / `Max` | 最小/最大值 |
|
||||
| `Clamp` | 限制在范围内 |
|
||||
| `Wrap` | 循环限制在范围内 |
|
||||
|
||||
幂与根:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Power` | 幂运算 (A^B) |
|
||||
| `Sqrt` | 平方根 |
|
||||
|
||||
取整:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Floor` | 向下取整 |
|
||||
| `Ceil` | 向上取整 |
|
||||
| `Round` | 四舍五入 |
|
||||
|
||||
三角函数:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Sin` / `Cos` / `Tan` | 正弦/余弦/正切 |
|
||||
| `Asin` / `Acos` / `Atan` | 反三角函数 |
|
||||
| `Atan2` | 两参数反正切 |
|
||||
| `DegToRad` / `RadToDeg` | 角度与弧度转换 |
|
||||
|
||||
插值:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Lerp` | 线性插值 |
|
||||
| `InverseLerp` | 反向线性插值 |
|
||||
|
||||
随机数:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Random Range` | 范围内随机浮点数 |
|
||||
| `Random Int` | 范围内随机整数 |
|
||||
|
||||
## 逻辑节点 (Logic)
|
||||
|
||||
比较运算:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Equal` | 等于 (==) |
|
||||
| `Not Equal` | 不等于 (!=) |
|
||||
| `Greater Than` | 大于 (>) |
|
||||
| `Greater Or Equal` | 大于等于 (>=) |
|
||||
| `Less Than` | 小于 (<) |
|
||||
| `Less Or Equal` | 小于等于 (<=) |
|
||||
| `In Range` | 检查值是否在范围内 |
|
||||
|
||||
逻辑运算:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `AND` | 逻辑与 |
|
||||
| `OR` | 逻辑或 |
|
||||
| `NOT` | 逻辑非 |
|
||||
| `XOR` | 异或 |
|
||||
| `NAND` | 与非 |
|
||||
|
||||
工具节点:
|
||||
|
||||
| 节点 | 说明 |
|
||||
|------|------|
|
||||
| `Is Null` | 检查值是否为空 |
|
||||
| `Select` | 根据条件选择 A 或 B (三元运算) |
|
||||
|
||||
## 调试节点 (Debug)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user