分类 技术 下的文章

AniCam

A camera app able to put anime images on real-world.

Github:https://github.com/wyywnab/AniCam/

如何使用?

  1. 首先在主页添加库,可选择新建库或从文件夹导入。第二种模式会自动扫描选择文件夹下的所有子文件夹,以其名称为库名,并自动添加其下的所有图片。
  2. 图片可选择单个添加或添加文件夹下所有图片。
  3. “库”与“图像”栏目最右侧可在选择后按住库文件夹项或图片项进行拖拽排序。
  4. 长按库文件夹项或图片项可弹出菜单进行编辑。

拍摄

  1. Tab栏目左侧为刚才添加的库与图像,右侧为屏幕上的图像。可在“库”中单击图像来添加,长按以添加多个图像。
  2. 右侧的“屏幕”栏目中,左侧可以进行预设编辑。添加的图片会进入“默认”预设,可长按进行复制当前预设并编辑名称。可点击图片进行选中,这时操作会定向到这张图片。长按图像可进行排序,顺序决定屏幕上图片的叠加顺序。上滑图像可删除。
  3. 上方的屏幕部分操作,双指缩放图片,单指移动图片。单击会触发对焦操作。

桌面

  1. 选择图像部分与“拍摄”中相同,并共享一个“屏幕”库。
  2. 单击底部中间圆形按钮可隐藏所有UI,长按屏幕,则自动恢复显示。
  3. 单击底部左侧按钮选中后可移动时钟。时钟可在“设置”中关闭或导入html包进行自定义。

游乐场模式

  • 在“设置”中启用后,将不显示相机,可供叠加合成图片使用。

Made with love for Naruse Shiroha

解包的是红烧天堂日服PC版。以下所有分享的软件如果被归档,可以查看fork的仓库或搜索类似软件,找一找star高的可能更好用。分享的不一定是最简单的方法。所有用到的软件:https://wwcz.lanzout.com/b0kobuthc 密码:4qs1

操作AssetBundle文件

AssetBundle 是一个存档文件,包含特定于平台的非代码资源(如模型、纹理、预制件、音频剪辑甚至整个场景),这些资源可以在运行时由 Unity 加载。

这类文件一般以一串随机英文与数字.bundle组成。查看文件头一般为UnityFS加版本号。

解包

这一类工具仅提供解包功能,不支持打包。如果只想解包这个就够了。

  1. AssetStudio:原版Asset Studio。在23年已经归档,最终版还残留了一些bug,如在解包某些游戏资源时会报错、闪退;内存管理不够完善,内存不足时会疯狂吃内存导致死机。
    链接:https://github.com/Perfare/AssetStudio
  2. AnimeStudio:修改版,不断更新,支持众多国产游戏的解包。优化过,不会出现大面积报错;能够自动检测内存是否足够解包选择的文件并提示。使用体验很好。
    链接:https://github.com/Escartem/AnimeStudio

解包与打包

这一类工具既支持解包,又支持打包。

  1. UABE:原版UABE。22年以后不再更新,本人测试的时候能够解包的文件很少,不好用。
    链接:https://github.com/SeriousCache/UABE
  2. UABEA(UABEAvalonia):严格来说不算是uabe的改版,但是叫这个名字。更新至24年。这个工具能够自动检测文件是否被压缩并提供解压功能,但是需要手动将解压的文件再次解包。
    链接:https://github.com/nesrak1/UABEA
  3. UABEANext:与UABEA同作者,个人觉得最好用的一个。界面容易操作,能够方便地解包并打包。
    链接:https://github.com/nesrak1/UABEANext

过校验

Unity在加载资源文件时会先进行CRC32检查,如果不通过则出错。因此,如果要修改游戏的资源文件,就要对文件进行处理。

  1. AddressablesTools:这个工具通过修改catalog文件来禁用crc检测。但我使用时报错。
    链接:https://github.com/nesrak1/AddressablesTools
  2. Unity_CRC32_Bypass:这个工具“通过在ab文件末端添加额外数据来绕过Unity的CRC32检查”,避免了修改catalog文件。
    作者博客:https://blog.axix.top/index.php/2024/04/25/107/
    项目github:https://github.com/AXiX-official/Unity_CRC32_Bypass

