IOS复杂震动(Core Haptics)AHAP文件编辑指南

2024-01-03 14:20

本文主要是介绍IOS复杂震动(Core Haptics)AHAP文件编辑指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

目前部分游戏会在播放一些特定的音乐音效时,令设备产生贴合音效的复杂震动,给玩家一个更好的游戏体验。这种复杂震动就是通过苹果的CoreHaptics库实现的。

下面是关于CoreHaptics的官方文档

Core Haptics | Apple Developer DocumentationCompose and play haptic patterns to customize your iOS app’s haptic feedback.https://developer.apple.com/documentation/corehaptics?language=objc

AHAP就是苹果方法提供的震动波形文件。然而通过代码或者文本直接去编辑震动波形是十分困难的,所以本文会借助一个图形化的震动编辑网站https://ahap.fancypixel.it/,介绍AHAP文件的制作和编辑。同时该网站还提供了测试波形的App,编辑后可以直接在移动设备上体验震动效果

AHAP文件制作

该网站编辑页有两个坐标轴,第一个代表Intensity属性,第二个代表Sharpness属性。每个坐标轴的纵轴代表对应属性的大小,横轴代表对应事件的时间

左上角有三个模式选择按钮,分别是添加,编辑和删除模式。

右下角有一个Duration的滚动条,可以拉长和缩短时间轴

添加事件

在添加模式下,鼠标长按左键后拖动,可以在坐标轴对应位置生成一个HapticContinuous事件。方块的高度即为对应属性的大小,宽度代表持续时间(EventDuration)。

在编辑页下显示为一个橙色的方块。

坐标轴下单击鼠标左键,则会生成一个HapticTransient事件,在编辑页下显示为一个蓝色的方块。在添加事件时,Intensity和Sharpness的值都是相同大小的。需要单独改变其中一个属性值需要在编辑模式下进行

编辑事件

点击左上角的编辑按钮,可以看到之前添加的HapticContinuous事件的方块出现了四个圆点,左键点击并拖拽第一个坐标轴上的圆点,上下移动可以单独改变Intensity的属性大小,左右移动则是修改时间的起止时间(此时Sharpness的属性大小不会产生改变)。同理左键点击并拖拽第二个坐标轴上的圆点则是单独改变Sharpness的属性大小

编辑HapticTransient则是直接左键点击并拖拽蓝色的小方块

删除事件

点击左上角的删除按钮,进入删除模式。之后鼠标左键点击事件对应的方块,就可以直接删除该事件

生成AHAP文件

点击右侧的Code按钮,可以查看制作好图形对应的AHAP Json数据

点击弹出页的Copy按钮后将数据复制到一个文本文件并保存即可

Tips:有时候导出的Json文件会缺少Version字段,可能导致后续解析出现问题,需要手动添加Version字段,并且需要设置Version字段为1。否则可能出现震动效果无法播放的情况

加载已有的AHAP文件

点击右侧的Load from JSON按钮

在弹出页内填入已有AHAP文件的JSON数据后点击Load按钮

完成后可以到对应AHAP文件的波形图

MobyApp

该网站还提供了一个MobyApp的demo,用于体验在该编辑网站上生成的Ahap文件,点击主页的MobyApp按钮可以跳转到该github的工程地址。需要使用该App的小伙伴可以找前端开发直接进行安装

该App需要配合网页https://ahap.fancypixel.it/使用。

在该网页编辑完波形图后,点击右下角的save and share按钮。

会弹出一个二维码

之后打开手机上的Moby App 应用,点击下图中的扫码图标,扫上面的生成的二维码

成功地址栏会填充文件地址。此时底部的文字提示为NO HAPTIC LOADED,代表文件还未加载完成。需要点击上面的Load AHAP 按钮

加载完成后,文字提示会变为HAPTIC READY。代表文件已经加载完成,直接点击 PLAY HAPTIC按钮即可播放震动效果

这篇关于IOS复杂震动(Core Haptics)AHAP文件编辑指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/565982

相关文章

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