Skip to content

关于允许操作移动

相关插件

主要插件如下:

◆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

控制多个事件时,可以使用插件指令“多个事件的中心”来优化镜头位置。

贡献者

暂无相关贡献者

页面历史

暂无最近变更历史