操作Criware媒体文件

CRIWARE 是一套由日本 CRI Middleware 公司开发的,用于游戏和多媒体内容开发的中间件。CRIWARE 包含了业界知名的 CRI ADX 和 CRI Sofdec 工具,分别用于处理游戏中的音频和视频。ADX 提供了高质量、低延迟的音频压缩和回放技术;Sofdec 则专注于视频编码和播放,支持各种格式和高效的解码。

Criware类的文件有若干类型,可以先用hex编辑软件(推荐:HxD免费轻量,010 Editor功能强大)查看文件头来确认。

CRID类

此类文件的头部为CRID,可存储视频和音频。步骤:

  1. 由于Criware会对文件进行加密,首先需要获取该游戏对应的密钥。Unity游戏可以使用ZygiskUnityCriwareKeylogger获得。首先要有一台root过安装了Magisk使用Zygisk的设备(模拟器应该也可以),在Magisk里安装该插件。按照readme流程操作,使用adb连接设备,输入adb logcat -s ZygiskUnityCriwareKeylogger并启动游戏,会输出类似log信息:

    08-15 14:26:58.256 15470 15556 I ZygiskUnityCriwareKeylogger: Extracted Key: ***
    08-15 14:26:58.256 15470 15556 I ZygiskUnityCriwareKeylogger: Extracted Key (hex): 0x***

    保存Extracted Key (hex)值。

  2. 接下来使用CRID(.usm)Demux Tool软件进行解包。将总共16位的Extracted Key (hex)值按8位分为两部分,前半部分记为b,后半部分记为a。提取命令为:

    #仅提取音频生成adx文件(需进一步解码)
    crid_mod -b <b值> -a <a值> -x <文件地址>
    #仅提取视频生成m2v文件
    crid_mod -b <b值> -a <a值> -v <文件地址>
    #仅提取音频生成wav文件
    crid_mod -b <b值> -a <a值> -c <文件地址>

    即可在当前文件夹下解包出.adx文件。

  3. 如果生成了adx文件,可使用adx2wavmod3vgmstream将.adx转为wav,直接将adx文件拖入该软件即可获得wav文件。

AFS2类

此类文件只存储音频。可以使用vgmstream进行解包,首先将文件加上.awb后缀,直接拖进vgmstream-cli.exe即可。

其他可能有用的软件

  • WannaCRI:提供Criware媒体文件解包与打包功能的python库
  • VGMToolbox:可提取众多游戏媒体文件的工具箱

过程

今天在配置新服务器时发现一个很奇怪的错误。安装php时,直接运行apt install php-fpm再在nginx配置文件中加入php8.3-fpm.sock的链接,竟然一直告诉我“File not found.”。装了多久服务器,愣是第一次遇到这种错误。重装php-fpm,换源再装什么的都试了个遍都没用。用systemctl status php8.3-fpm.service查看运行状态也一点问题没有。

找了一圈,都给我说是php没装好。没办法,只能自己摸索了。

/run/php目录下面,突然注意到一点:用户。

26c14484c689d69af070b090b0f965ee.png

php8.3-fpm.sock的拥有者www-data一般被用来管理网站内容。但在这里就不同了。我前两天安装nginx改根目录时也遇到同样奇怪的问题。明明位置是对的,目录权限也设成了777,但就是报错404 Not Found。在我跟上一台服务器的nginx配置对比时,我发现只要在nginx.conf内把user一项改掉就好了,随便改成默认账户还是root都行。这里我想可能遇到了同样的问题。于是我找到配置用户的位置(在/etc/php/8.3/fpm/pool.d/www.conf),同样把用户改为默认用户,再次重启服务,成功打印出phpinfo。

