虚幻引擎VR游戏开发03| 键位映射

news2024/12/23 19:00:32

 Enhanced input mapping 按键映射

在虚幻引擎(Unreal Engine)中,Enhanced Input Mapping 是一个用于管理和处理输入(例如键盘、鼠标、手柄等)的系统。它提供了一种更灵活、更强大的方式来定义和响应用户输入,相比传统的输入系统有多项改进。以下是它的主要功能和用途:

  • 更灵活的输入映射Enhanced Input Mapping 支持基本的按键绑定,也能处理组合输入(例如按住一个键再按另一个键)、修改器(如按住Shift键来修改其他按键的功能)、以及上下文感知输入(例如根据当前游戏状态动态改变输入的效果)。
  • 输入行为的定义:开发者可以定义复杂的输入行为并精确管理,而不仅仅是简单的按键映射。例如,你可以创建一个输入行为来处理“跑步”动作,该动作可以绑定到多种不同的输入组合(如按住Shift键并前进),并且可以轻松切换或修改这些绑定,而无需改变底层代码。
  • 多设备支持:提供了对多种输入设备的支持,比如键盘、鼠标、游戏手柄,VR控制器。开发者可以统一管理不同设备的输入映射,从而简化跨平台开发的工作流程。
  • 方便的热插拔支持:更好地支持输入设备的热插拔(即插即用)。例如,玩家可以在游戏过程中更换控制设备(从键盘切换到手柄),游戏可以动态调整输入映射而不会中断游戏体验。

使用场景举例:

  • 复杂动作绑定:你可以为角色的动作(如跳跃、攻击、特殊能力)创建复杂的输入规则,并根据游戏中的情况动态调整这些规则。
  • 跨平台支持:在开发跨平台游戏时,使用 Enhanced Input Mapping 可以让你统一管理不同平台的输入方案,而不需要为每个平台编写独立的输入处理代码。
  • VR/AR应用:在VR或AR项目中,Enhanced Input Mapping 能处理复杂的手势输入和不同控制器的输入模式。支持VR控制器的复杂手势输入。

IMC&&IA

在Unreal Engine中,IMC(Input Mapping Context)和IA(Input Action)是 Enhanced Input System 中两个核心概念,它们用于处理和组织用户输入。理解这两者的关系有助于高效地管理和响应输入事件。

1. Input Action (IA)

  • IA 是一个输入动作,它代表了一种用户交互行为(例如跳跃、攻击、打开菜单等)。
  • 每个 IA 资源定义了一种用户输入行为,可以是按键、鼠标点击、手柄按钮、触控操作等。
  • IA 本身并不与特定的按键或输入设备直接绑定,它只是描述了用户的一个可能的动作(例如“跳跃”或“射击”),并且可以包含复杂的输入处理逻辑,例如双击、长按、组合键等。

2. Input Mapping Context (IMC)

  • IMC 是是一个容器,译为输入映射上下文,它是一组 IA与具体输入设备的按键或按钮的绑定集合。
  • IMC 允许你为不同的 IA 设置具体的按键映射。例如,你可以为“跳跃”这个 IA 绑定到键盘的空格键、手柄的A键,或者 VR控制器的某个按钮。
  • IMC 还可以管理输入的优先级和上下文。例如,你可以有多个 IMC,根据游戏状态(例如战斗模式、菜单模式)切换不同的输入映射,在进入战斗模式时加载战斗输入映射,在菜单模式时加载菜单输入映射。

示例:

  1. IA_Jump:表示玩家跳跃的行为。
  2. IMC_PlayerControls:包含对 IA_Jump 的映射,例如将键盘的 Space 键和手柄的 A 键都绑定到 IA_Jump 上。

IMC 管理了哪些按键/按钮会触发 IA,而 IA 定义了当这些按键/按钮被按下时,游戏应该执行的逻辑。

 案例

