斯普拉遁3自动涂鸦指南

斯普拉遁3自动涂鸦指南

斯普拉遁真的很鱿型!

尽管2代没有中文,但犹豫了很久之后还是没忍住入了卡带,果然对老任的想法没有任何抵抗力,涂地+FPS的设计真的是太好玩了!所以当老任公布Splatoon3的时候,毫无悬念入了数字版,准时开启了喷喷之路。

2代的时候就在广场上看到了很多有意思的涂鸦,既然作为一个手残画手,看了看已经吃灰的树莓派,只能靠科技的力量来润色自己的涂鸦了。

原理

斯普拉遁3的涂鸦可以看作一张320*120的单色位图图片,所以完全可以通过像素画工具先绘制出想要的图形,然后通过树莓派模拟的手柄逐行扫描进行绘制。

模拟手柄

从Github上看到了这个项目:Poohl/joycontrol,可以将树莓派通过蓝牙连接到Switch中模拟Pro手柄,并且作者提供了可编程式按键控制,所以利用「宏编程」用代码控制像素就可以做到自动涂鸦了!

位图

如果想自己尝试绘画,这里有两个像素画的制作工具:

the Pixel Art

Pixel Studio APP

再通过PhotoShop导出PNG8的「黑-白」图片,这时候会自动转换成单色的PNG图片,最后通过PNG2BMP工具转成位图.bmp文件就可以使用了。

本次的主题是新世纪福音战士风格涂鸦:Wave1,开大,不违法!😤

准备工具

Nintendo Switch 一台

树莓派3B及以上(需要Python3环境)

绘画

要确保Switch处于掌机模式(JoyCon需要插在主机上),连接充电线。进入手柄页面,选择「更改握法/顺序」。

配对手柄

进入joycontrol目录,先手动配对手柄获取到Switch的蓝牙MAC地址:

# 连接Switch

sudo python3 run_controller_cli.py PRO_CONTROLLER

此时应该显示一个黑色的Pro手柄ICON:

如果蓝牙不能正常的连接,可能需要修改树莓派蓝牙的配置文件:

sudo vim /lib/systemd/system/bluetooth.service

# 修改ExecStart

ExecStart=/usr/libexec/bluetooth/bluetoothd -C -P sap,input,avrcp

# 重启bluetooth.service

sudo systemctl daemon-reload

sudo systemctl restart bluetooth.service

或者在这个issue中寻找帮助:Cursed Bluetooth Hardware #4

连接正常后,通过bluetoothctl命令获取到主机的MAC地址:

bluetoothctl paired-devices | grep -F "Nintendo Switch" | grep -oE "([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}"

导入位图

将位图图片重命名为test.bmp放在joycontrol目录,通过Image模块获取:

img = Image.open('./test.bmp')

print("Load image success!")

WIDTH, HEIGHT = img.size

print ("Image Width:" + str(WIDTH) + ", Height:" + str(HEIGHT))

最后就可以遍历图片的像素来控制是否使用铅笔或者橡皮了:

for h in range(HEIGHT):

print ('Draw row:' + str(h))

for w in range(WIDTH):

p = w if h % 2 == 0 else WIDTH - w - 1

color = img.getpixel((p, h))

direct = 'right' if h % 2 == 0 else 'left'

# black

if color == 0:

await button_push(controller_state, 'a')

await button_push(controller_state, direct)

# white

else:

await button_push(controller_state, 'b')

await button_push(controller_state, direct)

await button_push(controller_state, 'down')

完整的代码在Gist:

liopoos/splatoon-tool.py

开始涂鸦

准备好手柄和图片后就可以开始涂鸦了:

进入游戏的绘画界面(在邮筒📮的地方)

退出到主页面开始执行脚本,需要替换reconnect_bt的地址

配对好手柄后,返回绘画界面中,将光标移动到左上角

按L键选择最细的画笔,按下X键放大画布

在脚本处输入yes确认

等待绘画

大概需要2个多小时,中间一定要确保电量充足和网络正常,中间有次断网喷喷强制掉线导致失败了😠,最终的成品:

点击发布就可以大功告成了!👍🏻

最后

贴一下最近的游戏截图:

相关

“()()()密” 的成语
365allsports

“()()()密” 的成语

📅 08-30 👁️ 4685
揭秘合肥美的空调厂:品质与创新的摇篮
365allsports

揭秘合肥美的空调厂:品质与创新的摇篮

📅 08-20 👁️ 886
接亲仪式必备的8个流程注意事项!少看一个都不行!
365体育投注提款

接亲仪式必备的8个流程注意事项!少看一个都不行!

📅 08-29 👁️ 8480