关于输入设备核心(入门篇)
相关插件
核心插件:
◆Drill_CoreOfInput 系统 - 输入设备核心
由于子插件较多,这里就不全部列举了,章节中会提及相关插件。
入门篇主要介绍 物理按键,并介绍 物理按键 相关插件选择与设计。高级篇主要介绍 逻辑按键,并介绍 逻辑按键 相关插件改键与控制权修改设计。 |
名词索引
以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:
输入设备 | 输入设备 启用/禁用设备物理按键与逻辑按键 |
键盘 | 键盘的物理按键 |
手柄 | 手柄的物理按键 在游戏中查看多个手柄连接情况 |
鼠标 | 鼠标的物理按键 |
触屏 | 触屏的物理按键 |
输入设备
定义
输入设备: 指计算机输入数据和信息的设备。
目前可用的输入设备有四种:键盘、手柄、鼠标、触屏。
输入设备的接口中:
键盘只有一个,手柄可以有零个或多个,鼠标只有一个,触屏只有一个。
输入设备的定义很广泛,摄像头、话筒、扫描仪、手绘板等都属于输入设备,只是目前能用的输入设备只有这些。 |
官网有关于 键盘、手柄 按键的部分说明:(简单看看就好,介绍没那么详细)http://help.rpgmakermv.cn/#page/01_06.html!cn |
启用/禁用设备
输入设备核心中能直接自定义设备 启用/禁用:
核心还提供了插件指令,
也可以控制 启用/禁用、开启/关闭 设备。(启用/开启 两词意思一样)
物理按键与逻辑按键
1)定义区别
物理按键: 指真实世界键盘/手柄/鼠标/触屏上存在的按键,比如z,x,c,v键等。
逻辑按键: 指游戏中用于划分特定功能的按键,比如确定键,取消键,跳跃键等。
二者最大的区别,就是物理按键不能改键,但是逻辑按键能改键。
逻辑按键这里只简单介绍,详细内容会在高级篇中进行说明。 |
2)子插件说明
子插件在“输入设备”的条目中,会对 物理按键/逻辑按键 支持情况,作专门说明。
插件的 插件指令、事件注释、分支条件 等,
也会特别标记 “物理按键” 或 “逻辑按键” 字样。
3)设计差异
对于大部分游戏来说,
只要按键能通过插件控制具体功能,这就足够了。
至于是物理按键还是逻辑按键,也就一个改键的区别。
> 小型游戏的按键设计
在游戏最初,就告诉玩家有哪些固定按键,通过按键操作即可。
> 大型游戏的按键设计
大型游戏通常会专门去考虑逻辑按键,支持改键。
因为玩家会对操作习惯有具体需求。
键盘
定义
键盘: 是最常用也是最主要的输入设备,可以将英文字母、汉字、数字、标点符号等输入到计算机中,从而向计算机发出命令、输入数据等。
键盘设备只能连接一个,连接多个键盘没用。
键盘的物理按键
1)常规按键
键盘的物理按键可以使用 字母、数字 的关键字,
如 a b A B 1 2 等,字母大小写都可以。
你还可以设置特殊的键盘按键,填入以下字符关键字:
Esc F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12
~ - = [ ] \ ; ' , . /
Tab Shift Ctrl Alt Backspace 上 下 左 右 空格 Enter
PageUp PageDown End Home Insert Delete
小键盘的关键字如下:
Num0 Num1 Num2 Num3 Num4 Num5 Num6 Num7 Num8 Num9
Num* Num+ Num- Num. Num/ NumEnter
以键盘响应开关插件为例,物理按键在插件中的写法如下:
注意,如果你想配置键盘的 空格,那么要填"空格",而不是" "。 |
2)功能固定的按键
键盘中有一些直连底层功能的按键,如下:
物理按键“F5”: 立即重启游戏。
物理按键“F12”: steam截图。
设计游戏时,注意避开这些 物理按键。 |
奇怪的键盘按键
键盘中有一些奇怪的按键,如下:
Fn按键: 笔记本的特殊功能键,控制笔记本的硬件设备用。
Windows按键: win操作系统的专用按键,主要用于操作系统的桌面控制。
也有一些特殊的外接键盘按键,如下图。
键盘的奇怪按键,都不算 物理按键,因为并不是所有键盘都有这些按键,所以设计游戏不要考虑奇怪按键的情况。 |
注意,电脑的电源键/重启键,既不是键盘按键,也不是物理按键。因为这个按键已经完全与游戏无关了,不要看见什么能按的东西都理解为是物理按键。 |
手柄
定义
手柄: 是指一种电子游戏机的输入设备,通过操纵其按钮等,可以实现对电脑上模拟角色等的控制。
主手柄: 指能控制玩家的那个手柄。
因为手柄设备可以连接多个,可见 在游戏中查看多个手柄连接情况 。
连接多个手柄时,只有主手柄才能控制玩家,其他手柄需要子插件支持才能控制。
手柄的物理按键
你可以设置手柄按键,填入以下字符关键字:
A B X Y LB RB LT RT
SELECT START 左摇杆按键 右摇杆按键
按键上 按键下 按键左 按键右
左摇杆上 左摇杆下 左摇杆左 左摇杆右
右摇杆上 右摇杆下 右摇杆左 右摇杆右
大部分游戏中,按键的上/下/左/右 等同于 左摇杆的上/下/左/右,
但从物理按键的角度来看,二者是不同键位,设计时注意区分。
另外,现在的手柄设计都主要以左摇杆来控制移动,按键反而很少用。
以手柄响应开关插件为例,物理按键在插件中的写法如下:
设计时注意 按键 和 左摇杆 的触发,是分开支持,还是一起支持。 |
奇怪的手柄按键
作者我的一个手柄背面有这四个按键,
实际操作时这些按键充当了 LB、RB、LT、RT这四个按键。
手柄的奇怪按键,都不算 物理按键,因为并不是所有手柄都有这些按键,所以设计游戏不要考虑奇怪按键的情况。 |
鼠标
定义
鼠标: 是计算机的一种外接输入设备,也是计算机显示系统纵横坐标定位的指示器,因形似老鼠而得名(也有称呼为滑鼠)。鼠标的使用是为了使计算机的操作更加简便快捷,来代替键盘那繁琐的指令。
鼠标设备只能连接一个,连接多个鼠标没用。
鼠标的物理按键
鼠标有三个键位:左键、中键/滚轮、右键。
鼠标中键与鼠标滚轮是同一个键。
鼠标滚轮的 上滚和下滚 只在特殊情况下能支持,需要看具体应用场景。
鼠标悬停:指鼠标指针移动到指定的范围内,触发按钮的功能。
以鼠标响应开关插件为例,物理按键在插件中的写法如下:
鼠标由于按键数量有限,具体要看子插件的指令是什么样的。通常都会叫“左键”“滚轮”“右键”。 |
奇怪的鼠标按键
有一些鼠标会多出这两个按键:
左侧这两个键默认是网页的前进和后退键,点击即可前进,后退网页(类似于滚轮)。
有些带有宏编程功能的游戏鼠标,还可以自定义这两个按键。
鼠标的奇怪按键,都不算 物理按键,因为并不是所有鼠标都有这些按键,所以设计游戏不要考虑奇怪按键的情况。 |
鼠标控制方法
1)游戏默认
功能 | 鼠标 | 触屏 |
移动 | 左键点击目的地 | 轻触目的地 |
确定 | 左键点击目标 | 轻触目标 |
取消 | 右键点击 | 双指轻触 |
加速 | 移动到目的地时自动加速 | 移动到目的地时自动加速 |
菜单 | 右键点击 | 双指轻触 |
上一页 | 左键点击选项框滚动小箭头 | 轻触选项框滚动小箭头 |
下一页 | 左键点击选项框滚动小箭头 | 轻触选项框滚动小箭头 |
页面滚动(特殊) | 滚轮滚动 | 无 |
2)地图界面点击
地图界面点击时,可以使用下面插件进行辅助。
◆Drill_OperateHud 鼠标 - 鼠标辅助操作面板
具体去看看 “14.鼠标 > 关于鼠标辅助操作面板.docx
”。
3)菜单数量面板
在用到菜单窗口中,输入数字的功能时,会自动弹出菜单数量面板:
功能 | 按钮 | 鼠标 | 触屏 |
+1数量 | 点击目标 | 轻触目标 | |
-1数量 | 点击目标 | 轻触目标 | |
+10数量 | 点击目标 | 轻触目标 | |
-10数量 | 点击目标 | 轻触目标 | |
确定 | 点击目标 | 轻触目标 |
触屏
定义
触屏: 又称为“触控屏”、“触控面板”,是一种可接收触头等输入讯号的感应式液晶显示装置,当接触了屏幕上的图形按钮时,屏幕上的触觉反馈系统可根据预先编程的程式驱动各种连结装置,可用以取代机械式的按钮面板,并借由液晶显示画面制造出生动的影音效果。
大部分手机已经具备触屏功能,所以设计游戏时,需要考虑一下支持情况。
触屏的物理按键
单指轻触: 指用一根手指接触屏幕。
双指轻触: 指用两根以上的手指接触屏幕。
注意,浏览器中对于 触屏滑动、双指外滑内滑 都提供有相应的接口,但是由于本身游戏中对于触屏的扩展性并不高。(drill插件也很少考虑手机的功能支持)因此,这里只提及,并不深入研究。
子插件介绍
【键盘 - 秘籍输入器】
插件为:
Drill_SecretCode 键盘 - 秘籍输入器
插件输入指定特殊序列的 鼠标/键盘/手柄 按键,可以触发指定公共事件。
该插件只匹配键盘/手柄的 物理按键,不支持 逻辑按键。并且键盘/手柄按键不要出现 菜单键 对应的物理按键。因为进入菜单返回地图后,按键会被重新统计。 |
【物理按键的触发】
1)插件介绍
物理按键的触发,是一堆插件,如下:
Drill_EventKeyboradSwitch 物体 - 键盘响应开关
Drill_EventMouseSwitch 物体 - 鼠标响应开关
Drill_EventMouseHoverSwitch 物体 - 鼠标悬停响应开关
Drill_EventPadSwitch 物体 - 手柄响应开关
Drill_PictureMouseHoverTrigger 图片 - 鼠标悬停触发图片
Drill_WhenKeyboradTriggered 公共事件 - 键盘触发公共事件
Drill_WhenPadTriggered 公共事件 - 手柄触发公共事件
Drill_WhenMouseTriggered 公共事件 - 鼠标触发公共事件
Drill_OperateKeyboradConditionBranch 键盘 - 键盘的分支条件
Drill_OperatePadConditionBranch 键盘 - 手柄的分支条件
Drill_MouseConditionBranch 鼠标 - 鼠标的分支条件
这些插件有 开关触发 和 公共事件触发 两种触发类型。
(如果你不了解什么是触发,可以去看看“8.物体 > 触发的本质.docx
”)
2)如何选择插件
上面插件很多,但大致可以分成下面几种类型的插件:
支持物理按键 | 作用界面 | 作用对象/条件 | 支持单次触发/持续触发 | |
插件 - 响应开关 | 键盘、手柄、鼠标 | 只地图界面 | 作用于事件 | 单次触发、持续触发 |
插件 - 图片触发 | 只鼠标 | 地图界面、战斗界面 | 作用于图片 | 单次触发 |
插件 - 公共事件 | 键盘、手柄、鼠标 | 地图界面、战斗界面 | 无条件,直接触发 | 单次触发 |
插件 - 分支条件 | 键盘、手柄、鼠标 | 地图界面、战斗界面 | 无条件,直接判定 | (只判断是否被按住) |
任何插件都有优点和缺点,没有完美的插件。因此,你需要根据 自己的需要 来选择插件,也可以全都加上,去实现具体功能。 |
3)插件 - 响应开关
响应开关插件能在物理按键按下/释放/双击时 触发独立开关。
在 机关管理层 有专门介绍。(你也可以去看看“8.物体 > 大家族-开关.docx
”)
插件支持 持续触发。
插件支持 单次触发的 按下[一帧]、释放[一帧]、双击[一帧]。
但这类插件的缺点是:只能在地图界面中执行。
4)插件 - 图片触发
图片触发插件能支持鼠标悬停在图片时,按下/释放/双击时 触发公共事件。
在 图片管理层 有专门介绍。(也可以看“16.图片 > 关于图片与鼠标控制核心.docx
”)
插件不支持 持续触发。
插件支持 单次触发的 按下[一帧]、释放[一帧]、双击[一帧]。
由于鼠标+图片的操作特别灵活,情况较多,一不小心鼠标就可能滑出图片范围,所以最好去看看“16.图片 > 关于图片与鼠标控制核心.docx ”中的介绍。 |
5)插件 - 公共事件
公共事件插件能物理按键按下/释放/双击时 执行公共事件。
在 键盘管理层 有专门介绍。
插件不支持 持续触发。
插件支持 单次触发的 按下[一帧]、释放[一帧]、双击[一帧]。
如果公共事件监听的是方向键。那么要注意玩家可能会一直按住方向按键,公共事件插件就不好判断了。 |
6)插件 - 分支条件
分支条件插件能支持通过分支条件判断 物理按键是否被按住。
在 键盘管理层 有专门介绍。
插件支持 持续触发。
插件不支持 单次触发的 按下[一帧]、释放[一帧]、双击[一帧] 的监听。
从零开始设计(DIY)
在游戏中查看DEBUG物理按键
1. 设置一个目标
虽然作者我在这个文档里面介绍了一大堆的 物理按键,
但真要理解什么是物理按键,
还要通过游戏示例才能知道。
于是作者我打算专门介绍一下如何通过插件指令查看 物理按键。
2. 结构规划/流程梳理
只用到了核心插件:
◆Drill_CoreOfInput 系统 - 输入设备核心
插件中有下面的插件指令:
3. 配置事件
在地图中放置一个事件,执行指令后就能打开DEBUG按键窗口了。
游戏中测试执行指令后,会显示下图的窗口。
按任意键盘的物理按键,就会变亮。
手柄、鼠标的 物理按键窗口 的配置方法同理。
由于这个窗口只是用于DEBUG(排错)临时用,所以刷菜单界面后,该窗口会消失。 |
在游戏中查看多个手柄连接情况
1. 设置一个目标
前面输入设备的定义中( 输入设备 ),提到了手柄可以连接 零个或多个。
这也就意味着,输入设备能支持很多种搭配连接,
比如:键盘+手柄、双手柄 的操作情况。
游戏的单机多人的确可以实现,
但在实现功能前,先要确保手柄是否能够连接上。
作者我这里只是确保了 输入设备核心 能支持多手柄的基础功能。但具体玩法和功能,需要 新的子插件 来专门提供支持。 |
2. 结构规划/流程梳理
只用到了核心插件:
◆Drill_CoreOfInput 系统 - 输入设备核心
插件中有下面的插件指令:
3. 配置事件
在地图中放置一个事件,执行指令后就能打开DEBUG按键窗口了。
打开全部窗口后,如下图。
手柄支持4个连接口,并且 手柄连接的口 经常是随机的。
(正在游戏时可以通过usb或蓝牙直接连入手柄,不需要重启游戏)
主手柄: 指能控制玩家的那个手柄。如果你连接了多个手柄,输入设备核心只会选择id最小的一个 可用手柄 作为主手柄。 |
设计鼠标点击时显示一次小星星爆炸
1. 设置一个目标
2024年2月29日,作者我想起了之前在浏览博客园的时候,鼠标点击会出现有趣的粒子效果。于是作者我开坑了。
这里介绍的是鼠标点击出现小爆炸效果。鼠标划动出现粒子,去看:“1.系统 > 大家族-粒子效果.docx ”。 |
2. 结构规划/流程梳理
小星星爆炸用到了插件:
◆Drill_GaugeFloatingBlastParticle 地图UI - 临时粒子小爆炸
◆Drill_BattleFloatingBlastParticle 战斗UI - 临时粒子小爆炸
由于小星星爆炸在战斗界面和地图界面都能运行,
所以这里使用 鼠标触发公共事件:
Drill_WhenMouseTriggered 公共事件 - 鼠标触发公共事件
因此,小爆炸效果不需要专门写一个插件,用事件自定义是能实现的。
3. 绑定公共事件
在鼠标触发公共事件中,添加绑定:
然后在公共事件中,获取鼠标位置,
然后再把位置给小爆炸播放。
在游戏中测试,可以看见鼠标点击时会出现小爆炸。
只不过这里的小爆炸太密集了,需要重新设计粒子效果。
4. 粒子设计
这里新建一个粒子小爆炸效果:
小爆炸使用 鼠标拖动 用的星星:
数量少一点(数量太多了不好看)
将小爆炸关联的样式,改成新建的效果样式。
然后在游戏中测试如下图。
5. 战斗界面与地图界面区分
最初的写法会造成 地图进入战斗、战斗回到地图时,出现粒子大量残留的问题。
因此,战斗界面执行的指令 和 地图界面执行的指令,要分开放,如下图。
这样就不会出现 指令残留 的问题了。
常见问题(FAQ)
量子妹在示例中的图书馆剧情卡住
问题名称 | 量子妹在示例中的图书馆剧情卡住 |
问题图示 | ![]() |
问题描述 | 这是作者我遇到的问题,在触发量子妹离队的 剧情 时,玩家就一直卡住不动了。(这个问题要引起重视,因为 游戏剧情设计 经常会遇到) |
出现时机 | > 使用键盘控制玩家触发此剧情,不会卡住。> 使用鼠标控制玩家触发此剧情,会卡住。 |
原理解析 | 示例中提供了公共事件[240] 鼠标触屏-小爆炸效果,这个公共事件在 每次 鼠标点击时,会并行对 变量[25,26] 进行一次赋值。![]() ![]() |
解决方案 | 检查所有 变量[25,26] 的指令是不是穿插了等待指令。修复后如下图。![]() |