在虚幻引擎蓝图中制作按下Pico Touch (R) Trigger就能打开一个UI交互对话

 1:创建 UI Widget

 2:设置输入映射

  • 创建一个 Input Mapping Context 资源(如果使用 Enhanced Input System),并添加一个新的输入动作,命名为 IA_OpenDialogue
  • IA_OpenDialogue中绑定 Pico Touch (R) Trigger 的按键事件。

 3:在蓝图中响应输入并显示 UI

  1. 打开角色蓝图(默认VR模板中,VR_pawn的蓝图里可以改键位映射)

  2. 示例蓝图逻辑

    InputAction OpenDialogue (Pressed)
        ↓
    Create Widget (Class: WBP_DialogueUI)
        ↓
    Add to Viewport
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2103501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MMO移动同步(1)

多个客户端同时连入游戏 这篇会从以下五个部分讲解: 同步的基本概念 完善角色进入及离开处理 CharacterManager(C/S) EntityManager(C/S) 打包运行Win客户端 同步基本概念 同步:角色信息,位置,状态同步;客户端和…

神仙公司名单(北京篇)

欢迎来到小落科技每日分享频道 大家好,秋招已经火热进行中了,不知道大家准备得怎么样了?特别是咱们25届的小伙伴们,有没有找到心仪的目标? 想必大家最近和我一样,忙着在各种招聘平台上搜罗信息&#xff0c…

如何在 Cursor 中使用驭码CodeRider?

驭码CodeRider 是极狐GitLab 公司自研发布的 AIGC 产品,可以用来进行 AI 编程和 DevOps 流程处理。本文分享如何在 Cursor 中使用驭码CodeRider。 Cursor 是近期比较火爆的一款 AI 代码编辑器,通过将 AI 能力引入软件研发来提升软件研发效率。而驭码Cod…

水凝胶透镜是什么?能用来干啥?

大家好,今天我们来了解一项关于蛋白质驱动的水凝胶透镜的研究——《Toward Tunable Protein‐Driven Hydrogel Lens》发表于《Advanced Science》。我们的眼睛晶状体主要由蛋白质构成,在视觉中起重要作用。但人造光学系统要实现类似功能却不容易。近年来…

【设计文档】数据库设计说明书(Word实际项目案例参考)