结论/解决方案

到php的配置文件www.conf(我的是在/etc/php/8.3/fpm/pool.d/www.conf)将所有的www-data用户改为你的默认账户(除了root账户)即可。

我这里把usergrouplisten.ownerlisten.group都改为了ubuntu

d7703db11d9bb947045f5457dbb24769.png

我在配置nginx时也有类似问题,将/etc/nginx/nginx.conf中第一行的user选项修改掉即可。

2e7304092af8b1e347512003711a0a3d.png


暂时不明白原因。总之记录一下,以免以后又碰到了再懵圈。

安装acme.sh

中国大陆用户(无法访问github)

  1. git clone https://gitee.com/neilpang/acme.sh.git
  2. cd acme.sh
  3. acme.sh --install -m (你的邮箱)

通用方法

curl https://get.acme.sh | sh -s email=(你的邮箱)
63ddb536899777e85aee9328a015d669.png

出现以上字样表明安装成功

签发证书

官网上有http方式和dns方式。若使用dns方式且自动验证,可以签发通配符证书,如*.wyywn.site

HTTP方式DNS方式(自动验证)
简单方便,可配置一些无法设置dns记录的域名较复杂,需要到域名解析商获取API Key和ID
只能配置有限域名可签发通配符证书,后新增域名不用再配置

此处使用dns方式自动验证,http方式和dns方式手动验证较简单,可前往官方Wiki查看。

本人域名解析商为腾讯的DNSPod。前往控制台API密钥页面,切换到DNSPod Token栏目(不能使用腾讯云 API 密钥,否则会失败,见使用 dns_dp 自动申请证书时,出现 invalid domain。我一开始也被坑了),点击创建密钥并起名。生成后保存好IDToken
4d67e40d5621210095a49254e8828d5c.png

执行

export DP_Id="(你的ID)"
export DP_Key="(你的Token)"

签发通配符证书

acme.sh --issue --dns dns_dp -d (你的主域名) -d *.(你的主域名)

acme.sh --issue --dns dns_dp -d wyywn.site -d *.wyywn.site

输入后会运行较长时间

7acf18f1e0cbc36e33a3ecfaafe50139.png
4734422c644cdd0dec6ed9929996d8d9.png

如图,生成了4个文件,证书获取成功。

复制证书

对于nginx,运行

sh acme.sh --install-cert -d (你的主域名) \
--key-file       (你的nginx根目录)/key.pem  \
--fullchain-file (你的nginx根目录)/cert.pem \
--reloadcmd     "service nginx reload"

务必配置reloadcmd,可自动续签
3269197646c447c97669264dadef70c0.png

配置nginx

此时还不能直接访问。要到nignx根目录下,你的配置文件处设置监听配置,将http自动转发到https上。两个server字段分别配置80端口和443端口。配置如下

server {
    listen 80;
    server_name wyywn.site www.wyywn.site;
    return 301 https://$host$request_uri; #将http转发到https
}

server {
    listen 443 ssl;
    server_name wyywn.site www.wyywn.site;

    ssl_certificate cert.pem;
    ssl_certificate_key key.pem;

    …………
}

设置完成后运行service nginx restart,访问http网页发现已经自动跳到https,配置成功。

本文为配置Ubuntu 20.04版本方法,其他版本可能有差异。

配置代理

配置代理而非换源的好处:可以获取到官方服务器最新的版本,镜像服务器可能存在版本更新不及时,证书错误等一系列问题。到时候出问题头都大了。
  • 命令行

编辑文件

sudo nano /etc/profile.d/proxy.sh

写入内容

# set proxy config via profie.d - should apply for all users
export http_proxy="http://127.0.0.1:7890/"
export https_proxy="http://127.0.0.1:7890/"
#export ftp_proxy="http://127.0.0.1:7890/"
export no_proxy="127.0.0.1,localhost"
# For curl
export HTTP_PROXY="http://127.0.0.1:7890/"
export HTTPS_PROXY="http://127.0.0.1:7890/"
#export FTP_PROXY="http://127.0.0.1:7890/"
export NO_PROXY="127.0.0.1,localhost"

