THE BEGIN OF MY 22 YEARS

人能够自由支配的时间到底有多少呢。

标题估计有语法错误吧,不管了233

到现在都没有过过生日,也不知道过生日是什么感觉,总之,来个记录好了。

从去年 7 月底在 b 站上看到 cngal 茶会,然后萌生参与中文 AVG 游戏开发的想法,就目前来看,这个月第九日 Steam 重制版刚发布,自己在其中担当的是把 KAG 脚本转译成 lua 脚本(写了一个分析指令,然后转换到对应指令的小工具。)虽说代码并不复杂,不过,既然是一件事情那肯定就要有人去花费精力,花费时间去做,然后才能够完成,我向自己花费 n 个工作日(其实大部分时间还是在周末和休息日就是)来完成这件事情表达赞美(自己赞美自己是搞啥毛线。)嘛,总之,还是参与到制作当中去了,后续新作应该也会花费 n 多时间投入到当中去。

至于其它工作上的,因为目前只有第九日 Steam 重制版在 ED 的 Staff 上有 小笠原 やきん 的名字,暂时就不作透露了。(大概,也没人会在意就是。)

去年读了一作的剧本,糖很甜,很满意。最近也在读剧本,糖很甜,很满意。向剧本担当的人致敬。

刚把水仙通了,下面是没在 Steam 发的那篇评测里的内容

Narcissu Side 2nd

不存在的东西,再怎么思考,再怎么想,也不会让它变成现实,变成存在的东西,只有真正的『现实』才是自己能够了解的东西。

虽说自己想要成为那种少说话,多做事的人,但是有时候还是想把一些东西说出来做个记录,毕竟自己不做一个记录就真的没有记录了。虽然并没有会去在乎,不过还是稍微留点足迹好了。(为什么会说这种话呢,恩,大概水仙给窝的感想中有一个就是这样子吧,虽然并不是。)

Getchu.com 美少女游戏大赏 2016 简评

因为感觉有点意思,所以也来说几句评论……主要是 千恋万花 まいてつ 千桃(皇姬) 相关

由于窝只谈自己要么准备推,要么正在推,要么玩了下体验版的,不会有全部的,建议还是去原地址去看看比较好……

综合排名

  1. 千恋*万花 (ゆずソフト) 只用了 CG。 T_T 等把 Lose 的作品推的差不多的时候再说吧,不过柚子的画风窝是很喜欢的。(真好用 滑稽.jpg ) 曾经有个少年在高中的时候对着 2.8 英寸的过去称之为大屏山寨手机上晚上看着转成240p mp4 的某诺贝尔 OP 各种兴奋……,那时还以为是什么动画,怎么没见别人说过,直到上了大学重新有空回顾 MAD 看各种销量排行榜的时候才知道原来是柚子社的游戏作品 捂脸笑.jpg
  2. まいてつ (Lose) 正在推中。从 1 月份就开始玩共通线了,不过因为各种缘故,放置了 n 久,就这几天(2 月中旬)又开始恢复龟速版的慢慢玩的状态……虽然也也已经 c 到可以鉴赏了……不过,刚开始的时候是冰蓝在看官网的时候,感觉挺不错,正好 Twitter 上也有推友已经推过了,然后窝也就开始体验,打开之后前 10 分钟的感觉,卧槽……这 tm 简直和动画有的一拼啊!E-mote 的效果让 Lose 用的真是出神入化……这……原来还可以这样搞,厉害厉害,佩服 Lose(当然系统上也有特色的地方还是在 System 排名的那里重新拿出来说好了。)
  3. 千の刃濤、桃花染の皇姫 (オーガスト) 推了妹妹皇帝线。总体感觉就是:还是八月社有钱!大量使用视频素材来做演出用,OP、ED 都很豪华,当然效果感觉挺不错……音乐挺好听的。