一、 总述 (一) 编写目的 二、 外部设计 (一) 环境说明 (二) 指导 三、 物理实现 (一) 物理结构 (二) 安全设计 四、 表设计结构 (一&am…

【软件文档】软件系统试运行方案、试运行报告(Word项目实际原件)

一、 试运行目的 (一) 系统功能、性能与稳定性考核 (二) 系统在各种环境和工况条件下的工作稳定性和可靠性 (三) 检验系统实际应用效果和应用功能的完善 (四) 健全系统运行管理体制&…

【数字人】Facevid2vid:用于视频会议的一次性自由视图说话头合成

论文:https://arxiv.org/pdf/2011.15126 github:GitHub - zhanglonghao1992/One-Shot_Free-View_Neural_Talking_Head_Synthesis: Pytorch implementation of paper "One-Shot Free-View Neural Talking-Head Synthesis for Video Conferencing" 一种新颖…

ip地址的管理方法有哪些?是什么

IP地址的管理方法有哪些?随着互联网的快速发展,‌IP地址作为网络设备的唯一标识,‌其管理显得尤为重要。‌有效的IP地址管理不仅可以确保网络的稳定运行,‌还能提高网络资源的利用率。‌本文将深入探讨IP地址的管理方法&#xff0…

网银U盾:财务眼中钉,会计肉中刺!

随着网银U盾的广泛应用,虽然使得财务安全有了大幅提升,但企业财务管理效率却越来越低了。 近期,我们发现,高达85%的企业在采购我们的USB Server时,都是出于网银U盾反复插拔的繁琐、效率低下、管理困难等原因。 想象一…

sqli-labs靶场通关攻略(五十一到六十关)

sqli-labs-master靶场第五十一关 步骤一,尝试输入?sort1 我们发现这关可以报错注入 步骤二,爆库名 ?sort1 and updatexml(1,concat(0x7e,database(),0x7e),1)-- 步骤三,爆表名 ?sort1 and updatexml(1,concat(0x7e,(select group_conc…

CentOS 7 docker 部署遇到内网通,外网不通 问题

CentOS 7 docker 部署遇到内网通,外网不通 问题 [rootlocalhost ~]# systemctl status network ● network.service - LSB: Bring up/down networkingLoaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)Active: failed (Result: exit-code) …

多角度解读WMS:探寻仓库管理系统的核心功能

多角度解读 WMS 仓库管理系统 1. 概述 WMS 在数字化工厂中具有举足轻重的地位,它不仅提高了仓储管理的效率与准确性,还能优化整个供应链的管理,支持灵活生产模式,并提供决策支持的关键数据。通过现代前后端技术的架构设计&#xf…

几十块的麦克风能用吗?一文看懂哪个牌子的麦克风好

无论是拍摄短视频、直播还是采访,说一款好的音频设备是非常重要的,它决定了音频质量的高低,如今市面上的麦克风种类也是各式各样的都有,价格上也是参差不齐,有些小伙伴问“几十块的麦克风能用吗”? 我觉得最…

Docker部署项目时的服务端口设置——给容器添加新端口映射

Docker给容器添加新端口映射 1 Docker安装Ubuntu22.042 创建新容器3 给容器添加端口映射3.1 查看运行的容器3.2 查看容器挂载目录3.3 停止容器3.4 停止docker服务3.5 进入容器挂载目录3.6 修改config.v2.json文件3.7 修改hostconfig.json文件3.8 启动docker3.9 启动容器 4 端口…

C语言中volatile与const关键字的深入解析

在C语言编程中,volatile和const是两个非常重要的关键字,它们各自有着独特的用途。本文将深入探讨这两个关键字的工作原理、底层实现机制以及在实际开发中的应用。 volatile关键字 1. 原理与作用 volatile关键字用于告诉编译器,所修饰的变量…

若楠带你初识OpenCV(2)--图片修改、运算,边界填充以及阈值调整

文章目录 OpenCV图片修改1. 图片缩放2. 图片打码3. 图片组合 图像运算1. 直接相加2. add()方法相加3. 权重相加 边界填充阈值调整总结 OpenCV OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习库,它主要用于实…

Nginx负载均衡数据流分析

1、各机器ip信息 客户端IP:192.168.3.239 Nginx代理服务器IP:192.168.3.241 服务端IP:192.168.3.238 2、架构图(略) 3、 下图是在服务端上面的抓包分析。 下图是在客户端上面的抓包分析: 下图是在代理服务…

32 配置多路由的静态路由

配置多路由的静态路由 一、多路由器的静态路由配置 ​ 配置网络拓扑配置接口IP地址并通过静态路由的配置实现全网的互通 R0: # 进入特权 Router>enable# 进入全局 Router#configure terminal # 进入接口 Router(config)#interface fastEthernet 0/0# 配置IP R…

如何使用 Mistral 和 Llama2 构建 AI 聊天机器人

开始使用 Mistral 让我们从 Mistral 7B Instruct 的 GGUF 量化版本开始,并使用 AutoClasses ‘AutoModelForCausalLM’ 之一来加载模型。AutoClasses 可以帮助我们自动检索给定模型路径的模型。AudoModelForCausalLM 是具有因果语言建模的模型类之一,这…

SpringBoot如何对接口防刷限流处理

一、API防刷限流: API接口限流,旨在预防用户过度频繁地访问特定接口,以及抵御潜在的恶意攻击行为,这些行为可能导致后端服务器承受过高的负载,进而引发内存资源紧张。为了有效缓解服务器面临的压力,确保服…