关于允许操作移动
相关插件
主要插件如下:
◆Drill_PlayerAllowMove 互动 - 允许操作玩家移动
◆Drill_PlayerAllowEventMove 互动 - 允许操作事件移动
◆Drill_PlayerAllowTouchNonstop 互动 - 允许鼠标寻路不停止
这里详细说明 权限、操作、移动 之间的关系以及用法。
名词索引
以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:
操作玩家移动 | 权限 允许 操作 移动操作权限 控制移动*控制移动的渠道)允许操作移动 不允许的条件*不允许的条件) |
操作事件移动 | 操作事件移动 允许操作事件移动 |
允许操作移动
定义
1) 思考题
在理解之前,可以先思考下面的问题。
在游戏中,玩家按一下方向键之后,游戏里面的玩家会移动一图块。这个过程在电脑中是如何处理的?这个过程都有哪些插件产生了反应? |
2) 定义
移动: 指游戏中的 玩家/事件 在地图中行走的过程。
操作: 指玩家使用 输入设备 对电脑进行控制的过程。 操作 ≠ 控制。
输入设备包括 键盘/手柄/鼠标/触屏。
输入设备知识可以去看看文档:“1.系统 > 关于输入设备核心(入门篇).docx
”
操作移动: 指玩家使用 输入设备 控制游戏中的 玩家/事件 在地图中行走的过程。
允许操作移动: 指一种权限,权限能控制 是否允许 操作移动。
允许操作玩家移动: 指一种权限,权限能控制 是否允许 操作玩家的移动。
允许操作事件移动: 指一种权限,权限能控制 是否允许 操作事件的移动。
该文档的重点在于“允许操作”,也就是 操作权限 。操作 ≠ 控制, 操作移动 ≠ 控制移动。每个词都有具体的意思,最后组成了一个很长的不好理解的词组。只能多看几遍来理解了。(´⊙ω⊙`) |
3) 控制移动
控制移动: 指 通过任何方式 使得游戏中的 玩家/事件 在地图中行走的过程。
操作移动 属于控制移动的一种方式。
操作 ≠ 控制, 操作移动 ≠ 控制移动。
“控制” 在很多地方有其他的意思,在这里 特指“通过任何方式”。 |
游戏中,物体移动 分为 事件移动、玩家移动。
物体被控制移动时,通常有下面四种渠道:
> 事件移动-移动路线(基于移动路线)
强制移动路线指令集 -> 执行移动指令 -> 图块是否阻塞 -> 单次移动成功/移动失败
> 事件移动-自主移动(基于移动路线)
自主移动指令集(并行) -> 执行移动指令 -> 图块是否阻塞 ->单次移动成功/移动失败
> 玩家移动-移动路线(基于移动路线)
强制移动路线指令集 -> 执行移动指令 -> 图块是否阻塞 -> 单次移动成功/移动失败
> 玩家移动-输入设备操作移动(基于操作权限)
按下物理按键 -> 激活逻辑按键 -> 是否允许操作移动 -> 执行移动指令 -> 图块是否阻塞 -> 单次移动成功/移动失败
上述的四种渠道中,前三种都基于 移动路线,
只有最后一个才基于 操作移动的权限。
控制移动方式: 指在游戏中,使 玩家/事件 在地图中行走的方式。
根据前面的介绍,可以分为 操作移动权限控制 和 移动路线控制 两种。
另外注意 操作移动权限 与 移动路线 相互独立,是两个功能。
移动路线 使用脚本控制 物体移动。操作移动权限 使玩家通过输入设备控制 物体移动。 |
4) 思考题答案
最初问题的答案其实已经揭晓了,
”在游戏中,玩家按一下方向键之后,游戏里面的玩家会移动一图块。”
其流程为:
按下物理按键 -> 激活逻辑按键 -> 是否允许操作移动 -> 执行移动指令 -> 图块是否阻塞 -> 单次移动成功/移动失败
该流程如下表所示:
操作移动流程 | 流程相关插件 |
按下物理按键 | Drill_CoreOfInput 系统 - 输入设备核心(能直接禁用 键盘/手柄/鼠标/触屏 功能) |
激活逻辑按键 | Drill_OperateKeys 键盘 - 键盘手柄按键修改器Drill_MouseDestination 鼠标 - 目的地指向标(键盘可以改键,还可以将方向键倒置) |
操作权限 | Drill_PlayerAllowMove 互动 - 允许操作玩家移动Drill_PlayerAllowEventMove 互动 - 允许操作事件移动(决定物体什么时候能够被控制移动) |
执行移动指令 | 无 |
图块是否阻塞 | 图块类、体积类 插件(决定图块的可通行性) |
单次移动成功/移动失败 | 无 |
如果游戏中物体无法移动,反推时要考虑上述全部相关插件的可能性。任何一个环节被阻止,都会导致物体无法移动。 |
权限
1) 定义
该文档有很多与 “权限” 相关名词,这里统一解释一下。 |
权限: 指 玩家 能控制电脑中某个具体 程序/服务 的能力。
比如 操作玩家权限 是一种操作控制玩家的能力。
比如 操作事件权限 是一种操作控制事件的能力。
允许: 指 玩家 具备某种权限。
允许 = 权限开启。
不允许 = 权限关闭 = 拒绝。
操作权限: 指 玩家 具备使用 输入设备 对电脑进行控制的权限。
这种权限,可以理解为 操作系统中 的访问权限。
如果权限被关闭,则会出现 拒绝访问 。
允许操作移动: 指一种权限,权限能控制 是否允许 操作移动。
(允许则表示 玩家按方向键能移动,不允许则表示 按了没反应。)
允许操作玩家移动: 指一种权限,权限能控制 是否允许 操作玩家的移动。
允许操作事件移动: 指一种权限,权限能控制 是否允许 操作事件的移动。
2) 不允许的条件
游戏时,操作移动有个常见现象:
出现对话框时,事件仍然可以自主移动,也可以通过移动路线控制移动。
出现对话框时,执行玩家的 不等待 移动路线时,玩家能够移动。
出现对话框时,玩家自己用键盘、鼠标操作,都无法移动。
这个现象,是因为对话框出现时,不允许操作移动。
除了上面的情况,不允许操作移动 还有下面的这些条件:
有任何事件在自动执行时,不允许操作移动
出现对话框时,不允许操作移动
强制移动(移动路线)时,不允许操作移动
集合队伍时,不允许操作移动
上下载具时,不允许操作移动
在载具中时,不允许操作移动(操作的是载具对象移动)
上述的 不允许条件 为固定机制,不可修改。 |
除了上述的情况,
基于 互动-允许操作玩家移动 的 子插件 也会有一些权限设置,
在子插件设定的情况下,也不允许操作移动。
3) 控制优先级
前面 3) 控制移动_控制移动) 中介绍了四种渠道,
这些渠道可以分为 操作移动权限控制 和 移动路线控制 两种。
但注意,移动路线和允许操作移动同时激活时,移动路线的优先级更高。
也就是说,玩家被强制控制移动路线进行移动时,无法通过允许操作移动来控制移动。
操作事件移动
1) 插件用法
插件包含:
Drill_PlayerAllowMove 互动 - 允许操作玩家移动
Drill_PlayerAllowEventMove 互动 - 允许操作事件移动
操作移动: 指玩家使用 输入设备 控制游戏中的 玩家/事件 在地图中行走的过程。
允许操作事件移动: 指一种权限,权限能控制 是否允许 操作事件的移动。
根据前面介绍的 控制移动_控制移动的渠道) 的四种渠道,分别为:
事件移动-移动路线控制(基于移动路线)
事件移动-自主移动(基于移动路线)
玩家移动-移动路线控制(基于移动路线)
玩家移动-输入设备控制移动(基于允许操作移动)
该插件能提供另一种渠道,即:
事件移动-输入设备控制移动(基于允许操作移动)
控制原理没变,只是控制的对象被换成了事件。
要实现操作事件移动,
需要先关闭玩家的移动权限,再绑定事件的权限,如下图。
设置后,你就能通过 键盘/手柄/鼠标/触屏 对一个事件进行与玩家一样的移动操作了。
2) 其它控制渠道
控制移动的方法有两种:操作移动权限控制 和 移动路线控制。
移动路线控制中,有一种特殊的渠道,即:
移动路线指令-接近鼠标。
事件能通过移动路线,自己接近鼠标,能实现 鼠标控制事件移动 的功能。
3) 事件控制局限性
由于鼠标指向标只有一个。
所以你 只能 控制一组小爱丽丝,
不能分别控制两组或更多组的小爱丽丝去移动。
因此该插件功能不能实现RTS的操作,只能作为近似的小功能。
插件介绍
【互动 - 允许鼠标寻路不停止】
插件为:
Drill_PlayerAllowTouchNonstop 互动 - 允许鼠标寻路不停止
1) 原理说明
原设定中,鼠标单击某一个地方,如果中途触发了某个事件,玩家就会停下来。
该插件可以使得玩家不停走动。(比如一路捡钱,不停止走动。)
如果遇到对话框或者阻止角色移动的事件,玩家还是会停止走动的。
可以去 允许操作管理层 看看效果。
从零开始设计(DIY)
设计允许操作移动的事件
1. 设置一个目标
2023年11月14日,作者我在看番剧《街角魔族》第二季第四集的时候,感觉 ”灵魂可附身人偶,且人偶有多个备用” 的这个设定非常有意思。
正好最近在写 允许操作移动 插件,那么操作事件作为人偶来移动,也是一件有意思的玩法。于是作者我就开坑了。
2. 结构规划/流程梳理
功能插件与玩家、事件的关系如下表。
玩家 | 事件 | |
允许操作移动 | 开 | 关 |
功能插件 | 互动 - 允许操作玩家移动(只绑定玩家) | 互动 - 允许操作事件移动(可绑定多个事件) |
控制台必须控制 玩家、事件 任意一个,
所以需要先关闭玩家的 允许操作移动,再绑定事件的 允许操作移动。
另外注意,
Drill_LayerCamera 地图 - 活动地图镜头
地图镜头插件始终看向玩家,
需要通过镜头插件指令,将镜头转为看向事件。
3. 放置事件
首先,放置一个被控制的事件,什么指令都不需要加。
然后,放置一个控制器,如下图。
通过插件指令,关闭玩家移动权限,然后给事件绑定权限。
然后执行事件即可控制事件了。
4. 细节说明
由于事件无法触发事件,所以这里使用了插件,重力开关来代替触发效果。
Drill_EventPressureSwitch 物体 - 重力开关
你也可以给事件加 操作触发 的功能,详细可以看文档:10.互动 > 关于允许操作触发.docx 。 |
控制多个事件时,可以使用插件指令“多个事件的中心”来优化镜头位置。