设置权限并运行

sudo chmod +x  /etc/profile.d/proxy.sh
source /etc/profile.d/proxy.sh

测试打印

env | grep -i proxy

4096340000.jpg

  • apt包管理器

编辑文件

sudo nano /etc/apt/apt.conf.d/80proxy

写入内容

Acquire::http::proxy "http://127.0.0.1:7890/";
Acquire::https::proxy "http://127.0.0.1:7890/";
#Acquire::ftp::proxy "ftp://127.0.0.1:7890/";

#将127.0.0.1替换为代理服务器的正确IP地址,如果需要身份验证,请设置如下:
#Acquire::http::proxy "http://<username>:<password>@<proxy>:<port>/";
#Acquire::https::proxy "https://<username>:<password>@<proxy>:<port>/";
#Acquire::ftp::proxy "ftp://<username>:<password>@<proxy>:<port>/";
  • conda环境

执行

conda config --set proxy_servers.http http://127.0.0.1:7890
conda config --set proxy_servers.https http://127.0.0.1:7890

使用LVM管理磁盘

优点:可以动态管理磁盘大小,将多块不同硬盘合成为一个连续分区,避免了考虑逻辑卷在硬盘上的位置。
缺点:管理比较麻烦,不能在Windows上访问(包括使用DiskGenius等管理软件)。
  • 调整磁盘大小

使用df -h命令查看信息
3257334219.jpg
可见lvm管理的分区/dev/mapper/ubuntu--vg-ubuntu--lv
使用vgs命令查看信息

root@wyyinspiron:/home/wyy# vgs
    /dev/sdb: open failed: No medium found
    /dev/sdb: open failed: No medium found
    VG        #PV #LV #SN Attr   VSize    VFree 
    ubuntu-vg   1   1   0 wz--n- <109.79g 54.89g

使用vgdisplay命令查看具体信息

root@wyyinspiron:/home/wyy# vgdisplay
    /dev/sdb: open failed: No medium found
    /dev/sdb: open failed: No medium found
    --- Volume group ---
    VG Name               ubuntu-vg
    System ID             
    Format                lvm2
    Metadata Areas        1
    Metadata Sequence No  2
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                1
    Open LV               1
    Max PV                0
    Cur PV                1
    Act PV                1
    VG Size               <109.79 GiB
    PE Size               4.00 MiB
    Total PE              28105
    Alloc PE / Size       14052 / 54.89 GiB
    Free  PE / Size       14053 / 54.89 GiB
    VG UUID               fhqIse-SP9k-CTgd-oPgw-c1Q5-1JUe-dGp5es

可见当前盘上还有54.89g空间可以分配。
使用lvextend命令对/dev/mapper/ubuntu--vg-ubuntu--lv进行操作,如增加40G。

lvextend -L +40G /dev/mapper/ubuntu--vg-ubuntu--lv

root@wyyinspiron:/home/wyy# lvextend -L +40G /dev/mapper/ubuntu--vg-ubuntu--lv
    /dev/sdb: open failed: No medium found
    /dev/sdb: open failed: No medium found
    Size of logical volume ubuntu-vg/ubuntu-lv changed from 54.89 GiB (14052 extents) to 94.89 GiB (24292 extents).
    Logical volume ubuntu-vg/ubuntu-lv successfully resized.

使用resize2fs命令实行修改

resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

root@wyyinspiron:/home/wyy# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
    resize2fs 1.45.5 (07-Jan-2020)
    Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
    old_desc_blocks = 7, new_desc_blocks = 12
    The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 24875008 (4k) blocks long.

再次运行df -h,可见该文件系统容量已扩大。

参考链接:Ubuntu LVM分区扩容:轻松实现磁盘空间扩展,告别空间不足烦恼