#86 做一款 Delta 模拟器皮肤

适配了灵动岛以及多项优化体验

Design Scenes 第 86 期封面图。

TL;DR: 我做了一款 Delta 模拟器的 NDS 皮肤,适配了灵动岛以及多项优化体验。目前只支持全面屏 iPhone 型号。可以在此下载:

或者 Google Drive / 腾讯微云(密码cw69st)。详情见下文。


自 App Store 放开模拟器应用政策后,Delta 已被下载百万次。我也下载玩了几款游戏,体验很流畅。自带皮肤已经比较精美,但美中不足的是没有为灵动岛做适配。我最近想玩 NDS 上的超执刀系列,默认 NDS 皮肤会遮住上屏幕一部分。总觉得有点不舒服,看了下官方文档,决定自己做一款 NDS 皮肤。

皮肤展示

Delta 模拟器 NDS 竖屏皮肤

竖屏皮肤我让屏幕下移了几个像素,稍微放大了十字键(D-Pad)和 ABXY 按键尺寸,由于皮肤可以忽略 iOS 的安全区,所以我将菜单键挪到了上方,减少误触。右上方加如了一个彩色 Delta logo,使用了 SNES 的 ABXY 颜色。

Delta 模拟器 NDS 横屏皮肤

横屏皮肤主要以「人体工程」为主,怎么舒服怎么来。由于 NDS 是双屏输出,按键也不能太小,所以导致屏幕空间不购大。上方款式作为突出主屏信息用,并加入了快捷存/读档按键。下方则突出了触屏信息。某些游戏(比如超执刀)主要玩法以触屏为主时,就可以切换这个皮肤来玩。

皮肤的设计源文件已发布到 Figma 社区

使用皮肤

皮肤文件格式是 .deltaskin,传到 iPhone 后直接使用 Delta 打开。

打开设置,找到了 controller skins 项,选择相应平台,点击要更换的横屏或竖屏皮肤,在选择刚才安装的皮肤即可。

皮肤制作

皮肤制作很简单,出完设计图,然后再映射键位位置信息即可。详情可见文档说明

……

懒得看的话,我在下文简单说明下。

以官方皮肤文件为例,将后缀改为 .zip 直接解压,得到如下文件列表:

info.json
iphone_edgetoedge_landscape.pdf
iphone_edgetoedge_portrait.pdf
iphone_landscape.pdf
iphone_portrait.pdf

这里去掉了 iPad 一些视图文件,只留下了 iPhone 端的。info.json 里面是键位映射信息,下面 带有 edgetoedge 的是全面屏的横竖屏皮肤贴图文件,不带此后缀的是非全面屏 iPhone 的贴图文件。定制皮肤要做的就是,按照相应尺寸设计文件导出,然后在 info.json 映射键位。

皮肤设计

皮肤的设计整体上还是很自由的,但要遵从 iPhone 设备尺寸和原主机屏幕的尺寸比例。以此皮肤为例,全面屏的比例我按照 375*812 设计,如果要导出 png 格式的话,就导出为 @3x 大小。NDS 屏幕为两块 4:3 的屏幕,合一起输出比例为 2:3,也就是 256×384,皮肤的屏幕尺寸也尽量保持整数缩放。

除此之外还需要注意的是,按键与按键之间、按键与触屏之间不要重合。除非是想故意做成一键按下多按键的效果。

键位映射

位置数据只需要两个,左上角坐标和键位区域的长宽尺寸,Figma 中可以轻松查看。如下图。

十字键和 ABXY 键位映射的区域

十字键是一整个区域,ABXY 是单独的按键区域。前者 json 中格式为:

{
  "inputs": {
    "up": "up",
    "down": "down",
    "left": "left",
    "right": "right"
  },
  "frame": {
    "x": 15,
    "y": 500,
    "width": 128,
    "height": 128
  },
  "extendedEdges": {
    "top": 15,
    "bottom": 15,
    "left": 15,
    "right": 15
  }
}

Delta 这样处理是为了与摇杆实现方式通用,也可以用于定位八向(斜上斜下)的键位映射(所以你可以给任何主机装个摇杆)。extendedEdges 顾名思义是拓展边缘(图中绿色部分),在空间足够的情况下,用于额外拓展键位区域,特别是用于激烈的按键交互时,稍微按歪一点也能触发。不同键位的拓展键位应从实际出发,比如 ABXY 的拓展可能更适合各方向的延展。

除此之外文档还列举了几个额外的功能按键:

quickSave: 即时存档
quickLoad: 即时读档(最近储存的)
fastForward:长按加速
toggleFastForward: 切换加速
---
Multiple Inputs: 映射多键

屏幕的映射也是同理。Delta 还支持苹果的 CoreImage Filters 库,你可以随意调用里面的参数赋予屏幕效果。有一个 macOS 应用叫 Filter Magic 里面举了每个方法的例子,有时间可以研究研究。

在 json 头部可以开启 debug 模式查看实机中键位映射是否准确。

打包皮肤

填写映射参数和皮肤名字后,将所有文件打包成 .zip(不包括文件夹),然后后缀重命名为 .deltaskin 即可安装使用。

订阅 Design Scenes

发布最新文章时,会以邮件通知你
zelda@link.com
订阅