20 . 枯れない世界と終わる花 (SWEET&TEA) 推了 2 条线……不知道为什么不出现春和レン线,窝也很绝望啊……依然画面,音乐都感觉很好,レン的部分立绘演出也挺棒的,因为看起来比较调皮,所以 hhh。剧本上不好说……因为窝个人是不懂剧本,基本上只要故事讲到位了,不会像那些考据党那样各种查背景(就是纯观众,并不是真正意义上的玩家……感觉自己好伪(ry,所以还是 Visual Novel 适合窝。)嘛,总体个人还是 8/10 分党的(BGM大多数评分区间也是这个)

很惭愧,窝基本上只玩了 4 个,大部分还是单线通……(嘛,其实一年也没玩超过 10 部……大部分休息时间还是看番去了,对了,去年看了 10X 部动画,虽然也没啥好自豪的就是……)

System 部门

  1. BALDR HEART (戯画) 这作没玩……不过玩了 キミの瞳にヒットミー 试玩版,戏画的系统当之无愧第一 浮动菜单,设置选项调节丰富程度,动画过渡效果,Scenario Jump,能全部加上去,果然 hhh
  2. まいてつ (Lose) 吉里吉里Z + Wamsoft 定制版 KAGEX + E-mote 专业的就是能出现令人佩服的东西,不服不行……戏画有的大部分 Lose 的也实装了……当然能让同人社团学习的地方挺多的,不过有些功能的实装实现起来的确是有难度啊,要不然大家怎么都不实装呢。然后虽说是 Lose 的作品,这里不得不说下 Wamsoft 这个公司,不少使用 吉里吉里2/Z 作品的公司的 Programmer 担当是该公司,其主要人员之一是 KAGEX 的开发者。嘛,ED Staff 名单里不少见的一个 brand 之一(虽然感觉 Mju:Z 也很常见就是……在 OP 里)不过说到底还是一个时间经验的问题……嘴上是这样说的实际也的确是这样,目前来看,国内用 吉里吉里2 的虽然也在用 KAGEX 但是很多功能都没用上……KAGEX 的 doc 也没人翻译,KAG 的 doc 倒是 KeyFansClub 和 澄空 已经基本翻译完毕了,嘛,窝也不好说什么,毕竟目前不好说话……说错了绝对会被怼 www

5 . 千の刃濤、桃花染の皇姫 (オーガスト) 八月的系统设置也是一堆一堆的。不过更令我印象深刻的是那个切换 Tablet 和 桌面模式,然后有次调成 Tablet 模式,默认是全屏且不能调成窗口,窝以为哪里出 BUG 了呢……Android 版本使用的是 ADV+++ 这点倒是有点奇怪,虽说也不奇怪就是……(然而窝连 Android 试玩都没试玩,手里没能跑的顺畅的 Android 设备……恩?正好可以晒一波 iOS 设备啊,iPhone 6s,iPad Air2,目前在用这两个。)

其它的部门大概没窝能说的东西,以上。

2017 年 1 月 galgame 试玩版体验

大概可能也许这个会是一个系列的样子

主要还是看到 KAGEX 的开发者在以前的写日志的时候会有这个系列,感觉有点意思,自己现在大概也会有很长一段时间来做类似的事情,所以也延续一下,来点记录什么的。

虽然说的是 1 月试玩,不过游戏的名称有很多都是前几年发售的,嘛,只是形式上说是 1 月就是,谁让这片日志写的时间是在 1 月底呢 www,当然视点有点偏 system features 这方面,剧本画面演出都是比较主观的自我认为(废话,全篇都是自我认为的)

然后因为,在 28 号之前的,没有使用 Evernote 来进行日常记录,所以就根据自己的印象来说了。

标题规则

制作/游戏名称/所用引擎(有些不知道名字的就用可执行文件的名字了……)

中国(包括港台)

第10层次的螺旋曲面/BKEngine

OP 和音乐结合的好有现代感,momo子好可爱,阿诺也好可爱,大家都可爱 w

结恋体验版/吉里吉里2

音乐不错,cv 听起来有种看港台片的感觉 233

日本

Recette/しゅがてん!-sugarfull tempering-/吉里吉里Z

软,甜,细致,日常,bgm 温馨,不过好像还没看到 Twitter 上发的那张辣眼 CG……

戯画/キミの瞳にヒットミー/NeXAS

giga 的系统似乎是最用心的了吧……不过感觉大部分日系的 bgm 都挺好的,至少每个游戏中都有 2,3 首旋律能挺特别久。

CIRCUS/D.S.I.F/未知

或许马线团是想单人单个体验版下载的想法,总之,这个 ctrl 下来不到 1 分钟的就是坑爹啊(被打)

Parasol/彼女と俺の恋愛日常/吉里吉里2

画面好棒,アリス这名字真是在游戏动画或者说英文人名中出现的频率好高……,开头就是妹妹微エロ福利,这 tm 都是套路!不过窝喜欢……另外开篇的 bgm 和对话挺有趣的。

主界面鼠标移动到 640 像素左右的时候,背景会往上移动一点,看着有点意思 233

PULLTOP/オフィスで誘うエッチな彼女/AdvHD(Willplus)

运用了大量的背景移动。感觉『实用度』挺高?…… ctrl 之后不停止 auto 模式这个应该是大家都需要加上去的功能……

Tinkle Position/お兄ちゃん、キッスの準備はまだですか? エッチの準備もまだですか?/吉里吉里Z

感觉 UI 好别扭啊……虽然是妹系,但是,但是有点不实用……或许是窝被套路了。

きゃべつそふ(cabbage-soft)/星恋*ティンクル/吉里吉里Z

不知道为什么,窝看着 梱枝りこ 的游戏内的画有种奇怪的感觉,窝一定是假的 りこ厨 ……嘛,不过总体上还是可以的……(恩,看了下感觉是有点扁?头……)

鼠标手势的确是有实装,不过从操作上来看并不是很流畅……

END

还有几个正式版在 play 中,估计感想什么的要等好几个月 hhh。不过试玩版看到画风不错的,或者是标题感兴趣的都会下载来试玩下的。(基本上都是从 電撃姫 上下载的,因为似乎不限制中国 IP,并且下载速度上不做任何特殊技巧的情况下还是满速。)

以上。

献给使用 Kirikiri+KAG 引擎想要上 Steam 的中文 AVG 创作者的一份指南 – 从零开始的编译 krkrsteam 插件到集成到 KAG 脚本里再到发布 alpha 版到 Steam 供内部测试

/

最初的最初

这篇教程中会出现以下软件、工具、关键字:

编译 krkrsteam 插件时:

krkrsteam、Visual Studio 2012、系统环境变量设置,命令提示符、premake4、ncbind、tp_stub

上传发布内容到 Steamworks 时:

Steampipe GUI Tool、Steamworks、Steam Greenlight(绿光)、AppId、Depot

以及基本大家都知道的:

krkr.eXe krkrsteam.dll(krkrsteam-d.dll debug 时用)

/

如果你有英文、日文阅读 readme/文档 的能力的话更好,因为操作上窝也是看 readme/文档 之后才学会的。

这个教程里面没有提到怎么发 Greenlight(绿光),发绿光的话依然也是跟着官方操作步骤指引,文档指南可以做到的,在绿光通过之后,就是 Greenlint 之后会得到一个 appid,这个 appid 是标识自己在测试游戏的名称,及发布时玩家在玩游戏时显示的 XXX 正在玩 XXX 的识别符。

同时也没有提怎么申请 Steamworks 开发者账号,官方操作流程指引已经很清楚了,就没必要一步一步说这些了……

编译 krkrsteam 插件

krkrsteam 的源码可以在 kirikiri2 官网 svn 服务器里下载:https://sv.kikyou.info/svn/kirikiri2/trunk/kirikiri2/src/plugins/win32/steam 建议把 plugins 文件夹下的所有插件都下载到本地。

也可以在有人 clone 的 GitHub repo 里下载:https://github.com/jeeb/kirikiri2/tree/master/kirikiri2/src/plugins/win32/steam 这个基本就只能把 repo 本体全部下载到本地了,不过可以在下载完成之后把 plugins 文件夹 copy 到其它位置之后在那个文件夹里开始作业。

源码下载到本地之后,可以看 readme.txt 里的内容配置编译环境,这里只作一个简要介绍。

Steamworks 的 SDK 可以在 https://partner.steamgames.com/home 里拉到下面的右侧看到下载地址,下载完成解压到 C 盘,然后把 sdk 文件夹重命名为 steam_sdk 文件夹

  1. 首先生成 Visual Studio 2012 的 project(项目)文件时需要 premake4 这个工具,可以在 http://industriousone.com/premake 里下载。
  2. 下载 premake4 安装到本地文件夹里,如:c:premake 然后把这个路径配置到 系统环境变量 中去,同时也把 steam_sdk 的环境变量设置下,步骤:
    1. 使用组合快捷键 win+r 打开运行窗口
      /
    2. 输入 SystemPropertiesAdvanced 按回车打开系统属性/高级窗口
    3. 点击 环境变量(N)... 按钮 -> 找到 系统变量(S) 下的变量名为 Path 的那一栏之后,双击进入编辑模式,定位到最开始,输入 C:premake; (或者拷贝 premake4 安装的文件夹路径,粘贴到这里之后加上一个 ; 分隔符号),点击 确定,再次点击 确定
      /
      此时 premake4 的系统环境变量设置已经完成。同时在这个步骤新建一个环境变量变量名为:STEAMWORKS_SDK 变量值为:C:steam_sdk (或者直接拷贝你解压 steam_sdk 文件夹的路径粘贴到这里来。)
      /
    4. 打开命令提示符(win+r 打开运行框之后输入 cmd 然后按 Enter 键)后,输入 premaker4 然后按回车键之后,应该会有 Type 'premake4 --help' for help 这一行字出现,如果没有出现请确认上述步骤和路径设置正确。如果已经出现表示 premake 的系统环境变量设置已经完成。
      /
    5. 使用 cd 命令在命令提示符窗口里切换当前工作路径到 krsteam 文件夹里,如:cd C:krkr_pluginspluginswin32steam
    6. 输入 premake4 vs2012 按回车之后应该能看到 krsteam 文件夹多了一个 vs2012 文件夹,里面有 Visual Studio 2012 可以打开的 project solution 文件
  3. 安装 Visual Studio 2012。(应该会耗时挺久的…………)
  4. 使用 Visual Studio 2012 打开在 krkrsteam 文件夹里的 vs2012 文件夹下的 project solution 文件。(名字应该是:krkrsteam.sln
  5. 编译之后你会发现有一些错误,把相关代码注释掉之后再次编译,应该就正常的编译成功了。如果出现大巴大巴的错误,请检查:
    1. 是不是不是用的 VS2012?(VS2015 会出现各种莫名其妙的错误,为了节省时间请用 VS2012 来编译开发插件……显然这里是一个问题,不知道维护者会不会改进下,并且目前 tp_stub 文件的生成也不能使用 perl,jin1016 在窝发的这个 issue 里 https://github.com/krkrz/krkrz/issues/264 说了,乃去用 https://github.com/krkrz/krkrz/tree/last_hodgepodge_repository 这个 branch 里的文件好了。嗯,就这样。)
    2. STEAMWORKS_SDK 的环境变量设置了没?(这里的环境变量名可以在 premake4.lua 文件中看到有定义)
    3. krkrsteam 文件夹是否是和下载的 plugins 文件夹里一同放着的?(因为 krkrsteam 有用上一级目录里的 ncbind 插件和 tp_stub.h tp_stub.cpp 文件所以才会需要直接把所有的插件都给下载下来。)
  6. 编译完成之后会在 krkrsteam 文件夹里生成一个 bin/krkrsteam-d.dll 和一些其它的文件,那些暂时不用管,把 krkrsteam-d.dll 拷贝到 krkr.eXe 所在的文件夹里去,自己用的最初的 krkrsteam 插件就算 ok 了。

关于 demo、release 时的 krkrsteam 插件:

可以在 VS 里使用打开 Project 的 Peoperties,使用 Configuration Manager 把 Active solution configuration 从 Debug 切换到 Release,然后 build 就会生成 krkrsteam.dll 不是带 -d 的了。

关于启动时显示未运行 Steam 客户端,不能打开的问题:

其实 demo 或者正式版 release 的时候是不会带 steam_appid.txt 这个文件的,其中的 appid 是要自己修改 krkrsteam 源码在 SteamAPI_Init() 这行代码之前调用 SteamAPI_RestartAppIfNecessary( YOUR_APPID ) 这行代码的,详细可以参考 Steam 官方的 sample 代码。在测试的时候大概是这个样子:

// 把 YOUR_APPID 替换为自己游戏的 AppId
if ( SteamAPI_RestartAppIfNecessary( YOUR_APPID ) )
{
	// if Steam is not running or the game wasn't started through Steam, SteamAPI_RestartAppIfNecessary starts the
	// local Steam client and also launches this game again.

	// Once you get a public Steam AppID assigned for this game, you need to replace YOUR_APPID with it and
	// removed steam_appid.txt from the game depot.
    // 下面这一行代码在 release 的时候注释掉,以免报错……在 debug 的时候可以保持这样子
	TVPThrowExceptionMessage(LSteamAPI_RestartAppIfNecessary failed);
}

集成到 KAG 脚本中

data/system/Initialize.tjs 的 Plugins.link 那几行代码里加入 Plugins.link(krkrsteam-d.dll); 这时候在初始化 KAG 的时候就会尝试在 krkr.eXe 所在的文件夹下寻找 krkrsteam-d.dll steam_api.dll steam_appid.txt 这三个文件,不出意外的话,在进入游戏之后会在左上角显示提示使用 Shift+Tab 显示 Steam 面板什么的,这个时候尝试使用 F12 截图应该也会有通知提示,初步 Steam 集成的工作就算到这里成功了。

/

因为这张图很重要,所以要放两边!

关于成就解锁:

成就定义:基本上跟着文档走,只用把 Step 1 定义搞好了之后就可以进行下一步了 https://partner.steamgames.com/documentation/bootstrap_achieve

写 KAG 脚本时触发成就,依然使用说明见 :https://github.com/jeeb/kirikiri2/blob/master/kirikiri2/src/plugins/win32/steam/manual.tjs

这里基本上没啥好说的,看文档跟着走测试就是。

Build Depot 上传到 Steam 供内部测试

嗯,还是跟着官方文档走 https://partner.steamgames.com/documentation/steampipe

不想使用命令行和自己写配置文件 build 的话,可以使用官方文档里面有提到的 Steampipe GUI Tool http://steamcommunity.com/groups/steamworks/discussions/0/412449508292646864/

/

配置 Steam 云存档

在 https://partner.steamgames.com/apps/cloud/YOUR_APPID 里面跟着官方文档 https://partner.steamgames.com/documentation/cloud 里的 Steam Auto-Cloud for legacy games 里的步骤走,基本上不需要自己写什么代码就能把云存档给搞定。(当然这里说的也是基本的,会使用代码自定义的话能实现更自由的操控感。)

/

最后

整体上找到 krkrsteam 源码,编译成自己的游戏所需要的,这个部分花费的时间是挺多的,而 Steamworks 的使用上,人家的文档写的真的真的真的很详细,跟着走就是。

希望自己所做的事情能够为中文 AVG 创作者们带来一些帮助,以上。

改善 AVG 制作工具之脚本录入篇-为 Atom 添加 KAGEX/KAG/TJS 脚本自动补全功能

先放效果图

Imgur

吐槽

在写脚本的过程中,会出现 n 多重复的指令,一般情况下,大家都把这个过程机械式的重复打字或者复制粘贴来解决这个需求,不过在编程的时候大多数情况会有 auto complete(自动补全)的文本编辑器或者 IDE 存在,使用自动补全功能能够大大的提高写代码的效率,同时也能让自己在写代码的过程更专注于去想这个功能式是怎么实现的而不是心里不耐烦的敲打键盘,打的指令还是并没有什么卯月却又不得不写出来的说冗余也不是冗余,但能让看的其他人更容易理解的代码,比如日系一大波解包之后看演出代码都是原生 tag 指令的一堆指令,明明可以提取成带参数的 macro(宏)然后几句搞定,却非要写一大堆呢。不过由于并不知道人家在制作过程中使用的工具是否有 auto complete 也不知道写脚本的人在写的时候的心情到底是怎么样的。

发现需求

上面吐槽了一大堆,其实就是:窝想要一个带有 auto complete(自动补全)功能的文本编辑器能让在录入脚本时愉快的玩耍。

尝试解决

在发现 Atom 写 snippets 之后就可以实现一个可以用的 auto complete(自动补全)功能之后,窝安心了。(因为不用自己造轮子省去 n 多麻烦,n 多时间,同时因为有现成的 Biscrat 写的 language-kagex language-tjs 这两个语法高亮插件,让读代码的时候更舒服,再加上 Atom 的 UI 和 语法 主题有大量可供选择,简直不要太开心啊。)

解决方案

  1. 装完 Atom 之后选择 File -> Snippets 会打开默认的 Snippets 文件。
  2. 这个 gist 文件里的代码拷贝粘贴到里面,保存。
  3. 打开一个 .ks 文件在里面输入 prefix 里面定义的关键字,按 Tab 之后就会自动补全成定义好的指令。(如:输入 b 之后应该会出现有 bgm 这个浮动提示框,然后按 Tab 键之后就会自动补全成 @bgm storage=CURSOR 再按一下 Tab 键跳到 CURSOR 那里输入文件名,然后再按一下 Tab 键就会调到下一行开始处。这样的操作不要太流畅唉~ 会有一种窝只需要不停的按 Tab 之后光标会调到指定位置,然后就可以写参数了,不用窝写指令也不用按方向键?嗯,你把自己所在的制作组封装的宏指令定义好之后,是可以达到类似的效果的。)
  4. 效果见题图。

其它想法

  • 这个其实就是一个 自动补全 的功能,可以在任何其它需要 自动补全 功能的任意语言,写作,etc. 中使用
  • 为什么在 AVG 制作工具中,自动补全这个功能没人去做到编辑器中呢?谁知道呢。或者是不需要?不过窝还是认为:有的话会节省点时间。(时间是有限的,有限的东西是宝贵的。)

最后,希望能给 creator 们一点点想法,对创作流程中解决操作繁琐的部分有点启示,最好能在创作过程中起到一点点帮助就好了。

友情提示:有些链接需要自备梯子。以上。

ks2lua 一个将 KiriKiri 脚本翻译成 Lua 脚本的工具及一些和 Galgame ~~脚本制作~~有关的想法

如果你知道 KiriKiri(吉里吉里)这个 AVG、Galgame、视觉小说游戏制作工具的话,那对文件名扩展是 ks 的脚本也不会陌生,ks2lua 是一个逐行分析 ks 脚本文件内容,然后根据语法要求输出 lua 脚本的工具,旨在解决脚本转换问题。

这个工具的原理很简单,就是分析文本文件中的每一行句子,然后根据 KiriKiri 定义好的函数名称进行匹配,提取出需要转换的信息,生成目标需要的行,直到文件全部分析完毕后,将内容写入到目标文件中。

虽说原理很简单,不过自己在写的过程中还是感觉到有些问题的,比如:全都是 if 判断后提取出需要信息 format 后 append 到 mutable string 里,能不能更简单的处理呢?嗯……我还没想到更好的处理方式,所以暂时就这样子啦 w

当然从写这个工具中,自己得到了些什么,那肯定是解决问题的方式啦。只要是具有相似度的重复类型的工作流程,完全可以写一个工具让程序帮自己去做。这个做「重复的工作」本身就是电脑擅长的,所以我们就只负责好写好「解析」「翻译」这一部分的方法就好了。

目前输出的语法是 灵潭社 第九日制作组 社长开发的 RetimeEngine (暂定名称)所定义的。至于输出成 lua 脚本的原因当然是 第九日 要上架 Steam 需要重灌脚本……(将 krkr2 引擎换成了新的自然脚本需要更新。)

不过类比下同类的,如果有一个引擎是全平台支持的,那制作组想获取更多玩家的话,移植是一个不错的选择,而移植过程中程序支持的脚本格式和原引擎的格式不一样的话,这时候就需要一个中间翻译程序来解决脚本转换这个问题,在搞定脚本问题并调试通过后基本上移植这个过程就差不多了。(毕竟如果素材不重制的话,嗯……窝也不是很懂 233)

Galgame 的制作上,程序这部分基本上剧本,细节设定完成后,有一个能把剧本翻译成程序可以读取的脚本的工具的话,基本上就不关程序的事情了,当然修复 bug 这些还是必不可少的。(同时,如果游戏中出现分支选项很多,路线不同的话,从剧本到脚本这个过程中,翻译工具做需要的要求也会更多。)

如果不怎么深入想的话,似乎感觉程序没有那么难?这个,我个人感觉是在有一定的编程经验,对现有工具经过一段时间熟悉后,写一个「从剧本到脚本的工具」,或者「从一个引擎的脚本」到「另一个引擎的脚本」的工具这些是需要精力投入的。而「有一定的编程经验」这句话,对不同的人来说所需要填坑的努力程度不同,窝也不打脸的估量下什么的。

然后「引擎」这个东西,既然制作一部 Galgame 的程序这部分大同小异,那必定有人写「通用引擎」让后来者用,也会有人自己开发引擎供社内用,自己开发的最大好处肯定是想怎么写就怎么写 w,当然出的坑也要自己填……

要说技术上现成能玩的未来能玩的,AR VR Live2D E-mote 这些不管哪个都有实际在使用/开发的,从非 SDK 开发者的角度,也就是 Galgame 程序开发者,周边软件开发者的角度来看,这些技术的集成,特别是国内,迟早要上,不是么。(会日语能看懂日文文档的技术人员,这不,搞这行开坑,填坑不可避免。)

因为不甘只作为一个玩家,其实窝到现在也并没有玩过多少,都是嘴上说要玩要玩,然后有时间都去补番去了,直到 NEW GAME 放映后激起自己也参与游戏制作之魂,于是w 就开始寻找参与的机会,没过几天看到 第九日制作组 在新招募人员 里有 游戏脚本 这个,就去发了一个私信,然后……然后等待了一天没回应,有点……方,开始搜制作组成员的 id,找到了 nerv110pixiv 里有联系方式(这个还是自行寻找吧233),request 发过去之后,后面的就,恩,自行想象,无任何交♂易。于是就从零开始了解美少女游戏脚本制作翻译,其实也不能说从零开始,毕竟自己写的那几个工具时积攒的程序开发经验值还是可观的。

还想再说点其它的东西,不过想了下还是等一等。(潜心研究,日渐消瘦

最后附上一些工具和站点供参考:

  1. EncodingMaster 批量转换文档编码格式到 UTF-8(拿来解决 GBK,UTF-16 编码格式的原始 ks 脚本)
  2. CnGal 中文 Galgame 资料站(大部分国内的 Galgame 都有介绍)
  3. 中国国内目前所有的 GALGAME 制作方有哪些?

DMHY 2.0 更新随想

这个工具从发布到现在也快一年时间了,是时候总结一下这将近一年的时间自己对技术的认知以及更新一下自己的一些态度 w。

最初有写这个工具的想法的时候是为了能在浏览条目的时候直接下载到种子,花园在首页只提供 magnet 链接,而在国内我这边 magnet 链接解析超级慢,这个不能忍,但是直接使用 torrent 文件的话,热门资源基本上 30s 内就开始有速度,于是便琢磨着怎么来简化自己获取源的步骤。第一个版本主要还是集中在浏览花园的主页及搜索列表里点击下载按钮后下载种子到 ~/Downloads 文件夹里,实现这个功能时涉及到的技术有 下载文件 这个使用 AFNetworking 照着示例代码搞定,解析番组详细内容页,提取出 torrent 下载链接,这里需要找一个支持 XPath or CSS 选择器 提取 HTML 网页内容,依然用 Ono 照着示例代码先熟悉后,找到下载链接的 XPath 值直接能够获取到一个带后缀为 torrenturl,然后把 mac OS 怎么显示处理后的数据到 UI 上搞定,差不多最初的个人需求就满足了。(当然由于使用的是花园 RSS 订阅和搜索两个地址,XML 解析什么的不可避免。)

在学校学那些知识点的时候,总是不知道有什么用,然后自己有个实际的需要之后,把理论上的那些东西变成实际应用起来,让自己做某些事情的时候能够更轻松点,这也是窝在高考后选择志愿的时候想的,不过直到去年才开始行动起来也是惭愧。

又经过一个月左右,把按天保存关键字(数据持久化使用的 Core Data 框架)解决之后,就开始放置开发了,原因嘛,整天忙于实习任务 w

在今年 2 月份时候,正好寒假在家里天天冷的要死(家里没空调的说),在想怎么把自动下载新章节的功能做出来,然后经过几天的打草稿,思考,又经过 2,3 天的填坑把功能实现出来之后,可以安心的连键盘,鼠标都不用点的第二天起床后直接看新章节啦。(懒是改进生产力的第一源泉 w),这个功能实现起来的技术细节基本上就是各种逻辑上的判断,比如:只获取当天的关键字,只把新章节的数据入库的同时调用下载的代码,不插入重复的数据。然后现在理清思路之后再看,原来就这么点内容却花了将近一周的时间思考,实现。不过像写代码或者说任何一种创作自己并不会的东西的那个过程,一点没有产出,我认为是正常的,因为是真的不会……而能通过模仿示例来实现自己需要的效果,这个是一个很幸福的过程,当然实际上也并没有那么多人能够把示例都给搞懂,并在实际使用中很好的使用。

然后在 3 月初的时候开始着手多站点搜索功能,这个时候找那几个 bt 站的 rss 订阅和搜索链接,有些是靠推导和猜的(因为没有多少人使用,所以放在不起眼的位置?),要支持多站点的话,那对数据的泛化支持,多种情况的判断是少不了了,差不多就是这个时候,decompress code(分解代码)和 function 这个概念才慢慢的使用起来,别问我为什么一直在写代码还是没怎么理解这些东西,当你脑子成一团糟自己也没有意识到需要改变的时候,是不会发现问题的。能发现这些问题并意识到,我是从 MIT 的 CS 公开课中学到的。(在看不下去书的时候,唯有带音频解说的材料才是让我不怠于学习/复习知识的手段,当然也在改变中,你看现在不是各种官方文档来回穿越的。)

不行,有点不知道该说什么了,果然长时间写代码,不说人话,交流能力是会下降的么,整天刷推也并没有改善自己不擅言辞的短点啊。

跳跃到 7 月 16 号左右(其实大部分内容可以从 commit message 中看嘛,虽然并不完全准确),花园服务器故障,用了几个月的自动下载功能瞬间瘫痪,于是开始着手支持多站点自动下载功能,大概 3 天后从想法变成了现实,程序运行正常,发布 2.0 版本,正式支持多站点自动下载。至于这里的技术细节,Core Data 的 data migration,Model Version,多 NSManagedObjectContext 造成的旧版本关键字删除时报错的 bug 修复,自己写带 block 的 function,对 block 作为 parameter 的使用,这些都是自己在以前没有写过的,从技术上来说自己相教于一年前无疑是进步的,不过进步了多少那是另一回事 233

然后从代码量上观察之后,删掉第三方库,自己大量变换更改的大概在 3k 行左右,算是一个个人可以随意更改的级别。不过至于这里的水分,不是有人常说代码的行数和实现起来的难度并没有直接关系嘛。也是,一个工具能够使用起来顺利和一个库能够让使用的软件都顺利运行,这个难度不用比较。不过能够把简单的事情做好,并且正常使用起来比只是随口说几句,「很简单的」,「n 个时间单位就能搞完」的这类空话要管用的多。

关于盗版党的一些想法

「存在既合理」这句话太万能,但是只说结论不给理由说明的都是强盗逻辑,当然强盗是没有逻辑的(也不对……)「一切的冲突在于阶级不同」这个也能说明一部分问题,不过背景过于庞大 ,嘛,不扯那些名言了。

至于盗版(动画)的大量存在:

  1. 钱。也就是经济基础,当然这里我不会从那些奸商的角度去看,毕竟窝不是商人,以动画来讲,如果要买 bd 的话,一卷的价格,拿 rezero 第一卷来说,当前是 5,545/7,560(打折后/原价),折合人民币 348/475(2016.07.27),也就是预订的话基本每卷 500 元左右,至于每个月买一部动画的一卷 bd 的成本对于哪个收入水平的人来说没什么生活影响,自己可以想象下。(动画的制作成本高,而商品的定价也在那里放着,短期内甚至长期内某人的收入水平不产生变化,又想享受,那就……下,不过如果没有盗版源的出现的话,那盗版党就无源可看,这个可能性出现的概率有多大,等到某一天全面进入监控社会后,恩。)
  2. 体验。获取简单(有大量人在背后作一条龙服务),内容完整(相对于暗牧白光)
    至于在中国,只要暗牧白光在某部动画中各种出现,下载不可避免……(连创作者表达东西的欲望都审查掉(censored),作为一个合格的观众,没看到难免留有遗憾。这里可以延伸下,作为一个看客,所看的内容都是创作者制作出来的,而看客能看到的内容在创作者将作品制作完成的时候是已经确定的,同时,创作者没有制作出来的内容是需要看客自行创作想象的,这个时候二次创作这中类型的创作能表达/传递出原作中没有表现出的内容,但是弄混了的话是不好的,至少对于原作来说。「迷音:我想要表达什么来着」)

从内容提供方的角度说,做一个体验(现在被概括的只说这两个字,却不说自己需要什么的,另人很无奈啊)很好的服务真的很难吗?我不知道……只是,由于每个企业所接触的关系方是多种多样的必须对各方提出的要求作出磨合,妥协之后所提供的服务才是内容提供方所提供的服务,在这过程中任何一个地方出现某个要求都会导致「一个体验很好的服务」这个和真的「服务」产生莫大的不同。(当然,这些东西大部分都是想象所产生的产物,并没有具有参考价值,我又不是业内人士,也不是分析师。不过能确定的是:我至少是一个无名的软件开发者,至于这个称号的分量有多重,自行想象 w)

跑题是不专业写作的一个重要萌点(才怪),不过想要表达一些什么并且说出来,这也是我写 blog 的目的之一,就这样跑题了也挺好的,又不是写高考作文。(不过看统计字数,有点可怕,不过,继续写吧,下面还要提下对技术的态度什么的呢~)

在接触了不同的编程语言,开发环境,文档风格之后,是能找到共同点,如果自己能够不去对比使用过的其它同类的话,那成为一个特定语言的使用者也挺不错的,不过能见到另一种说法是:技术是为需求服务的。使用什么技术是以你想要做的东西为基础选择的,可能这是以做产品的眼光去看的,不过作为一个开发者的话,不限制自己,逃出舒适区,让自己每天过的有意思这也是一种追求。(或许这种追求也只是一种借口,因为出于某种阴谋 #欢迎加入NHK ,自己不得不成为这样的自己。不过,还好,能发现有意思的东西,能体验到不同世界线的自己也挺好,并且指不定哪一天,各个世界线交错起来产生特殊的事件。「迷音:有点中二,逃。」)

如果想要做那件事情并且现有的技术有实现,自己却不懂那个技术的话,就去学习并使用现有的去实现那件事情。这种想法也许是因为自己软弱,没有能力造轮子改变现状,但让自己轻松并开心的实现想要的结果,是一种解决问题的方法。在经过一定时期对现有技术的不满后,才会去想要改善现有的技术,是一个成长的过程。(感觉有点奇怪,不过我是这样想的……)

嘛,自言自语就先放到这里。

对 Konachan Nyaa DMHY 这几个工具的一些说明

用起来顺不顺手,知道 creator 的设想操作方法的话,就好办了。于是,窝来说说自己为什么会让这几个工具成现在这样子。

Konachan(Mac)这个原因很简单,要收 uncensored 的图,于是想办法动手了,听说 AFNetworking 很好用,看着 repo 的 README 跟着做,把单个图片下载到本地之后,接下来的就是细节上的处理,核心代码不超过 50 行,所以有心的话(很快就出来的感觉,不过估计因为用途太小众,也没人写,毕竟这个年代先把图片下到本地,然后看的估计很少。)

Nyaa(Mac)依然 Picture 分类下和偶然间知道的 sukebei 里站里的 ゲイムCG 关键字的,因为在浏览器里打开新页面查看,或者查看之后后退感觉不方便,于是就搞了这个,不过因为各种自身原因,坑掉了,虽然还可以用,然而就是在写这个应用时折腾的解析 HTML 在接下来的工具中有用到。

Konachan-iOS 原本我是先下载到本地,然后用 ComicGlass 通过 SMB 看下载的图的,不过一天晚上在宿舍床上感觉还是写个 iOS 版本的会更方便点,至于理念:

  1. 基于 tag 关键字
  2. 点进 tag 显示预览小图(其实这个有没有都无所谓,窝是每张图都会看的)
  3. 点进小图显示大图,点击大图界面的屏幕上半部分显示上一张,下半部分显示下一张(方便单手操作)
  4. 预加载图片来减少看图所需要等待的时间。(这个最近想起来折腾一番之后基本搞定。)

嗯,非常基础而又必需的功能需求点 ,至于更进一步的收藏 balabala 的,有人需要,不过我还不想让自己成为一个收藏癖的用户

DMHY (Mac)还是因为花园主页里只有 magnet 不像 nyaa 直接有个 download 按钮,还要进详情页才能下到种子,至于我为什么不用 magnet,窝这边 uTorrent 从添加 magnet 链接成功到文件开始下载的间隔难以忍受的长,所以还是直接下种子完事。于是最初的版本就是一个简化获取种子下载链接的工具,附带着整理每天要看的新番关键字到左侧栏里,直到最近把自动下载订阅关键字的新种子功能实现后才感觉到,好吧,让我追番的操作过程简化了好多好多好多。

原本是因为昨晚试用了下看图的同类型的工具,感觉它们的用法和自己想象中的还是有点不同,于是想说下 Konachan-iOS 为什么更方便来着 (:3 」∠ )

DMHY 1.1 版本更新及生存报告

日常和 DMHY 使用教程

v1.1 更新内容:

  1. 自动下载订阅的新种子
  2. 暗色主题,Yosemite style UI
  3. 下载完成后有 Notification

目前自己的追番 workflow,在 DMHY 这个 Mac app 中设置好关键字筛选出每部新番的合适关键字,添加到左侧订阅列表,然后让这个 app 监测更新下载种子,之后让 uTorrent 自动导入种子完成下载,看完后,去 Bangumi 上点格子作记录。当然在看的时候会在 Twitter 上加 tag 吐槽什么的。
附上这季度自己在追的番组

Imgur

不过想想,自己搞的这些东西到底有意义没有,只能说:对现在的我来说是有意义的,因为我需要这个东西。无论是编程开发技能点还是动画我都喜欢,其实最主要的还是喜欢看动画,编程技能只是自己不得不去习得的而已吧,毕竟如果只会看动画,不会画插画,不会画漫画,不参与动画制作,也不会做 Galgame 的宅就真成废宅了吧(误伤到的窝在这里说声:抱歉。)不过也不会有人去在乎的,毕竟不管别人怎么说,怎么看都和自己真正要做的并没有直接关系,对于 Creater 来说不被第三者理解也是再正常不过的事情。
当然我真正想说的是:目前的自己对于未来的自己来说依然是很 naive 的,要让自己变得更加厉害才不会被作为弃子,能力值这东西当然是越高越好,在这个真物现实游戏里。
进入 3 月份后在村里附近散步的时间在想要不要把 デレステ 停完一段时间,因为每天花在上面的时间的确有点多并且自己的眼睛也不是很好受,感觉和自己在高中看轻小说长时间过度用眼时的反应类似,眼睛里充满水气,视力也感觉下降不少,为了健康着想也要克制自己不要过度用眼,所以还是 uninstall 了,等过段时间出活动报酬是卯月,米莉亚,智绘里或者其她自己喜欢的角色卡的时候再重新 install。
另外从时间分配上来讲,花在一个地方的多必然会在另一个地方少,那是让自己过更轻松愉快还是做一些能力值 up 的事情亟需自己好好分配的说,毕竟目前自己正处于不稳定的状态。

另外,我一直认为如果某些用户群体量小(<10000 人)的话,商业公司(政府机构)也不会和你过不去,然而如果作死做大了之后,那,见好就收,不自找麻烦才是对自己来说更轻松的选择。当然最终决定还是要自己考虑好作出来。

最后附上:

DMHY 使用手册

理念及日常使用方法

使用 关键字 过滤番组,然后 每隔一定时间 从网站获取 当天订阅的番组 ,有 新话数(ep.) 程序自动下载,然后让 uTorrent 把获取到的种子(磁力链)添加到下载任务中,下载完成,开始食用。

基本上每季度初设定好之后,这季度每天就可以等更新自动下载完成食用。

日常使用的话在右侧搜索。

自动下载的详细设置

  1. release 里下载最新版解压到 Applications 文件夹里。
  2. 在设置里调整自己的偏好
    • 是下载种子还是使用 uTorrent 打开磁力链。
    • 下载种子的存储路径。
    • 自动检查是否有当天订阅的新番的新种子间隔时间。
      Imgur
      目前多站点支持还在开发中
  3. 添加订阅,等番组更新
    1. 在左侧 添加 关键字已订阅的关键字里
      1. 关键字设定以 番组搜索关键字 + 字幕组 + 字幕类型 为好。如:传颂 幻樱 BIG5(中间有空格)
      2. 选择该番组更新时在一周中的第几天。如:周日
        Imgur
      3. 点击添加之后,可以在左侧的 已保存的关键字里 展开 周日 看到已成功添加。
        Imgur
    2. 这个步骤是自动完成的 每隔你在 设定 里设置的 间隔时间 周期,它(这个工具)会检查是否有当天订阅的番组的新种子,有的话下载到指定文件夹(设置成磁力链的话会用系统指定的应用打开磁力链。)
  4. 调整 uTorrent 设置,让新番自动下载(选择下面任意一个搭配)
    • 默认下载种子 设置 时让 uTorrent 自动载入指定文件夹的 Torrent
      Imgur
      并保证打开 自动开始下载
      Imgur
    • 默认打开磁力链 设置 时在 uTorrent 的设置中保证打开 自动开始下载 取消 显示任务详情窗口
      Imgur

有人邀请我参与动画,游戏制作的话多棒(望天努力)

辅助追番工具 DMHY-iOS 和生存报告

偶然发现 Transloader 这个好工具,于是我把以前写的 Mac 版本的 DMHY 移植到 iOS 上于是就产生了这个工具和 Transloader(iOS & Mac 客户端) uTorrent(Mac 客户端)搭配起来,随时随地让家里的 Mac 下载 动漫花园 中的指定新番。

GitHub 源码地址和使用说明

由于自己 commit log 什么的都比较随意,所以还是在这里把写这个 app 的理念和主要功能说下吧。

  1. 更快速的得到 DL 链接。
    1. 首先靠筛选关键字,比如用 字幕组 + 动画关键字 + 字幕类型 如:幻樱 传颂之物 BIG5 然后加载出来的结果是这样子:/
    2. 点击条目自动拷贝 DL 链接到剪贴板,如果在外面(比如车上),把 DL 链接粘贴到 Transloader 里,Transloader Mac 版会自动下载。(如果不会自动下载或者出错的话,一般就是 iCloud 的锅,所以才会出现下面这个功能。)
    3. 长按条目使用 AirDrop 把 DL 链接分享给附近的 Mac,然后 Mac 会自动使用浏览器打开 DL 链接,完成下载种子这个动作。(由于 AirDrop 是通过 WiFi 分享,只要 Mac 不休眠,基本上成功率 100% 吧。)
  2. 让 uTorrent 自动下载指定的新番。
    1. 设定好浏览器默认下载文件目录到 Downloads 文件夹下,然后让 uTorrent 自动载入 Downloads 文件夹里的种子就会自动下载了。

会出现这个工具的原因之一是:冬天太冷了,醒了之后赖床,我想用早上起来刷推的同时让 Mac 下载好新番好起床吃饭后看。
要说用用电脑也可以完成这一系列动作,但是每次都从浏览器书签载入设定好关键字的书签,然后进入下载详情页面,点击下载,这几个动作合计所花费的能量太高,还是能让自己方便一点就方便点吧。

至于自己为什么会这么久都不去转向在线观看,不确定因素太多。(画面删减,是不是第一时间可以看到,广告等。)至于正版支持,有钱直接买 CD、BD、手办、画集,或者 iTunes 里买音乐、对游戏课金不都是支持的方式嘛。当然前提是有钱且自己想要花钱在上面。

还是作些回忆吧,毕竟 2015 年也过去了,并且以自己目前的状况 2016 年新的一年也很重要。
去年买软件大致花了 1400 RMB,Steam 25 RMB,软件的话,由于是第一年开始正版化再所难免,毕竟欠债还债正常,当然也有很多软件是自己买完之后用了 1、2 次就没用过了……🌚。
Steam 那 25 块是圣诞节 nekopara 降价直接入了,clear 之后好空虚,没 H 场景,摔。去年是分期了一个 iPod Touch 5,过几个月笔电和手机也要分,不过哪个型号还是要再考虑考虑,没钱。(你看京东那 7k 的白条,支付宝那 3.2k 的花呗,还有那 0 额度的浦发信用卡。)嘛,穷人有穷人的过法。

几行回忆差不多了。还是继续说点动画相关的,如果连看都不看的话,那作出的评论的确没有什么可参考的必要。(当然看了之后用反面傲娇的口气说出来的话,也不真……)

写之前昨晚还想搞个长文,然后发觉好多废话都在 Twitter 上发过了,果然我还是适合在日常的时候把想说的话整理到笔记里,然后在某个时刻发出来好点 w