First Coding Page

代码测试页面

分享到 评论

First ACGN Page

ACGN 测试页面

分享到 评论

解决“deploy 后显示成功但 GitHub 不更新”的问题

嘛,这么晚了,有时间再进行进一步博客优化吧。

以下摘录自我在 Hexo 的 Issues 上发表的反馈。


我也遇到了类似的问题。部分输出如下:

On branch master
Changes not staged for commit:
deleted: ../images/body-bg.jpg
deleted: ../images/download-button.png
deleted: ../images/github-button.png
deleted: ../images/header-bg.jpg
deleted: ../images/highlight-bg.jpg
deleted: ../images/sidebar-bg.jpg
deleted: ../index.html
deleted: ../javascripts/main.js
deleted: ../params.json
deleted: ../stylesheets/print.css
deleted: ../stylesheets/pygment_trac.css
deleted: ../stylesheets/stylesheet.css

Untracked files:
../.gitignore
../.initvars.mic.bat
../_config.yml
../package.json
../scaffolds/
../source/
../themes/

no changes added to commit

Username for 'https://github.com': GridScience
Password for 'https://GridScience@github.com':
Branch master set up to track remote branch master from https://github.com/GridScience/gridscience.github.io.git.
Everything up-to-date
[info] Deploy done: github

这个 not staged for commitno changes 感觉很奇怪。

git 的话,我用的是 Git For Windows,不是 msysgit 的网络安装版。


02:12

重试了几次,GitHub for Windows 都崩了,无法同步。用 git 手工 stagecommit,才更新。


04:30

还是无法让其自动工作起来。当前解决方案是将 *.github.io repo 映射到 .deploy 目录,然后在 .deploy 中 git commit


04:36

应该是解决了。解法是,*.github.io repo 确实应该映射到 .deploy 目录。

原因是看到zipperary的教程5中的截图,只有 .deploy 是被标记为 git 管理的。猜想应该如此。

然后验证。设置好后回到上一级(_config.yml 所在的地方)运行 hexo ghexo d,就可以自动生成、部署了。

此时最后显示的内容如下:

warning: LF will be replaced by CRLF in archives/index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in index.html.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in tags/日常/index.html.
The file will have its original line endings in your working directory.
Username for 'https://github.com': GridScience
Password for 'https://GridScience@github.com':
Branch master set up to track remote branch master from https://github.com/GridScience/gridscience.github.io.git.
To https://github.com/GridScience/gridscience.github.io.git
f5a3350..dd3a964 master -> master
[info] Deploy done: github
分享到 评论

2014-12-22 记录的 Beanstalk 开发

大概9月的时候,测试本地发种成功,就想做一个个人机器人。

计划分为3个部分:(1)RSS 订阅;(2)μTorrent 操作;(3)在花园发种。后来为了有效利用极影,写了一个 RSS 阅读器。μTorrent 这个方面则是在网上搜索了一下之后用了一个源代码测试。

2014-12-?

  • 在群里首次表露有编写机器人的意向,不过为了不引起注意还是低调了点。

2014-12-15

  • 定下项目名称为 Beanstalk。来源:Jack and the Beanstalk。花园嘛,种下魔豆之后会怎么样呢?
  • 建立工程,开始封装未来花园的操作部分。
  • 在设立当初就计划利用 .NET Framework 4.5 的异步调用语法糖,做成完全异步的结构,主要是类库要满足该要求。

2014-12-18~21

  • 小修改。

2014-12-22

  • 花园的登录和动漫区发种操作封装完毕,测试成功。看来这个模型是可行的。
  • 为了增强可扩展性,遵循所谓“高内聚低耦合”的原则,将通信部分拆分,模块化。学习 IFormatProvider。

为何今天设置这玩意儿这么久……

分享到 评论

从OST预测结城友奈剧情

花园地址


昨天听完结城友奈的OST。原来那些名字奇怪的曲子基本上都是和 Vertex 战斗的BGM。

但是这么多战斗曲,有一首(30,《☆☆☆☆☆☆☆☆☆☆☆☆*****》)没听过。结合剧情走向,以及这么多星星(12颗,十二宫,对应预计的 Vertex 数量,排在最高的位置!真·12 vs. 5?),我预计放这首曲子的时候会出大事。

为了支持这个预测,整理了一下结城友奈的各话BGM使用。有两首非战斗曲好像没出现过,也有可能是判断失误。
暂时还没看第10话,自习之后验证。


曲目下面的文本是出现的时机(听着直接写的,在回顾动画之前),和出现的时间。

要说为什么整理了这样一张表……因为我很喜欢这部作品啊。


01 ホシトハナ (Instrumental) (TV Edit)

OP 的 instrumental version

02 ヒナギク

日常 #1

  • E01 - 01:54
  • E02 - 22:22
  • E03 - 20:04
  • E04 - 10:29
  • E06 - 18:20
  • E07 - 20:06

03 コスモス

情感 #1

  • E02 - 06:06
  • E03 - 18:51
  • E05 - 21:39
  • E07 - 12:51

04 ユウガオ

情感 #2

  • E08 - 20:02

05 スミレ

  • 情感 #3 (?)

06 樹海の中へ

进入树海的环境

  • E01 - 10:34
  • E02 - 13:42

07 黒種草

环境

  • E01 - 11:55
  • E04 - 14:21

08 ☆*

与 Vertex 战斗 #1 / 战况恶化

  • E02 - 00:02
  • E07 - 23:12
  • E09 - 08:44

09 ☆☆**

与 Vertex 战斗 #2 / 开始战斗

  • E01 - 18:35
  • E04 - 23:51
  • E05 - 15:58

10 威風堂々

变身专用

  • E01 - 17:35
  • E05 - 01:11
  • E08 - 06:24

11 ☆☆☆***

与 Vertex 战斗 #3 / 开始战斗

  • E02 - 15:17
  • E03 - 00:00
  • E08 - 00:00

12 ☆☆☆☆****

与 Vertex 战斗 #4 / 战斗顺利 / 开始封印

  • E02 - 02:32
  • E05 - 05:11
  • E08 - 08:35

13 ☆☆☆☆☆*****

与 Vertex 战斗 #5 / 开始战斗

  • E02 - 14:17
  • E05 - 02:48

14 封印の儀

封印颂词

  • E02 - 03:10

15 センニンソウ

日常 #2

  • E06 - 20:41
  • E07 - 13:47

16 エリカ

日常 #3

  • E01 - 07:03
  • E02 - 12:19
  • E03 - 14:36
  • E06 - 10:09

17 アリウム

情感 #4

  • E02 - 10:45
  • E08 - 17:24

18 ウスユキソウ

真相揭露 / 回忆过去

  • E04 - 11:52
  • E08 - 15:51(Inst.)

19 フクジュソウ

情感 #5

  • E03 - 17:09
  • E06 - 16:28
  • E08 - 22:01

20 ホンキンセンカ

情况异常

  • E05 - 00:00
  • E08 - 07:48

21 タンポポ

环境 / 态度严肃下来

  • E01 - 14:19
  • E02 - 07:47
  • E03 - 08:54
  • E07 - 16:54
  • E08 - 12:34 14:11

22 曼陀羅華

23 ☆☆☆☆☆☆*****

与 Vertex 战斗 #6 / 战况激烈

  • E02 - 03:22
  • E03 - 01:05
  • E05 - 06:56

24 ☆☆☆☆☆☆☆*****

与 Vertex 战斗 #7 / 空前强大的敌人

  • E01 - 15:32
  • E05 - 13:09

25 満開

绽放(满开)

  • E05 - 17:15

26 ☆☆☆☆☆☆☆☆*****

与 Vertex 战斗 #8 / 开始封印

  • E05 - 14:20

27 ☆☆☆☆☆☆☆☆☆*****

与 Vertex 战斗 #9 / 战况恶化

  • E05 - 08:19

28 ☆☆☆☆☆☆☆☆☆☆*****

与 Vertex 战斗 #10 / 克服困难

  • E02 - 18:14
  • E03 - 10:06

29 ☆☆☆☆☆☆☆☆☆☆☆*****

与 Vertex 战斗 #11 / 变身 / 爆发

  • E01 - 21:25
  • E02 - 17:03
  • E05 - 18:30

30 ☆☆☆☆☆☆☆☆☆☆☆☆*****

与 Vertex 战斗 #12 (?)

31 ハナトハナ
片尾预告

未知(未出现在曲目列表中,也不会收在角色歌中)

有些曲子多次出现(某曲的变奏、piano cover,以及AVG型配乐)

“某曲”:ヒナギク/ウスユキソウ

  • E01 - 00:05 00:48 01:04 03:27 05:50
  • E02 - 11:32
  • E03 - 04:17 06:05 06:34 08:26 10:56 11:29 13:50 18:04 22:01
  • E04 - 02:39 03:50 04:28 09:25 10:03 15:57 17:44 20:26
  • E05 - 19:55
  • E06 - 02:11 02:32 03:33 06:37 09:37 14:52
  • E07 - 01:49 03:51 05:45 07:02 08:20 10:23 10:51 11:16 12:20
  • E08 - 03:40 11:43 13:25
  • E09 - 05:06

不知道为什么这些曲子不收录呢……


2015-08-12 附录

索尔菊苣在二楼的回复

。。虽然没看这片子。。

不过这一大段写下来,除了“摊上事了这回摊上大事了‘之外,根本什么结论都没给出来吧。。

这叫哪门子预测啊!!

扔个私货。。

http://tieba.baidu.com/p/2614356104

《关于DSS项圈的符文及其他》

EVA相关:如何利用既有谜题画面暨OST线索推导谜底

分享到 评论

2014-12-06 随感

昨天看着养肥了的《天体的方式》(天体のメソッド),看到第6话的时候也哭了。

为什么?我想着我这二十年来都是怎么过来的。唯一能说“精彩”的,或许就只有小学的时候了吧。初中、高中,都是按部就班,进入尖子班,考上大学。在我的记忆里,似乎就没什么像《天体》里这种“朋友们”的约定的感觉了,而是我被夹在一群人中,随波逐流。“诶,XX真是个乖孩子,没打过架啊!”我也有点像一个零件了。而小学的朋友,现在分化都应该很大了吧,总之也没再见过面。《天体》有人评论说剧情也不怎么出彩,不过对我来说已经足够。即使是这种风景,我也没有体验过,现在能透过这样一扇小窗,窥见那自己不可能经历的可能性,已经十分满足了。

村长曾经说过,“我一个国奖去租房照样艰难”(在新加坡租房的事情)。我说:“我真羡慕你。”“为什么呢?我遇到的是人间的困难。”“因为你经历了这些。”

我也幻想过,如果当初自己有机会,是不是有一些现在想要的可能性。今天群里刺杀在土博入字幕组(日漫),水银灯因自己不在这个校区而感到遗憾。父母一直是微笑着看着我的思想“正常地发展”的,所以我之前也在喊“不看日漫”的口号。但是真的接触了之后,又是打开了一扇新世界的窗口。这种感觉,就像是CROSSANGE里叫嚷着将ノーマ(无魔者)严加看管的公主,发现自己其实也是的时候那种落差。如果我早点进入这个圈子呢?或者我早点进入PT站的圈子呢?

如果要你用你现在所拥有的技术能力去换,你愿意吗?

不愿意。这些是我有别于身边其他人的东西。

也许别人有一些其他的经历,遇见不同的人,四处旅游……我又不可能将所有的可能性遍历对吧。我嘲笑自己是不是要腐烂在屋子里。

就像看《结城友奈是勇者》(結城友奈は勇者である)的时候,当犬吠埼風坏掉的时候,我也流泪了。我很清楚她那么做是为了樹,我觉得我似乎体会到了,但是我没有——因为我是独生子女,可是我也想知道有兄弟姐妹是什么感觉。

又或者,今天那PHP神级代码,看到下面上百条评论,所谓“程序猿的狂欢”、“程序猿平常不多见的幽默都体现出来了”的评论。我默默在下面加了一条,然后想:我对PHP的研究并没这么深,我只是单纯地为这样良性的互动感到高兴而已……可是这一切似乎也不属于我,我也不属于这一切。

而看《樱花庄的宠物女孩》(さくら荘のペットな彼女)的时候我的眼泪就不是这样的。因为我就是空太。我就是在那样一个宿舍里,我就是里面那样的一个人。

我一直在做一场梦?永远地,“正常地”走下去,进实验室、做科研、读博士发论文,就像我其他那些高材生同学那样?我似乎有点醒过来了,不过有点晚了吧……晚了吗?

分享到 评论

乐园追放观后(剧透注意,多图杀猫,没缺“感”字)

花园地址

以下内容只是我在看的时候一边看一边记录下来的。

应该是全3DCG的吧……

头骨结构:

P1

P2

钉宫中途换声线(讲报酬那里),之前所有的都不自然诶(钉宫不傲娇有错吗

头发有时正常有时不正常(反重力),向真·动画致敬?

男主角的渲染更偏向于手绘,女主角的多种反光更“普通3D”(日光下)

P3

P4

讲了一大段话,从培养液里出来……

所以又和 The Matrix 扯上关系了对吧,然后意识的信息流化又来自于攻壳

↑注意,原话说的是精神Matrix(精神母体)

看来还是没有脱离纯数字化的东西啊,即使某些地方是提供能源用的

你猜是什么戏法……坂野马戏团

P5

车里放的是 EONIAN/ALISE(“Arise”),被钉宫吐槽了(但其实不是 EONIAN/ELISA←本作品的主题曲);但是后面还出现了 RONIAN/ARISE

P6

P7

记得吗,Thor 的标志(有点勉强)

P8

DEVA 收集了全人类的文明进行保存——The Matrix,Dark City(虽然只是一座城市),Fringe S05

既然提到了沙虫,那应该知道吧:沙丘(Sand Dune,历史上第一个RTG)

抱下女主角的镜头——连贯的背后(前景动一帧,背景动一帧)

相关理论见索尔菊苣转载的帖子。效果:

P9

P10

病了躺在床上一幕的,背景海报是什么?

但是下蹲(送食物)之后背稍微后仰的动作就不连贯了,真有现代3D大机器人一顿一顿的感觉

背景人物较大的动作(例如取饭的客人、做菜的师傅),也略有不连贯;但是街上走的人正常多了

“用指尖感受基本粒子的触感”*゚Д゚)*゚д゚)(*゚Д゚)オォォ…

P11

这种硬加入中文的,感觉就像 The Matrix: Path of Neo 里面的“旧上海”场景——基本上没错,但是所有的文字就几样,而且重复出现,在不同的贴图中

背景那也应该是四大美人吧(?)

P12

P13

P14

P15

P16

P17

P18

“酸化剂”(oxide),为什么雪飘不实在一点,翻译成“氧化剂”……(因为“酸素”?)(所以觉得会懂的就直接上了?)

墙上的海报?

P19

用的既不是106键键盘,也不是104/101键键盘——回车和旁边的符号布局和日式(106)键盘一致,但是没有假名变换等等键(下面只有 Fn、Ctrl、Win、Alt、Space、?、Menu、Ctrl)

P20

追车(追地铁)的音乐,和式风格

“我”的概念,从来就是机器人电影中谈论的话题啊

SoundCloud你肿么了

P21

姑娘你这是超高跟鞋啊,重心一直前倾大丈夫?(为了避免“没有脚”的推测,先暂定为此吧)

PS. 姑娘你在地面上生活一直穿这个大丈夫?

P22_

真相

人类对机器社会的恐惧也有一部分来源于此

P23

宇宙大战的镜头把控!

以及机器人组装(升级)的过程!节奏感、张弛有度!

Happy Hunting!(笑) High-voltage current、Land mine、Pit trap、Bomb、Jammer、Missile Launcher、Smoke ???,以及恶搞的 Firework(左下角)

P24

颜艺了啊姑娘

P25

P26

老式宇宙爆炸镜头

P27

P28

P29

共振弹头……总是让我想起某些具有自主意识的船啊(高雄我收了)

P30

补一张大张

P31

漂亮!

P32

P33

P34

P35

不硬派就奇怪了,那就不是钉宫了

P36

某马戏团大量运用……


其他

机器人砍沙虫、小巷打架、宇宙大战、城中大战都不错(镜头的运动、人物动作流畅)——这是为了证明“新技术”能胜任多种常用模式吗?

老虚的关键在夜谈(00:34~00:36)吧——后面又是“宣扬个性”这个主题——最后还是逐出乐园的意思啊……“真是愚蠢,乐园明明已经存在于此”。但是谁都清楚吧,对于终极阶段不是让每个人的发展为其他所有人发展的前提的社会。

第几次发射而高兴了呢……HL2EP2;To The Moon……

P37

但是你还没进入轨道就开始转向是闹哪样……

P38


安利一下之前的搜索练习

某游乐园中的某触摸板布局奇特的笔记本是真实存在的哦!松下CF-SX2JDR5FW

P39

P40


附萌萌的女主&某娘娘

P41

P42

P43

P44

P45

P46


2015-08-12 附录:

在转录这一篇的时候,想起当时群里有人说过,制作公司为本片的颜艺写了专门的CG工具。查了一下记录,是syd菊苣说的。lansure也说过许多表情符合2D但不符合3D透视,但是我看不出……真的……

syd给出的链接:

乐园追放幕后制作

分享到 评论

记录一次罕见的 IPv6 修复过程

花园地址


拜 Frederick888 大神

联动:

一种免流量和翻墙的方法

Windows 下百度网盘离线下载(IPv6 通道)解决方案


普通的问题一般是由于未启动 IP Helper 服务(Windows XP 下是 IPv6 Helper 和 6to4 两个服务),或者未启用 ISATAP 造成的。网上回答泛滥。

前几天测试网盘的时候,不知做了什么,昨天发现流量走了许多,没太注意;然后网盘的链接也崩了(我改过 HOSTS),有点警觉;今天看到自己的 IPv6 tracker 全部崩了,觉得有点蹊跷。

于是用 ipconfig 检查。

ipconfig /all

发现居然没有了 ISATAP 的虚拟网卡!

之前我是启用过 ISATAP 的,为什么没有?好,手动设置一下。

>netsh int isatap set state enabled
确定。
>netsh int isatap show state
ISATAP 状态: disabled

嗯?为什么是这个状态?百度了一堆,也没什么用。倒是发现了一个和我同病相怜的,而且也没有列出解决方案。

Syndrome

既然网上也有其他的穿越方式,那么看看其他的行不行。

>netsh int ipv6 6to4 set state state=enabled
确定。
>netsh int ipv6 6to4 show state
6to4 服务状态 : disabled
服务终止时撤消 : default

嗯?为什么一样不行?

Teredo 我没有测试,估计也是不行吧。(即使可以,速度……)在这里猜测是某种全局设置被禁用了,因为两种方法出现了同样的问题,而且是设置成功应用失败;但是不知道是什么。

于是又去翻微软关于 netsh 的资料,没用……

翻出去找谷歌吧。大多数人都是报 Microsoft ISATAP Adapter 的黄色感叹号问题(实际上不影响使用),而且多为 Windows Vista 的用户。找不到什么有用的。

最终的最终,找到一份有用的文档。(利兹大学?)原文附在二楼。

值得注意的是第 144-163 行。不难懂,就不翻译了。

转到对应的地方(HKLM\SYSTEM\CurrentControlSet\services\TCPIP6\DisabledComponents),一看:键值居然是 0x0000008e0x0e = 0x02 | 0x04 | 0x08)!我说为什么……(10-27:昨天错写成“&”)

修改了之后,重启,解决。(同样 ipconfig 可以确认)

总计从今天 11:25 到 15:07,三个半小时。我个渣渣。(快去做作业……


这种问题非常罕见,不过也许某天某人会碰上,就记录在这里吧。


Some Windows IPv6 hints and tips
--------------------------------

Jim Jackson jj@franjam.org.uk

Contents
--------

- some links
- zone IDs for link local addresses
- IPv6 DNS settings
- IPCONFIG & ROUTE
- turning off ICS
- disabling IPv6
- some netsh commands


Some Links
----------

http://technet.microsoft.com/en-us/library/bb878057.aspx

Configuring IPv6 with Vista

http://technet.microsoft.com/en-us/library/bb726952.aspx

Using Windows Tools to Obtain IPv6 Configuration Information

Zone IDs for Link Local Addresses
---------------------------------

For link-local addresses, the zone ID is typically the index of the
interface that either assigned the address or is to be used as
the sending interface for a link-local destination. The interface
index is an integer starting at 1 that is assigned to IPv6
interfaces, which include a loopback and one or multiple tunnel or
LAN interfaces. You can view the list of interface indexes from the
display of the

netsh interface ipv6 show interface command

e.g. ping fe80::2b0:d0ff:fee9:4143%3
tracert fe80::f282:2b0:d0ff:fee9:4143%2


IPv6 DNS Settings
-----------------

netsh interface ipv6 add dns "interface name" <ipaddress>

By default MS systems try using the site local addresses (fec0:0:0:ffff::1,
fec0:0:0:ffff::2, and fec0:0:0:ffff::3) and addresses for Sire DNS servers.
This is covered in an now obsolete IETF draft.

Be kind to your ISP and firewall the old deprecated sitelocal addresses.


IPCONFIG & ROUTE
----------------

ipconfig shows IPv6 info associated with interfaces.

Windows usually has several IPv6 tunnel interfaces configured by default,
though often these are inoperative.

route print

shows any IPv6 routing. And routes can be manually added, if necessary.


Turning OFF ICS
---------------

1. Click the Start button and then click Control Panel:

2. On the Control Panel window look for the Network and Internet icon

3. Open Network Connections by clicking View network Status and tasks
underneath Network and Internet and then clicking Manage network connections
on the left hand side.

4. Right-click the shared connection, and then click Properties. If you are
prompted for an administrator password or confirmation, type the password or
provide confirmation.

5. Click the Sharing tab, clear the Allow other network users to connect
through this computers Internet connection check box, and then click OK.

If you follow the steps above, but dont see a Sharing Tab

There are several reasons this Tab may not be visible, but if you cannot see
it, either it means you only have one network card installed in your
computer or that the user interface components of ICS for Vista are not
installed. Recent testing has revealed that ICS may still be running in the
background. To check that this is not the case:

Click Start and in the search box type in Services.msc and press ENTER

In the Services windows, look for Internet Connection Sharing (ICS) and
double click it.

In the new window select Disabled in the Startup type option.

Also remove the extra functionality in your Local Area Connection properties
by uninstalling

As well as un-checking the IPv6 box.


Disabling IPv6
--------------

# Go to Network Connections folder (click on Start button, then right click
on Network, select Properties, then click on Manage network connections on
Tasks pane).

# Right click on the network connection that you want to disable the
IPv6 interface and select Properties.

# Click Continue on User Access Control permission request prompt.

# untick the check box next to TCP/IPv6 component

# Click OK when done.

# To re-enable IPv6, retick the check box.

Or Via the Registry...

1. Open Registry Editor (regedit).

2. Navigate to the following registry key branch:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\tcpip6\Parameters\

3. Create the following registry value (DWORD type):

DisabledComponents

Note that the name must be exactly as shown, including
capitalization. DisabledComponents is set to 0 by default.

4. The DisabledComponents registry value is a bit mask that
controls the following series of flags, starting with the low
order bit (Bit 0). To determine the value of DisabledComponents
for a specific set of bits, the process is complicated, were
hexadecimal value is calculated from binary number of the bits
in correct position. For convenient, the following table lists
some common configuration combinations and the corresponding
DWORD value of DisabledComponents.

Configuration combination DisabledComponents value
Disable all tunnel interfaces 01
Disable 6to4 02
Disable ISATAP 04
Disable Teredo 08
Disable Teredo and 6to4 0xA
Disable all LAN and PPP interfaces 010
Disable all LAN, PPP, and tunnel interfaces 011
Prefer IPv4 over IPv6 020
Disable IPv6 over all interfaces and prefer IPv4 to IPv6
0xFF

As seen from table above, to disable IPv6 support globally on
all interface, set the value data for DisabledComponents to
000000FF, or simply FF. The registry entry will look like below:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters]
"DisabledComponents"=dword:000000ff

5. Restart the computer for changes to take effect.

6. To revert and enable IPv6, delete DisabledComponents registry
key or set its registry value to 0.


Some netsh Commands
-------------------

netsh is a command line program for configuring all aspects of networking.
Invoke it from a DOS-box shell window.


netsh interface ipv6 install|uninstall
netsh interface ipv6 renew restarts all ipv6 interfaces!
netsh interface ipv6 reset resets ipv6 configuration

netsh interface ipv6 show ...
... address shows address setting per interface
... destinationcache show next hop settings
... global global settings
... interface summary of interfaces and info, inc number, mtu, name etc
... joins show multicast addresses
... neighbors show neighbours - 'merkan spelling
... prefixpolicy shows prefixes and use
... privacy show privacy settings
... routes routing table
... siteprefixes
... state shows state of some setting (deprecated settings???)
... teredo shows teredo information

netsh interface ipv6 6to4 ...
... dump
... reset
... set
... interface
Usage: set interface [name=]<string>
[[routing=](enabled|disabled|default)]
e.g. set interface "Private" enabled
... relay
Usage: set interface [name=]<string>
[[routing=](enabled|disabled|default)]
e.g. set interface "Private" enabled
... routing
Usage: set routing [[routing=](enabled|disabled|automatic|default)]
[[sitelocals=](enabled|disabled|default)]
e.g. set routing default default
set routing routing=enabled sitelocals=enabled
... state
Usage: set state [[state=](enabled|disabled|automatic|default)]
[[undoonstop=](enabled|disabled|default)]
e.g. set state default default
set state state=enabled undoonstop=disabled
... show
... interface
... relay
... routing
... state

netsh interface ipv6 add ...
... 6over4tunnel
... address
... dns
... prefixpolicy
... route
... v6v4tunnel

netsh interface ipv6 delete ...
... address
... destinationcache
... dns
... interface
... neighbors
... prefixpolicy
... route

netsh interface ipv6 isatap ...
... dump
... set
... router
Usage: set router [[name=](<string>|default)]
[[state=](enabled|disabled|default)]
[[interval=]<integer>]
e.g. set router isatap enabled 1440
... state [state=](enabled|disabled|default)
... show router|state

netsh interface ipv6 set ...
... address - Modifies IPv6 address information.
... global - Modifies global configuration general parameters.
... interface - Modifies interface configuration parameters.
... mobility - Modifies mobility configuration parameters.
... prefixpolicy - Modifies prefix policy information.
... privacy - Modifies privacy configuration parameters.
... route - Modifies route parameters.
... state - Sets the state of deprecated functionality.
... teredo - Sets Teredo state.
Usage: set teredo [[type]=disabled|client|enterpriseclient|default]
[[servername=]<hostname>|<IPv4 address>|default]
[[refreshinterval=]<integer>|default]
[[clientport=]<integer>|default]

分享到 评论

灰色的果实,周防天音线GE通关后记(严重剧透)

花园地址

前言:

通了《灰色的果实》(グリザイアの果実)的天音GE线。好了,可以放心大胆看动画了,再也不用担心剧透——嗯我是不希望见到 bad end 的(bed end 十分欢迎),其他几条线不是很想去通了……

而且觉得对于我这种没耐心的人,《寻找失去的未来》这种要刷8次接近相同的剧情的游戏,我应该是玩不下去的吧……虽说看过贴吧上的贴子后觉得这游戏确实不错,不过作为纯粹的小说会更好一点吧……

资源


在游戏说明中说过,五个人,都是有罪的人。她们因为各自的罪过,被囚禁于这个学园中。

这个罪过,在天音的身上,就是放弃队友,致使其死亡。


不得不说,日常部分真是长……而且玩的时候,好像就是一个普通的galgame,与各妹子打打闹闹。

天音在五个人中,是最早向主角表明好感的。她是一个大姐姐一样的存在,同时也是一个略闷骚的家伙,不仅在主角的房间里换衣服(动画里这一段其实删减了一部分),而且会对着主角的床发情。不过总的来说,是一个温柔体贴的姐姐。(姐控真好)而且身材高大。

对于这样的“姐姐”,主角是有点害怕的。那是因为主角曾经就有一个高大的姐姐(有误,应为“师父”[master,先生]),优秀而严厉。这样的姐姐给了主角很大的压力,让他“难以应付身材高大的女性”。不过后来随着和后宫们的熟悉,这份畏惧感少多了。(PS. 猜猜这位“高大”的姐姐身高是多少?答案:169cm[某人:居然比我高9厘米!]


经过了种种日常,在拒绝了蒔菜“买爸爸”的提议之后某天,主角又接到了工作。回来的时候,在校门口被 J. B. 送上了一个“晚安的吻”,这一幕被幸撞到了,而且拍下来了。主角回到房间,天音做好饭菜,然后收到了幸发来的短信“我什么也不知道;我什么也没看到”,附件是某张照片。(吐槽:是否跟 Agent Simmons 在 Agents of SHIELD S02E05 差不多?)

天音在之前与 J. B. 见过一面,当时 J. B. 开着跑车,“勾引”着主角。那么现在就是做出选择的时候了!经过一堆废话之后,主角开动后宫之王专属技能——以吻偷心。于是,正式进入天音线。


经过多次啪啪啪之后(后来我数过,天音的 scene 是所有女主角中最多的,一共5次),某天在商店街,主角偶然听到了路人关于“蟑螂”(英化版为“cockroach”)的闲话。

当晚,主角问天音:“这个名字对于你来说意味着什么?”

天音坦白了。她就是主角姐姐的同班同学,六年前的事故发生后,14人中唯一的幸存者。从主角转学过来开始,就猜想他是同学的弟弟(姓相同啊),一直瞒着他。

六年前发生了什么?

篮球队合宿(training camp,不过推断原文应该为“合宿”吧)返回的途中,大巴掉下了山崖。14人中,3人当场死亡。当时的天音还是一个眼镜娘,和其他的生还者差不多,都没做好应对灾难的准备。主角的姐姐虽然手臂断了,但是凭借着冷静的头脑,在这些日子中采取了必要的措施,让剩下的人能活下来。这又是很长很长的故事……

但是到了某天晚上,天音和主角姐姐晚上出去,见到了惊人的一幕:队长和教练在咳咳,旁边散落着人的碎片(gibs)。天音吐了出来(前几天吃的肉的真相),惊动了已经丧失了人性的两人。逃跑的时候,主角姐姐的手臂降低了她的速度。眼看着追兵就要到了,主角姐姐毅然留下作为诱饵(decoy),让自己留在原地被杀死,从而让天音有机会逃离。

恶魔逼近了,他们手电筒的光柱在丛林中晃动。恶魔们扑到了 Kazuki(一樹?)的身上。这时候的 Kazuki 没有惊愕,没有泪水,却是——微笑。

PS. “一樹”是推测的,英化版只有罗马字。之前游戏中说过主角“姐姐的名字像男孩子的名字”,再看看古泉……

这就是主角姐姐死亡的真相。而这个“放弃”给天音留下了巨大的阴影。

主角爆发了。

你(英化版用的都是“woman”)这时候不许说“对不起”!这么做是想不断揭开我过去的伤疤吗!Kazuki 不是说过吗,(在那情况下)说这么多“对不起”有什么用!跟我大声说:“谢——谢——!”

然后再发动技能:无限宽容。顿时天音哭成一团。


罪过揭晓了,接下来就是赎罪的过程。

主角在商店街遇到了一个怪蜀黍,眼神诡异。和天音到事故地点凭吊的时候,主角突然发现异常,强行压倒天音,不过背上还是中了一枪。怪蜀黍出现了,手中持着猎枪,他就是队长的父亲。

我26岁才在家族的安排下结了婚(联姻),30岁才有了这个宝贝女儿。虽然我其实不想要孩子,但是有了这个孩子,我还是将她当做宝贝看。……据警察说,在发现她的尸体的时候,她已经被大卸八块了。……后来我诸事不顺,父母逝世,妻子和员工离我而去。但是命运之神似乎又眷顾了我,前几天你从前的一个同学打电话给我,说在 Mihama 学园目击到你和男友。

跑啊!像一个猎物一样跑啊!

但是主角伤重。

如果一起逃跑,那怪蜀黍肯定想在你面前杀死我。所以我留在这里吧,作为诱饵,你快逃!……这是命令!

天音不想重蹈六年前的覆辙,坚定地要和主角在一起。

在这里又要做出一个选择:和天音分开,还是一起逃跑?

GE的选择是,一起。于是主角用漂亮的伏击战打倒了怪蜀黍。

PS. 怪蜀黍的下场是在集市上“大喊‘你为什么在这里’,而且开枪打接近他的人”,结果被 SWAT 击毙了。


一切结束之后,天音心里的石头还是放不下。后来蒔菜建议说,为什么二人不结婚呢?(啊呀,这是我玩到的第二个结婚结局233)

一切事件20年(结婚15年)之后,二人有了孩子(女的)。蒔菜则一共留了8年级,在前往德国的艺术学校之前,几乎一直赖在他们的公寓里。(长大之后的蒔菜还难看……)

一切事件50年之后,主角已经没了。天音身体也快不行了,在最后的夏天,和女儿一家(和外孙女)一起前往一处森林公园。

这里俯视着那片树海。

伴随着天音END的ED的钢琴版,外孙女(Suzune,鈴音?)出现了。Suzune 完全就是幼年版的天音嘛!来抱一抱……不不不,警察叔叔不要拉我!

外婆,外公是什么样的人?是个好人吧?说到他,你好像在哭呢……是在微笑吗?……感谢上天,你是我的外婆。

听到外孙女开口就是“感谢”,想到这种性格可能是遗传自男主,天音不由得流下眼泪。至少在孙辈,自己的罪过不需他们承担了。

到现在我都无法忘记我犯下的罪。……但是只要有你在,我就不会害怕。你让我得到救赎,而这个过程,是永远。

在蓝天下,天音闭上了眼睛,外孙女的声音逐渐远去。

天音のエンディング


1、这个游戏是用 CatSystem2 开发的……表现能力和性能都还不错……

2、如图。亮点自寻。

One Ending Screenshot

3、看 Extras,似乎在5×2条线之外还有别的线路……

天音线的ED是《HOME》。五个ED里我觉得最好的一个。

试听:

「HOME」

作詞∶桑島由一

作曲∶菊田大介(Elements Garden)

歌∶橋本みゆき


迷子の子供みたい

うつむいて泣いてたけど

安心できる場所が

ようやく見つかった

キミが残してくれた

記憶に抱かれて眠る

みんなに伝えて欲しい

あの人を愛してる

名前呼んでも 指で触れても

からかうように 口付けしても

照れくさそうな 笑顔はもう

なくて どこを見てもいない

少しだけ先歩く

キミの後ろ追いかけて

次に捕まえた時

もう離さない 二度と

</br>

天使の子供が今

わたしの罪を許した

そろそろ終わりの時間

キミの声が呼んでる

悲しい夜は 星に祈って

風邪をひいたら ちゃんと休んで

ロウソクがほら 消えぬように

遠くからも 見てるからね

あなたのために全部

ここに残していくから

上手く笑えるような

人になってね 好きよ


少しだけ先歩く

キミの後ろ追いかけて

次に捕まえた時

もう離さない


あなたのために全部

ここに残していくから

上手く笑えるような

人になってね 好きよ

于是将桌面换成天音的了……正好游戏自带 16:10 的壁纸……

10-26

听了许多次,在部分汉字&常用词发音的协助下,终于懂了……

少しだけ先歩く

キミの後ろ追いかけて

次に捕まえた時

もう離さない


あなたのために全部

ここに残していくから

上手く笑えるような

人になってね 好きよ

玩过游戏才有最深刻的体会吧。听哭了。

分享到 评论

初春引擎的 alpha 版发布与反馈(欢迎参加测试)

花园地址

原标题:初春引擎的 alpha 版发布&反馈(欢迎参加测试),因为“&”字符无法被百度sitemap插件处理写入 XML,所以改动了标题。


大家不要只是评论,谁来做一下小白鼠啊谢谢……
已经取消了文件分享区的文件分享,请转到百度网盘。链接:http://pan.baidu.com/s/1jGwvEAU(521 MB)密码:vcmg


初次制作,若有大神看上的话,劳烦指导,谢谢……

文件较大,为了节省大家的外网流量(虽说今天好像不限制流量,但是考虑一下以后吧),就放在文件分享区了。在几乎没人的十一假期发布,我也拼了。比预定的时间晚接近一天……

历史上的帖子:http://buaabt.cn/showtopic-370825.aspx

欢迎反馈……反馈的时候建议附上错误说明(一般会输出,如果不是 .NET 的问题的话)。

内容取自 StrawberryNauts(©2011 HOOKSOFT)。

请先阅读“运行需求”(见下文),配置好之后直接启动 StrawberryNauts.exe 开始游戏。

运行需求

操作系统:Windows Vista SP2 或以上

DirectX:版本 9、10 和 11(注意是3个版本都需要;Windows Vista 预置 DX10,Windows 7 预置 DX10 和 DX11,;DX9 基本上不用愁)

其他组件(如果不清楚自己的机子上是否已安装,推荐安装一下):

1、Microsoft .NET Framework 4

http://www.microsoft.com/zh-cn/download/details.aspx?id=17718(大约 48 MB)

文件:http://download.microsoft.com/do … 40_Full_x86_x64.exe

2、Visual C++ Redistributable for Visual Studio 2013

http://www.microsoft.com/zh-cn/download/details.aspx?id=40784(大约 7 MB)

选择 vcredist_x86.exe。没错,即使是64位的系统,也请选择32位的运行时。(2014-10-03 补充)

文件:http://download.microsoft.com/do … 6F/vcredist_x86.exe

3、OpenAL

http://openal.org/creative-installers/oalinst.zip(大约 600 KB)

正常运行的时候应该是这个样子:

StrawberryNauts in EarlySpring Engine

软件说明

  • 错误反馈会输出至根目录下的 debug.txt。(会有比较详细的错误信息。)
  • 当前为 alpha 测试所用,使用默认的 Release 方案编译。任何模块的代码都仍然可能被修改。
  • 为了演示简便起见,省略了部分特效(如文字渐入、对话框晃动等),仅编写了淡入淡出特效。请参考 EarlySping.UI.AnimatedEffect 类实现自己的特效类。
  • 为了演示简便起见,省略了许多错误捕获代码。因此如果想测试自己的实例,请严格按照示例(在 script 目录下,test.sns 和 details.txt)编写脚本。
  • 为了演示简便起见,省略了部分游戏功能(如存档/读取、设置、CG 等),仅制作了普通游戏流程。当然,其实 alpha 的代码验证了的话,做这些并不难。
  • 所有文件的默认编码为 UTF-8,注意输入的文本文件的编码。
  • 文件按照原版游戏放置。
  • font 目录下有三种字体选择:微软雅黑(msyh.ttf)、宋体(simsun.ttf)、黑体(simhei.ttf)。游戏中使用的是黑体,因此想改变字体的话可以将所需的 TrueType 字体文件重命名为 simhei.ttf,替换原文件。
  • 版本号懒得改了,目前那些 1.0.0.0 之类的其实都是默认的,没有意义……
  • 还原的两条线(两条?)分别为共通04的穗海EV2,以及日和橙子01的后半部分。
  • 有福利。嗯,其实要发现是很简单的,玩了就知道。(那也叫福利?!)

此次参与的模块:

  • 基于事件的 GUI
  • 声音
  • 带变量和流程控制的脚本系统(目前仅支持数字和布尔值)
  • 简单的状态保存

该版本中关闭了一些功能,可以自行编译解决。注意,如果需要编译代码,您需要 MonoGame 3.2。

1、外置调试器。调试器已经编译,若需要游戏支持调试器,请加上 ES_DEBUG 常量进行编译。该调试器目前不是很稳定(尤其是主进程崩溃的时候),请谨慎使用。

2、视频播放。此部分已经编译,只需要将 FFMpeg 的二进制文件置于根目录下即可。

avcodec-53.dll
avdevice-53.dll
avfilter-2.dll
avformat-53.dll
avutil-51.dll
swscale-2.dll

3、各种代码说明。好吧,XML 代码文档我是没用到(因为名字就可以反映大多数信息),少部分有普通注释。

当前最大的问题:

1、

目前的界面元素添加代码有缺陷,建议界面元素尽量静态初始化。本次普通窗口的控件是静态初始化的,选项窗口的是动态生成的。

描述:每次改变集合内容都会使得迭代器失效;而用户的操作实际上都是处在 Update() 中,即是遍历更新中,必须要用到迭代器。

目前解决方案:每次循环时判断元素是否变动,如果变动则中止本次循环。

推荐解决方案:考察 Windows 的窗口消息机制,特别是新建/销毁窗口后事件到达情况的改变。

2、

窗口失去焦点时重绘会导致窗口卡顿,原因不明(可能与自动坐标系中的缓冲区更新有关)。

有帖子(2013年,地址忘了)报告说 MonoGame 中仍然存在一些 trick,例如并不是“不显示鼠标”而是将鼠标移动至屏幕外等。怀疑在特殊情况下渲染不正常的原因和其在窗口大小变动时使用的 trick 有关。

目前解决方案:失去焦点时不再重绘(表现为黑屏)。

推荐解决方案:未知。

开源软件使用(按照惯例需要指出):

  • MonoGame 3.2(Microsoft Public License)
  • SharpFont(MIT License)
  • FreeType 2.5.3(FreeType License)
  • OpenTK 1.1(MIT/X11 License)
  • NVorbis 0.8.3(Microsoft Public License)

此次未使用:

  • FFMpeg(LGPL v2.1/GPL v2)

好了上面是一堆的正式文本……现在开始吐槽。

Gatekeeper(Goalkeeper?) 受我一拜

Gatekeeper

Q: 为什么这么大?

A: 主要是资源大……看程序本体并不大啊……

Q: 为什么不照顾 XP 党?

A: 采用的程序集的问题。MonoGame 采用的 SharpDX 自带了 DirectX 11 的封装,而且还强制使用 DirectX 11,因此与 Windows XP 无缘了。我在论坛上问过是否能提供仅 DirectX 9 的版本,不过还没人解答这个事,估计我到时要自己做。此外,libfreetype 是写 SharpFont 的蛋疼的家伙用 Visual Studio 2013 自行编译的(估计选的还是 vc120 而不是 vc120_xp),这个把我坑了一个小时。到时我也要自己编译 libfreetype,取消这个限制。

Q: 说好的跨平台特性呢?

A: 现在先在 Windows 上测试一下……编译的时候强制检查 CLS 兼容性嘛,然后就可以开其他平台的解决方案(代码不变)了。其实主要原因是,我就一台安装了 Windows 的小破机子。另外,昨天写 WPF 的 Storyboard 的时候,发现有了 Storyboard,应该在 WPF 上做这种小型软件更好;但是 Mono 的开发团队已经声明不会去支持 WPF(而将精力转向 WCF 的支持),我只好打消了这个念头。感觉总是在发明轮子啊。

Q: 你要测试什么?

A: 我要测试的是引擎;为了测试引擎,需要基于其制作一个游戏。我们在运行阶段直接测试的其实是游戏,但是如果发生了异常,可以反映出引擎中的问题。

Q: 为什么名字那么土里土气的?

A: 土么……好吧,如果真这么认为,那就算了。名字的来源是初春饰利(Uiharu Kazari),但是直接用罗马字的话,发布到论坛上看起来就像日本人做的一样。但是要将其姓“初春”翻译成一个可以作为软件名字的名字很难(现在用的是 Early Spring,并不是很准确)……想了想,至少有中文名……囧。

来源是这里(左上角,超炮S第17话;话说初中生自制防火墙啊)

Firewall Early Spring

没事,国内还有一个叫“天火引擎”(Fire from Heaven,名字来源为某蛋疼电视剧)的,做了一堆外设但是目前似乎还没有一个测试品……

Q: 接下来打算做什么?

A: 最近几天么?做了作业之后就可以编索引&玩 GalGame 啦~对这个的代码也会持续改进,先要积蓄内力,现在快累坏了……

这里是游戏本体的代码。注意不是全部代码,请和框架搭配使用。由于原工程引用了同解决方案中的其他工程,懒得改了,因此请自己建立工程、引用,再编译……

SN_MainGame_Src.rar


刚刚发现 MPC-HC 升级到 1.7.6.253(随着2014年9月23日的 K-Lite Codec Pack Mega)之后,启用了 DirectVobSub,截图机制与以前也不一样了,字幕也能被截进去……(有一种被坑的感觉)

分享到 评论

宅的否定之否定

花园地址

按:看第一句。


本帖十分青涩,而且可能还会做出修改。

看了这么多(以3/4年的标准,远远比不上各个菊苣)东西,也逐渐适应了这个文化生态。

大一下的时候,做片,我是选配乐那个(最后挂的是“音响制作”,不过还是要吐槽剪辑没做好,配乐都坏掉了)。当时听的都是电影原声,除了那些气势雄浑的配乐,也不知道有什么其他的好音乐了。某位同学说:“动漫的歌曲好像不错,你去找找。”我说:“对不起,我对这个方面一无所知。”

以前也说过,这3/4年对我来说是一个极大的冲击。现在回想起来,应该是 culture shock 的一种吧。那么,如果如此,我现在就进入了第二个阶段——低潮期,正在进入适应期。

1月4月的番,我是看得相对较多的,极影节目单上的看了大多数;这段时间也在补老物。但是到了7月,兴奋程度明显就下去了。我已经建立了自己的标准,什么是值得看的,什么是娱乐一下的,什么要丢掉的,我自己的小列表,而不像以前那样好像什么都好,什么都新奇一样。

理性下来,冷静下来。——我为什么有一种即将脱宅的错觉?

蜜罐就蜜罐吧,不过我好像不喜欢呆在没有味道的地方。

我吃东西的习惯有点奇怪,并不是按照“推荐的”来。例如羊汤,烙饼是从来不蘸汤汁的(以前尝过一口羊肉泡馍,然后吐了);或者知名的北京烤鸭,从来不放酱料。

因为烙饼也好,面皮也好,都是几乎没有味道的。只有知道什么是没有味道,才知道什么是好的味道。只有有一个参考点,你才知道你走了多远,才知道你该走多远。

当然对于吃饭,我有自己的食物刺激理论,这个就不提了。

所以对于“某些作品好好看啊,我要刷完”之类的感觉,我是曾经有过,或许谁都会有;现在看起来,真幼稚,就像肉汤中的草履虫。

是疯狂地追逐好呢,还是什么都不知道好呢?都不好。我现在的状态和大一的差不多了,但是,毕竟经历过了,也就了解了,而不是以前的我。辩证的发展,是在否定之否定的基础上进行的。

既然身为三次元的生物,就要在三次元中活着。叫我去刷作品,或许会;兴至而来,兴尽而去。离开二次元?对不起你是认真的吗?我并不想,但是就像割肉,在特定条件下是可以的。最好的状态,莫过于细品红酒,不是狂饮贪杯,亦不是滴酒不沾;细水长流的醇香,远比醉后的头痛要值得。

话说我也想有一个随便开挂开后宫怎么也不老能无限复活遍地亲情友情的世界啊!可是如果我的精神去了,我的本体是要在虚无中腐坏么?

只是之前看了索尔的帖子http://buaabt.cn/showtopic-372182.aspx之后想了一点,今天抽空就记下来了。先膜拜索尔菊苣。

写在这里,如果以后入坑的同志们,或许会经历这个过程。看到这个,至少会知道,有人和ta一样,曾经 too young too simple sometimes naive(也许现在还是233)了。

附:当时搜到的部分音乐(来自 ACG)

  • Pearl White Story
  • 风を待った日
  • 君を思うメロディー
  • 空と海の诗
  • 惨劇の記憶(来自《这个是僵尸吗?》,当时还以为是多悲剧的东西)
  • 時代を越える想い

题外话1

引擎的一个预览版的 public demo 在十一内就能出,现在在做其中一条线的脚本。(转译真是麻烦的事)


题外话2

还有两部7月番的配乐给我印象深刻。我一直奇怪为什么还不放 OST,结果今天一查,一个几天前发行第一部分一个11月,都不知道到时还记不记得了……有心的同学就帮搬一下吧。

http://vgmdb.net/album/46574(东京ESP)

http://vgmdb.net/album/47373(月刊少女野崎君)

分享到 评论

视频黑科技的幕后故事(初步完坑)

花园地址

按:当时尽心尽力了,现在看起来还是图样图森破。


发布到博客预备 TOC 的时候加上的标题

一样开坑。该帖将讲述《内网环境下,FGBT贴内附视频、音乐的黑科技介绍》的原理,有基础的同学可以参照本篇开拓自己的思维……

何谓“基础”?很难讲啊……嗯总之是相关领域基础中的基础就对了。

我会尽量写得详细,并兼顾易懂性。欢迎评论。

(好像操作部分也讲了一些……原理不纯了诶)

分为三个部分:

  1. 基础篇
  2. 附件法
  3. iHome 法

两种方法各自的效果如下。这里仅作为音乐试听器,不过同样也可以作为视频预览工具使用。

附件法(进度条守身如玉)

来源:Pearl White Story——君に届け 2ND SEASON(好想告诉你 第二季)

iHome 法(进度条可以调戏)

来源:風花——はつゆきさくら(初雪樱)

另外(有点相关的)吐槽:

  • すま的自谦过度了。
  • 这个只是我爆发一个小时的成果的原理部分,请不要给放膝盖,如果放了的话我肯定会被技术帝如lansure、晴朗园界、CFan、工口之主等人,以及各种版主啊不爽的群众啊追杀。为了我的生命安全,请大家多考虑一下……
  • 我居然抢到了视频编号233,23333333333333333333333333333333333333333333333333333333333333333333333333

基础篇

内容:

  1. HTML
  2. ASP 页面/PHP 页面的参数调用
  3. 扩展名与文件内容的关系
  4. 串流与流媒体
  5. 站点的相对路径

一、HTML

对网页稍稍有点了解的同学应该知道 HTML(Hypertext Markup Language,超文本标记语言)。网页浏览器识别的内容,大多是以 HTML 为载体的。

一个页面,也就是 HTML 文档的结构,是典型的树状结构。例如:

<html>
<h1>
标题一
</h1>
<body>
<!-- 下面这一行会创建一个链接 -->
<a href="http://www.baidu.com">链接文字</a>
<foo />
</body>
</html>

这些用“<>”括起来的,就是树的节点(node),这些东西叫做标签(tag)。如果节点中还有内容(HTML 默认内容是文本),就需要以<...>开头,以</...>结束,例如上例的<body>...</body>;否则,在节点内以“/>”结束即可,如上例的<foo />。表示一个页面元素(一般是能显示出来的界面元素)的,就简称为元素(element)。

一个节点可以带有属性。属性只属于描述的节点。例如上例节点<a>有一个属性,名称为“href”,值为“http://www.baidu.com”。综合<a>标签的语法,href 属性即为链接指向的目标。

现实中的例子,可以在任意页面上右键,单击“查看源代码”。

View Source

二、ASP 页面/PHP 页面的参数调用

到这里可能有的同学要问了,那么为什么我们会见到 .aspx(ASP .NET 页面文件),就像花园这样呢?略了解的同学会知道,ASP 页面和 HTML 还是有一点差别的。

这是因为,HTML 其实是一个相对静态的语言,所描述的只是一个静态的页面。即使加入了 JavaScript/VBScript,应变能力还是有限。由此人们想出了一种方法,让页面返回一个 HTML 页面。

采用这种方法的典型例子如 ASP/ASP .NET,以及 PHP。当你向服务器发起请求连接到相应的页面时,相应的 IIS/Apache 服务器会动态执行该页面代码,并输出一个 HTML 页面。这样,虽然地址栏里还是 .asp/.aspx/.php,但是读取到的仍然是一个 HTML 页面。说白了就是源页面写了一个 HTML 文件(当然实际上有点区别)。

那么我们就可以将相应的源页面看做是程序,有入口点(entry point),可以有输入参数。这个在普通的程序中很常见,例如 C/C++ 的

int main(int argc, const char* argv[])

C# 的

void Main(string[] args)

等等。那么在这些页面中是怎么传递参数的呢?

是这个样子的:

http://www.somesite.com/somepage.aspx?param1=value1&param2=value2&param3=value3

在上面的例子中,我们就向 somepage.aspx 传入了三个参数 param1param2param3,值分别为 value1value2value3

没错,是在页面后以“?”作为分隔符表示输入开始,参数之间用“&”分开。

例如,未来花园的种子搜索页面

http://buaabt.cn/showseeds.aspx?keywords=Hello%20World&state=

传入两个参数,keywordsstate,值为“Hello World”(注意之间的空格,编入 URL 中时要转义)和空值。

或者我们直接搜索种子产生的页面

http://buaabt.cn/showseeds.aspx?keywords=%u8F93%u5165%u641C%u7D22%u5173%u952E%u5B57%3A%u79CD%u5B50%u6807%u9898

输入的内容就是“输入搜索关键字:种子标题”(原 URL 进行 UNICODE 反转义之后的结果)。

由此也不难理解为什么会出现 URL 转义,以及 Base64 编码——这些都是让复杂的内容得以转化为字符串,在地址栏或者页面中传播。

之后的附件方法会用到该原理,因此在这里列出来。

三、扩展名与文件内容的关系

计算机新手会认为,似乎变了扩展名(extension,也叫“后缀名”),文件就发生了变动一样。其实,文件内容是不变的。那么扩展名是干什么用的呢?

扩展名是用来表示一种约定的,它建议操作系统的壳(shell)采用某种方式来解读该文件。例如,在 Windows 下,我们双击(不只是双击,更多应用请参见其他文档)一个 .txt 文件的时候,Windows 的壳,也就是资源管理器,会到注册表的 HKEY_CLASSES_ROOT 中寻找与 .txt 扩展名相关的信息,并找到“我应该用记事本通过命令调用的方式打开该文件”的结果,于是我们就看到记事本打开了一个文档。如果我们换一个扩展名,操作系统的壳会按照新的约定来解读这个文件。

为什么要提这个呢?那是以为操作帖里有重命名的操作。重命名的时候,千万不要认为文件变了。同时,似乎 Windows Media Player 只通过扩展名来识别文件而不尝试读取文件头,因此可能要非常注意这一点。

四、串流(streaming)与流媒体(stream media)

我们一般在磁盘上看到的文件是十分完整的——游戏、音乐、电影,等等。但是在网络中,需要实时传输的场合,例如视频电话,就需要用到串流技术。

串流技术的原理很简单。可以串流播放的文件就是流媒体文件,其十分简化的结构模型如下:

文件头(可选)-数据包-数据包-数据包-数据包-数据包-数据包-数据包-……-数据包-文件尾(可选)

我们看到听到的信息,如视频和音频,它的信息就包含在数据包里。我们不断收到数据包,本机的解码器不断解码,然后呈现出来,就成了我们所见到的东西。

(说起来简单,如何做数据包的同步,以及协议和帧设计,其实是很麻烦的……)

只要以帧(frame)为基础的文件类型,一般都可以转化为流媒体。常见的有:MP3(MPEG Audio Layer 3)、WMA(Windows Media - Audio,基于 ASF)、WMV(Windows Media - Video,基于 ASF)、RA(RealAudio)、RM(RealVideo)、Flash 视频(Flash Video)、ASF(Advanced Streaming Format)等等。

例如,iHome 上的直播就是采用 ASF 作为载体的。其特点是,并不存在完整的文件,而只有缓冲区(体现为文件或者内存数据块),并随着时间不断更新,直到停止播放时被删除/释放。

为什么要提这个呢?这是因为未来花园支持嵌入流媒体文件链接,这样如果通过某种方式(例如只上协议链接),或许也可以通过这种方式播放大文件(未试验成功)。

友情提示:建议不要嵌入 RealMedia 相关文件(.ra/.rm/.rmvb 等等),因为许多人的计算机上是没有 RealPlayer 插件的,而且有些浏览器对这些插件的控制十分严格。

五、站点的相对路径

有经验的同学应该知道,在多数操作系统中,“.”表示当前路径,“..”表示上一级路径。而且有同学也会注意到,在学习 C 语言文件操作的时候,示例里一般是这么写的:

FILE *fp;
fp = fopen("filename.ext", "r");
...
fclose(fp);

有没有人注意过,为什么我们写的是“filename.ext”,操作系统却能准确地找到我们所指的文件呢?(前提是,小白们将文件放在了正确的地方……见下文。)

先讲一下两个概念:绝对路径与相对路径。绝对路径(absolute path)指的是指定了完整路径的路径(例如 C:\Windows\System32\cmd.exe``,/usr/some_dir/file)。其他的就是相对路径(relative path)。

那是因为在程序运行时,有当前目录(current directory)的概念。在进行文件操作时,操作系统会检测所输入的路径是绝对路径还是相对路径,如果是绝对路径则直接寻找相应的文件,否则按照一定规则在各个目录中寻找。例如,在 Windows 中,是“当前目录→%SYSTEM%%WINDOWS%%PATH%中的各个目录”。(插一句,在运行程序的时候,工作目录(working directory)指的就是将被设为默认当前目录的目录。)

接着前面的例子,按照该规则,操作系统最终找到了我们所指的文件,然后打开/创建。

当然,我们也可以这么指定:

fp = fopen("dir1/dir2/dir3/filename.ext", "r");

这样的含义是,按照之前的规则进行搜索时,要加上子目录 /dir1/dir2/dir3(注意斜杠的位置)。

网站的链接也采用了这个概念。例如,我们会在一些地方发现这样的链接(这个在之后的页面分析中会有用):

/level1/level2/page.htm

这个含义和刚才讲过的很相似,指的是在当前域名的基础上,加上这个相对路径所得到的最终地址。

以未来花园为例,其域名为 buaabt.cn。那么我们再指明一个相对路径 /showtopic-374580.aspx(注意斜杠的位置),那么得到的就是下面的链接:

buaabt.cn/showtopic-374580.aspx

浏览器同样遵循这个规范,于是将这个相对路径映射为最终的地址(若未指明协议,默认为 HTTP)。到我们需要打开那个链接的时候,会打开正确的地址。

六、流(stream)

这个帖子里3190_iHome进行了实验,雷米莉亚·斯卡雷特(用户,不是大小姐ww)指出了“不要调戏进度条”

其实进度条能否被调戏,和流的性质是有关系的。

什么是“流”呢?我觉得,将其形象地想象成水流就好了,访问者看上去数据像在数据流入(读)流出(写)。流的实质是缓冲区(buffer),随读写需要,访问者从这块缓冲区读数据,或者往这块缓冲区里写数据。对于可读的流,缓冲区的数据量低于一定值时,会从源处加载数据以尽量“充满”这个流,直到无剩余数据可读;对于可写的流,如果写入的数据超过了缓冲区大小,则将其真正地写入目标(也可以指定即时的操作)。当一个流关闭时,缓冲区将被释放,所含数据被清空,对于可写流,数据将被写入。内部实现可以用缓冲区指针的方式,所以合理用 C 中的文件函数就可以模拟 C++ 中的 istreamostream,毕竟是差不多的。操作者可以一直调用读取或者写入操作,不用间断(需要相应支持),因此才像连续的水流一样。

流有多种,只需要数据+缓冲区,就可以作为流。例如,本机的文件流、网络的传输文件流、作进程内部传输数据用的字符流,等等。

既然有读写,那么是否还支持这两个特征呢:获取/设置流长度、定位(seek)?答案是,未必。有的流是支持的,有的流不支持,视源的性质与实际编写的代码而定。例如,基于本地文件的流一般是支持定位的,只需要移动文件读写指针就好了嘛。但是网络传输流一般不支持,服务器只负责将数据块连续地传给用户,并不需要实时响应用户的定位操作。(问:那么断点续传怎么实现呢?答:如果被调用方提供了初始位置参数,返回指定初始位置开始的流,那么就可以实现断点续传。)

我们在播放器中拖动进度条,其实就是在请求相应位置开始的流。所以,附件法返回的流不支持定位,也就不能调戏进度条;但是 iHome 法是基于网络文件的(这个文件可是实实在在的),所以这个流支持定位,也就可以调戏进度条啦!

附件法(以 FLV 为例)

请先准备一个 5 MB 以内的 FLV 视频文件。相关的压制技术不在该原理的讨论范围内。

其他大部分格式,因为作者懒,没有测试(除了 WMA 测试未通过)。

将该视频作为附件上传(利用花园的附件功能)。如果要问为什么在选择文件的对话框中找不到的话,那是因为花园系统设置了一个扩展名的过滤器(filter),只显示支持的文件。什么叫“支持的文件”呢?就是那些在花园的环境下经常用到,而且合理合法的文件格式啦。例如 .rar/.zip 是压缩文件,.ssa/.ass/.srt 是字幕文件(多见于电影版和动漫版),都是花园众人常常下载资源之后需要的。

那么有没有办法“蒙骗”花园系统,让其能支持自己的文件呢?有:在基础篇中就讲过,修改文件扩展名,不影响文件内容。而且,当前花园的系统只认扩展名,不检验文件内容是否真的是声称的类型,因此我们可以钻这个空子。

可以选择添加新的扩展名(双扩展名文件,有些防护软件会出现警告)、直接更改扩展名等方法。具体看个人喜好。更改之后就可以上传了。

友情提示:请注意,要真正地修改其扩展名,请在资源管理器的选项中取消选择“隐藏已知类型文件的扩展名”。同时,不要改为图片类的扩展名,因为如果如此,花园系统会尝试加载图片;当然加载会失败,那上传也就失败了。

上传完毕之后,我们可以看到帖子中生成了一个附件代码:

[/attach]645110[/attach]

(为了解除附件引用,我在第一个attach前加了一个“/”,否则会作为代码中的附件出现,囧。实际使用时请去掉这个斜杠。)

直接浏览帖子时看起来像这样:

Pearl_White_Story.flv.zip

在保存帖子之后,我们可以看到attach标签的作用:指导后台在用户请求该页面的时候生成一个指向该附件文件本身的链接。

Link

可以看到,链接的格式非常直观。这个链接的作用是,向域名根目录下的 attachment.aspx 请求指定附件代码(attachmentid 参数的意义)的文件。此时,返回的是一个文件流。一般的浏览器会获取正确的文件名,并显示出来。(这里插一句,有些同学用迅雷之类的软件下载花园的种子,文件名显示为 attachment.aspx,就是因为迅雷未正确解析花园传来的文件流。在种子下载上放弃迅雷吧孩子们!)

然后我们就可以利用花园的“插入 Flash 文件”功能,或者flash标签,就像一般的插入播放器地址一样,插入该视频文件。

[flash]/attachment.aspx?attachmentid=645110[/flash]

为什么插入成这个样子,请阅读基础篇的“站点的相对路径”一节。

如果插入为完整路径(buaabt.cn/bt.buaa6.edu.cn/ipv4.buaabt.cn 开头),会造成部分用户访问异常。例如插入限定为 IPv4 的地址时,使用 IPv6 的用户无法访问该链接,也就无法播放该视频;反之亦然。花园的地址自动转换仅限于url标签。(感谢lansure指出这一点。)

等一下,虽然离成功很近了,但是还差一点!由于某种原因,flash标签的解析有点问题。如果直接使用上面的地址,会发现播放器无法播放,即使你的附件的确是 FLV 视频文件。此时要给 attachment.aspx 一个新参数 filename,限定输出的文件名。文件名自定,只要是以 .flv 结尾就可以了。修改之后如下:

[flash]/attachment.aspx?attachmentid=645110&filename=pearl_white_story.flv[/flash]

附件的方法到这里为止,就介绍完毕了。最后,由于我们直接与 attachment.aspx 交互,因此也可以指定别的附件的附件 ID 哦。附件 ID 的获取方法在上面图示里已经出现了。

这里是效果:

[flash=600,20]/attachment.aspx?attachmentid=645110&filename=pearl_white_story.flv[/flash]

iHome 法(以 FLV 为例)

请先准备一个 100 MB 以内的 FLV 视频文件。相关的压制技术不在该原理的讨论范围内。

其他大部分格式,因为作者懒,没有测试(除了 WMA 测试未通过)。

首先,我们需要构造(说得这么高端……就是“找”啦)一个数据源。选择 iHome 提供的视频上传应用并上传一个视频。

在上传之后,在新鲜事中打开刚刚上传的视频,记录下地址,例如本例:http://i.buaa.edu.cn/plugin.php?pluginid=video&ac=view&vid=233注意如果想保护个人隐私,请删除自己相关的新鲜事记录。

接下来就到了页面解析的阶段了。我们来查看一下页面的信息。不同浏览器的界面有所不同,不过操作和原理是类似的。这里我们以 Google Chrome 为例讲解。

我们的核心目标是:获取视频的真正地址。之后此处所有的操作都是围绕着这个目标展开的。

我们可以选择直接看源代码(适合老手),或者借用浏览器自带的调试功能——审查元素(适合新手)。前者么,其实看到源代码,一切都了然了,就不用多讲解了。后者适合新手的原因是浏览器会自动整理代码风格、缩进等,比较直观方便,本质上和前者是一样的。

iHome background

马上看到了这个页面的结构,由许多分块元素(<div>标签所指示的)所组成。鼠标在其上移动的时候,页面会实时展示该分块代码所对应的页面元素,因此定位非常方便。

想想,哪里会用到视频地址呢?很显然是播放器嘛。对网页里的视频播放器稍微有点了解的同学会知道,这些大多是基于 Flash 技术(少部分是 Silverlight)制作的。知道历史的同学也应该知道 Flash 的发展史,Shockwave→Macromedia→Adobe。因此我们的关键词也确定了,开始寻找有用的信息。

很快我们就能发现,这一段可能有很大的帮助:

Key fields

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="660px" height="495px">
<param name="movie" value="ihome.swf">
<param name="quality" value="high">
<param name="allowFullScreen" value="true">
<param name="FlashVars" value="vcastr_file=attachment/201409/26/3663_1411697963lE29.flv&amp;LogoText=ihome&amp;TextColor=0x0000FF">
<embed src="ihome.swf" allowfullscreen="true" flashvars="vcastr_file=attachment/201409/26/3663_1411697963lE29.flv&amp;LogoText=ihome&amp;TextColor=0x0000FF" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="660px" height="495px">
</object>

是不是看到什么了?嗯,很好。

可能有过单机程序开发经历的同学会觉得有点奇怪,为什么没有显式的加载文件代码呢?

原来是作为参数传递了过去。这里出现了两次,第一次是在<object>节点的<param>子节点处,名称为“FlashVars”;第二次是在<embed>元素的 flashvars 属性里。(对于新手,如何解析这个链接,请参见基础篇的“ASP 页面/PHP 页面的参数传递”。)

我们可以见到最重要的一个参数是 vcastr_file,值是 attachment/201409/26/3663_1411697963lE29.flv。(“&amp;”是“&”字符的转义符,这里位于一个 URL 中,因此会这么出现。其他两个参数猜测是 iHome 播放器的水印参数,不过目前还没看到有什么用途。)

然后参见“站点的相对路径”节,根据当前的域名 i.buaa.edu.cn,我们就可以拼出视频的完整地址:

http://i.buaa.edu.cn/attachment/201409/26/3663_1411697963lE29.flv

然后嵌入未来花园的 Flash 播放器:

[flash]http://i.buaa.edu.cn/attachment/201409/26/3663_1411697963lE29.flv[/flash]

大功告成。

这里是效果:

[flash=600,20]http://i.buaa.edu.cn/attachment/201409/26/3663_1411697963lE29.flv[/flash]
分享到 评论

制作游戏引擎中……(public demo 已经放出,欢迎做小白鼠)

花园地址


2014-10-01

demo 在 http://buaabt.cn/showtopic-377837.aspx


我在担心大神看到这帖子只会一笑置之啊……

这帖子是为了记录开发过程而写的。为什么放在漫版而不是软件版呢?个人觉得漫版更亲切一些,而且能过滤掉大多数小白……对不起最后这个半句有点冲,但是我的确认为那些只是纠结于软件的使用的人很麻烦……

GLaDOS:

At the Enrichment Center we promise never to value your safety above your unique ideas and creativity. However, do not destroy vital testing apparatus.

我大 Gatekeeper 镇楼。

Gatekeeper - Uiharu

开发引擎中,代号 Haru。

目前需求:

OS: Windows Vista 或以上(因为 MonoGame 使用的 SharpDX 强制加载 DirectX 11;我机器显卡不支持 OpenGL v3 因此也无法使用 Windows OpenGL 模板)。嗯跨平台最后肯定要解决 XP 这一块的问题的,实在不行就自己去修改源代码编译 SharpDX。

其他所需组件:

  • OpenAL
  • 如果要播放某种格式的视频,当然需要对应的解码器……

目标:

  • 开源
  • 跨平台
  • 快速开发
  • 开放接口
  • 组件化

(目前的)终极目标:

  • 成为兼容 KiriKiri 的跨平台引擎

有些组件授权为 GPL,所以引擎相关部分的开源是必须的。不过由于引擎组成仍然不完整,因此先不将代码公开。

有些组件来源于网络,我记录了相应来源。不过大多数没达到我的要求,所以我对其做了修改。

基于 MonoGame,所用语言为 C#、C++/CLI。由于目标是跨平台的,因此项目中用的大部分是可移植的代码;小部分平台相关的代码分离了出来作为某些抽象类/接口的实现。

这是我第一个涉及 C++/CLI 的项目,感觉确实挺好用的……

现在已经实现的功能(会持续改进):

  • 基于事件的 GUI 支持
  • 音频支持
  • 多字节字符集的支持(*)
  • 自适应坐标系统
  • 外置调试器

部分实现的功能:

  • 视频支持(现在还未实现直接读取视频中的音频帧&同步)

将加入的功能:

  • 脚本(准确来说,现在为了引擎演示,做了一个小型的脚本分析器,不过最终肯定不会用这个)
  • 类似 VPK 的资源管理
  • 插件系统
  • 自适应帧率调节

优势:

  • 运行于 Mono/.NET 平台,充分利用符合 CLS 的语言的优势,不需要纠结于底层代码。以前我做的是直接基于 SDL 的,文本&视频先不说,单是对象生命周期的控制(以及 STL!)就很令人不好了。自从换了 MonoGame,腰不疼了,腿不酸了,吃嘛嘛香!
  • 担心效率损失?嗯,确实会有一点,不过至少现在没明显缺陷,而且我也会尽量将其做好。例如现在的演示中,主界面背景就是 Strawberry Nauts(不要问我为什么又拿这个游戏开刀)的 OPMV 文件(视频),在我这渣本上照样能跑出 36 fps,资源占用也与 MPC-HC 播放同一个视频时相当,还别提视频上还有一个动态组件(用作简单特效演示)在跑着……前两天就在手工优化这个,头疼死了……游戏主内容的画面,一般是 50~60 fps(XNA/MonoGame 固定刷新频率模式时的封顶刷新频率)。{2014-09-07 16:15 CPU 占用率正常在2%~8%,播放视频大约在20%。这个占用率相比直接用 C++ 从底层操作 DirectX 来说确实高了一些,不过还是在可以接受的范围内的。}
  • 该引擎支持多字节字符集,目前绘制效果也与 KiriKiri 相当。
  • 可扩展性。现在的演示是一个小小的 AVG 引擎,不过就像 KiriKiri 一样,其能力不止于此。完全可以继承一些基础类(也可以选择自己实现接口 = =)之后做 RPG/STG……据说《魔法使之夜》很华丽(我个人没看过),假设某一天做好了,可以移植来试试。实现插件系统之后就可以在引擎的基础上写插件,而不用修改本身的代码了;甚至做成 foobar2000 的结构(需要好好准备)……(这个方面推荐看一下 SharpDevelop 的代码。)

Bugs & 改进:

  • 视频播放组件有少量内存泄露,还没查出来在哪里……
  • 文字绘制资源占用率稍微高了一点(满屏文字的话,帧率下降到30),不过可以再优化。
  • 组件结构还有少量变动,我面向对象&组件化是渣渣(多看书!)……

另外,在已有的组件的基础上,今天写这个小小的 AVG 演示,连同简单脚本解析器一起,加起来也不超过一个小时……够快的……

完成这个阶段的目标的时候,就可以考虑将整个引擎脚本化了。不过在此之前,我要去学编译原理……(对,还有之前的弹幕的事……)

脚本处理,综合所用环境,可以考虑用 Roslyn(类 C#),用 Jurassic(类 JavaScript),或者基于 TypeScript。为了更好地使用工具,应该先将原理弄清楚……

Q&A

Q:为什么不用 KiriKiri?

A:我讨厌无类型语言!(←知道我在说谁吧)而且 KiriKiri 主程序用了许多 Windows API 导致无法移植到其他平台。W. Dee 正在做 KiriKiri 3(目标是跨平台),不过总觉得吧,我们可以自己实现一个这个……而且不管对于希望写小游戏的人还是游戏公司还是希望研究这个的人,C# 明显比 C++ 好理解多了对吧,开发效率也高一些……(而且 KiriKiri 缺少中文或英文注释!连文档都是日文的!叫我这种日文渣怎么扫啊!)至于 KAG,那是见仁见智的事情……高级制作肯定不止要用 KAG,至少要深入 TJS 吧……这一段看以后脚本化了怎么设计吧。

Q:为什么不用 PyGame/Ren’Py?

A:我讨厌无类型语言!(←知道我在说谁吧)而且 Ren’Py 是基于 PyGame 的,PyGame 是基于 SDL 的,对多字节字符(例如,中文)的支持很蛋疼……好吧即使不蛋疼但是写起程序就那类型问题还是很蛋疼……

Q:为什么不用其他的,例如 ALICESOFT 的,或者 ONScripter?

A:不!用!就!是!不!用!


在最后,要感谢 MSTC 的成员。

我加入 MSTC 之后第一个参与的是 SpaceMoto(开发这个的同学我忘了你的名字,但是还是要吐槽你的拼写),一个用 XNA 开发的游戏。这个东西似乎没有流传到外面。(上一年大神开发的类似性质的 Ocean Scream 可是作为编程竞赛的平台的。后来微软策略改了,SpaceMoto 后面也没听到什么消息。)不过呢,其实主要是我和另外几位(另外几位是大神)在讨论设计之类的问题,不过后来我也没怎么参与了,这位同学一个人将 SpaceMoto 写了下来……

然后大二这一年,我在 MSTC 中非常非常不活跃,仅仅是负责了第一次招新……我都怀疑自己能否有能耐和那些大神们坐在一起选新人……

不管怎么样,Ocean Scream 的源代码我还保存了一份。一年前我看的时候,总是搞不清游戏的运行机制。当时思维主要还在 VB6 的阶段,VB .NET 也只是简单应用;代码里各种东西觉得乱七八糟的,看不懂。一年之后,我终于有足够的能力做 MonoGame 的开发了,能读懂为什么要这么写代码了,能做一点应用了。

说实话,我不知道这一年来我在技术方面积累了什么,好像没什么吧,但是这种感觉真的很神奇……

将我领进门的 MSTC 的成员们,感谢你们!特别是6系和21系的几位大牛。(在花园里点名表扬好么?好的话就点名了吧……)

(为什么弄得有点像“师父在天之灵”的样子……诶诶我不是这个意思……)


PS. 因为是无类型/弱类型语言,而同时被我讨厌的还有 MATLAB、BASIC(不是 VB)和 JavaScript。

PPS. 人家 W. Dee 早我14年做出一个应用广泛的引擎,作为后辈,追是不容易的,但是还得有人有这个志向吧。

PPPS. 看演示的同学表示演示内容很蛋疼。

PPPPS. 有人会说:“你做了引擎,没有好内容,照样没有好游戏。”没错,所以要做成品游戏,还得找美工&音乐。

PPPPPS. @紫晓暮雾 关于之前提到的那个制作类似手绘2D效果的玩意儿,这个假期看了一些动画设计理论的书,表示我原来提出的,我还没有能力实现。就是说,以我计划能达到的技术水平,做出来的东西还无法达到设计师需要的水准。所以暂时搁置吧。但是还是要考虑的,不留 loose end。(← General Sheperd)

PPPPPPS. 如果你们在想我是6系或者21系的,那就错了。 *2014-09-07 13:13 加入


2014-09-07 12:50

(此内容针对 AVG)

在脚本指令里多加一条,游戏页面中加入一个图像控件,一个简单的立绘系统就完成啦~由于每个元素都可以应用特效,所以拓展是非常方便的~

2014-09-08 (因花园暂时关闭而未发上来)

更改了字体渲染后端。现在可以脱离 System.Drawing 运行。(不过附加问题是排版上有时有 3 px 左右的偏离,以及字形的控制要自己写……好吧我得看看文档……)

另外一个重大改进是,解决了锯齿&字体颜色问题。这里给可能会遇到该问题的后人留解决关键吧:Microsoft.Xna.Framework.Color 的颜色格式其实是自乘(premultiplied)的。相关信息见链接。怪不得 PixelFormat/SurfaceFormat 里还有 PARGB(就是 Premultiplied ARGB 啦)的枚举值……

2014-09-09

修复了一个透明度bug。此外,AVG 子系统开始制作。

2014-09-11 *

Public demo 有希望了……不过马上就是国赛,然后立即开始上课,体力可能会不济,时间推迟一些……

嗯,附加一句,以现在的框架,写起来就和写 WinForm 程序一样。

2014-09-12 凌晨 (00:15)

给字体布局写了一个解决方案,多次测试暂时没发现问题。因为所用的东西和 TrueType 的文档有些地方不一样(或者是我的理解问题),所以还无法验证该方案是否真的没问题。

另外 MonoGame 的最小化-恢复问题真的要命啊……还没有一个好的方法解决这个问题……

今天早上就要开始国赛了我是不是在作死……

2014-09-12 凌晨 (02:40)

睡觉之前想还是解决一下窗口大小的问题吧……结果这么下去就继续作大死了。

刚刚解决(在 Windows 平台下,其余未测试)。结果表明不是 MonoGame 的问题,而是我原来处理方式有误。

上社区&调试了半天,发现最小化时会发送一次 ClientBounds = Rectangle.Empty 的消息。然后对其进行响应,保存并恢复状态啥的……两个多小时就这么过去了。

附加的提示:建议开启 IsFixedTimeStep,这样 XNA/MonoGame 会自动帮你处理刷新速率问题。如果设置为 False 的话,在窗口大小为零时由于 Draw() 立即返回,导致 Update() 被几乎是死循环式地调用。

另外,如果在最小化(此时位置为 (-32000, -32000),大小为 (0, 0))时,如果不按照默认处理办法(直接按照新窗口大小为0进行自动调整),而将缓冲区大小强制设定为一个非零大小的值(例如 (160, 90))并绘制,会出现一个 CPU 占用率也不高但是所有操作都变得非常缓慢的问题,不知道是什么造成的。在这里记录下来。所以我才写了一段很别扭的代码用来检测和避免各种恶心的情况。找原因和解决,这两步都花了很长时间……

看社区里人们遇到的问题,例如早期 OpenTK v1.0 的 (1, 1) 问题(导致无法最小化;在 OpenTK v1.1 中修复为 (0, 0),就是现在的样子),会手工解决的人不多,所以哀鸿遍野,感觉我用的还是经过多次改进的东西,算轻松了……

看来是真作死了。

2014-09-12 凌晨 (03:57)

本来以为好了,谁知道在失焦和最小化的时候还是有卡顿的现象……于是琢磨了一个小时……现在算是可以了,但是代码里一堆“// HACK:”……

2014-09-23

开学之后果然很多事情就出现了。今天脚本系统(原型)才初步测试完毕……不过目前已经隐约有游戏的影子了……

2014-09-26 凌晨 (01:44)

卡顿的问题还没解决,只好限制重绘时机了。另外,有时居然发生音频值错误,而且根据调试结果,是多次多点偶然的……

一条线制作完成。嗯细节么……这是一个 technical preview 而已,所以八分相像即可。另外,还是拿SN开刀

2014-10-01 凌晨

找了第一只小白鼠试验运行了一下。这位小白鼠今天早上还要出队爬山,感谢啊感谢。被所采用的组件坑了不少。

先记下来吧。VCRT12(某个蛋疼的家伙居然拿 VS2013 来编译,在小白鼠的机子上直接就初始化失败了,幸亏我还是有点经验,去查看了导入表)/OpenAL,绝对绝对不能缺。

2014-10-10

更新了所有的集合操作逻辑,妈妈再也不用担心迭代器无效啦~(当然,也有限制,例如更新时机需要掐准。)

分享到 评论

MonoGame 3.2 下,截屏与 Texture2D 的保存

博客园地址

查看更多

分享到 评论

MSIL Hello World

博客园地址

查看更多

分享到 评论

路易兹刷屏成功!

花园地址

鼓掌!

2014-08-21 22:13 留念

This was a triumph

I’m making a note here: HUGE SUCCESS

It’s hard to overstate my satisfaction

Shot 1

Shot 2

Shot 3

Shot 4

Shot 5

分享到 评论

弹幕君-BiliBili高级弹幕语言编辑器

花园地址


DanmakuKun_Debug_01a_alpha.rar

需要 Microsoft .NET Framework 4。

Shot 1

Shot 2

这是什么?

简单说,就是写B站高级弹幕用的。如果是零基础的同学……这个……

当然,如果要发高级弹幕,必须要有的账号&硬币&权限(本人没有→_→)。以后可能可以做一个interop的程序,在本地也能测试弹幕。

当然由于我也没条件测试高级弹幕,所以不知道对于那些直接用记事本/emacs/UE/Npp的大触来说这个如何……(说白了还是请人家做小白鼠……)

附带了一段B站上的 GalGame 弹幕代码(gal.js),可以用这个做实验。

功能?

主要功能为自动完成。当然由于不是基于语法引擎的(如果将来有机会,应该会改进这个),而是基于正则的,所以其实相比 VS7+ 是非常非常渣的,不过能用233

有自动完成&参数提示的功能。若是结构字段提示,请输入“@”。

另外,由于无法识别是否该停止自动完成,因此在不需要(例如编辑字符串,需要输入“.”)的时候请手动关闭(见菜单)。

现在的文档不是很全,不过至少B站的文档是都转下来了(这编辑量……)。

可以编辑 Resources 文件夹下的以下文件补充信息:

  • comp-classes:内置类名称
  • comp-funcs_props:对象类型&属性&函数
  • comp-objfields:新建对象时的字段(参考:JSON)
  • comp-snippets:代码片段
  • insights:函数信息

本人用 WPF 的第一个程序,数据驱动做得不好(思想还停留在 WinForms 的时代 = =),请原谅。

然后呢,里面有些功能未开放:

  • 打印
  • 查找&替换&转到
  • 试验运行(将来实现interop之后再开放)
  • 右键菜单

有些功能处于试验中:

  • 代码缩进(最终目标是代码格式化)
  • 静态自动完成(= =)
  • 自动字段提示(现在要输入“@”)
  • 自动完成状态控制(现在要手动 = =)

有些功能作为预览(未整合):

  • 语法树

还有什么?

Q:为什么不是以 Eclipse/VS/jedit 的插件形式做的?自己实现这么多东西不麻烦么?

A:不是不熟嘛……练习嘛……(好像又重复发明轮子了?)

请各位菊苣不要喷啊……本人水平有限……

分享到 评论

7月番

花园地址

按:还是那么青涩。


7月番快一半了,觉得还是吐槽一下吧。

本人是看TVA而未看原作(若有)的,非核心层成员,因此可能会有偏颇。换言之,这张表带有很强的主观意见。

这里只列出了我至少看过一话的作品。


刀剑神域II

看完了第一季就觉得,自从SAO结束之后就没什么好看的。我对诗乃不感兴趣(好像除初春外列表里就没别短发妹子),这一季除了我百吐不厌的光剑,就只剩梶浦由纪的配乐了——不过这一季好像功力又下降了?看着GGO拖12话。

(OP的空耳……在B站开始整顿之前,是充斥着“马云我XXX”的,23333333333333333333333)

魔法科高中的劣等生

是4月的。现在看着龙傲天使用反科学装13真是乐趣。所以这番必须要配合弹幕看,要不味同嚼蜡。哦其实我现在加入了お兄様计数党,即将加入bibi计数党。

金田一少年记事簿R

也是4月的。我也不知道为什么还在看……也许只是对年代稍微久一点的画风更感兴趣?

Aldonoah Zero

虚渊玄+泽野弘之的超级享受啊。我的评价是本季度最佳。虽然脸有点崩,不过掩盖不了剧本的光彩。配乐就不多说了。继拔剑神曲之后,降落神曲(核爆神曲)要诞生了……

等三话定律的,请在第三话ED后得到满足。


生存游戏社

这个……官方吐槽得我们观众要反吐槽了,呵呵。本季度第三吧。女主的头有点奇怪。前几话的小故事都还不错——就是与“生存游戏”(用BB弹互撸)的主题……

最精彩的还是第一话吧,毕竟是与主题最相关的,而且旁白大叔的乱入也是最充分的。不知道后劲如何。

斩!赤红之瞳

我主动去百科了。好吧,从明天(2014-08-11)开始,将要虐了。其实第一话就十分高能,附加颜艺,出于最小精神污染的考虑还是少看一点为好……

角色的塑造还可以。可怜孤睾的战士。

月刊少女野崎君

漫画作者吐槽漫画作者的作品。野崎的生活为少女漫服务,就像爱徒的生活为胖次漫服务一样。可能是由于4月就有类似的TVA(附带钉宫),所以对这个没太大感觉。(08-11 11:28 这感觉应该是萌娘少了多了萌汉子的缘故……而且这论质量这番强于《漫画家与助手们》。)

还是吐槽一下女主脸的纵横比不对好了。

人生相谈

对不起,没认真看……没法认真看,因为太乱了。


搞姫日常

看了一话,还是觉得对可爱的男孩子无法有兴趣……

Re:滨虎

虽然血浆多了一些,不过“大布局”类的剧情给我的印象还是不错的。本番有种“小型美剧”的感觉。

最好看的,其实是主角与相当的反派——“一枚硬币的两面”——相斗争,而不是开挂/后宫的主角拿着神剑/光剑虐渣渣。

精灵使的剑舞

第一话前半部分我看了好几次,以确认自己没有看漏什么剧情。最后得出结论,这开头比我(与人)说话的跳跃性还强,而且缺乏逻辑。

设定上就与零之使魔神似,海报与 Infinite Stratos 神似。五河琴里&夜刀神十香,I-401,古手川唯,塞西莉亚&织斑一夏,就组成了这个剧的主角团。嗯,不仅外貌,性格与身份都(几乎)一样。

然后就看着迟钝的男主被疼♂爱。

其实主要是真爱剧有夏娜,后宫剧有零使,再看其他的我已觉无味。

花舞少女

OP着实让我觉的惊艳了一下,还让我专门查了一下“yosakoi”(よさこい)是什么东西。从第二话开始觉得,这是五人版的《K-ON!》啊……然后就没心情了。对不起我将其和摇曳百合对比了一下。(08-12 21:55 不,比这个更严重……赤裸裸的占有欲啊……)


魔法少女☆伊莉雅2wei!

小学生x百合真是太棒了!夫人我喜欢你啊!

是的,除了以上两条,阴谋什么的我才不管……

修业魔女璐璐萌

这个……难以理解,风格也与1月的魔女的使命类似,不过这次男主角可就只是将女主作为魔法发生器使用而已。←还未必想用

向山进发

除了看百合听声优,其他好像也没啥……相关的技术请自行阅读相应刊物。


白银的意志

可惜启动钥匙是短发。另外,时宗啊,请看隔壁伊奈帆训练机疯狂吊打神机。不要总是犯二,如果不是你身边有老手在,早就不知道挂了多少次了。到了第4话实在无法忍受其中二弃了。

东京喰种

实在不行,看着就要吐了,不知道为什么这么多人喜欢。

日本国有铁路公安队

涉及到具体职业的类型(编辑部的故事?233)不怎么喜欢。

普通女高中生要做当地偶像

这个长长的而且无法上口的标题是怎么回事?!而且看了第一话之后,再次引发了我对偶像动画的不满。

Psycho-Pass 新编集版

已经看过了,而且感觉新编集版没有原来那么友善……

东京残响

我不喜欢被策划了啪啪啪的家伙挟持啊!(08-11 11:28 再看看。)

(08-15)嗯,也像追美剧一样,不过比《滨虎》好一点。如果能把里面的女性角色去掉(一个渣渣,一个心理hentai)就更好了。

真·Strange+

存在本身就值得吐槽。

女神异闻录4 黄金版

一看就像是游戏的标题,查了之后还真是游戏……游戏改编的动画呢,玩家的操作变成了角色自己的动作,这种失落感可想而知。

黑执事 马戏团篇

这酸爽……我是不能接受了。


JoJo的奇妙冒险 星尘斗士

还是4月的。果然是年番,“阿拉伯胖子”都不放过……欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉欧拉

三坪房间的侵略者

大沼心啊!想想笨测和C3,路人就是面容最祥和的存在。画面这次正常了一点,没有用彩色斑点的同时将人脸砍一半了。

同样值得一提的还是这个番的展开速度,看着看着我就有种被拉住了脖子的感觉。

东京ESP

也是很精彩的。本季度第二。眼睛有点奇怪,不过比M3黑钢好多了。类似X战警的设定也挺不错的,剧情节奏把握很好,就是会突然发现进度条挂了……


其他的没看过,一般而言是看了标题,不对劲,就不看了。

真不对劲的有 Dramatical Murder 和 Free!。(不过比不上标题看似正常的《世界第一初恋》——我编索引的时候好奇搜索了一下,然后就被精神污染了。)


本季度的OP/ED/BGM

刀剑神域II

Startear(ED)歌曲本身不特别,但是蜡笔风格画面与剧情的反差,以及蓝色的使用,感觉不错。

Aldnoah Zero

质量真心高。Heavenly Blue(OP)和 aLIEz(ED2)都很不错,尤其是后者。

生存游戏社

ぴてぃぱてぃサバイバード(ED),一群人唱歌技巧不怎么样,不过配上画面还是很萌的。

月刊少女野崎君

君じゃなきゃダメみたい(OP)蓝调风十足。ウラオモテ・フォーチュン(ED)含有电音,不过还是挺喜欢的,配上画面美如画。(有谁想加入否定词计数党的?)

Re:滨虎

千の翼(OP)与剧情的切合程度很好,毕竟是专门为了这个写的。电吉他将气氛带动起来了。

精灵使的剑舞

精霊剣舞祭(ED)风笛的声音我是很喜欢的……

花舞少女

花ハ踊レヤいろはにほ(OP)、花雪(ED)两首是我认为的本季度的最佳歌曲。

白银的意志

Tough Intention(OP)曲子搭配画面(如果不计里面坐着的人的话),还是不错的。

三坪房间的侵略者

恋はみるくてぃー(ED)曲子本身就不错,画面翻转的格子点缀感觉莫名地好。

2014-08-15 +

东京残响

虽说OP和ED给我的印象都不好,不过BGM在一些关键点上是非常不错的。

其实还有些是偏流行风的(如斩!赤红之瞳的ED こんな世界、知りたくなかった。),这些普通的就不提了。

PS.

本来想做 aLIEz 的坷垃化的,不过为了保险起见搜索了一下,找到了这个作品:

http://www.bilibili.com/video/av1394449

后来找到了这个,颠覆了我对金坷垃故事的认知:

http://www.bilibili.com/video/av1377356 (真·神曲)

于是就不想再做了。

PPS.

刚刚发现网上也有人在做这个哪!

http://tieba.baidu.com/p/3186968675

和我的口味不是和一致就是了。

分享到 评论

mciSendString 的两个小坑

博客园地址

查看更多

分享到 评论

发布动漫资源RSS阅读器

花园地址


RssReaderForAnime.rar

RssReaderForAnime_Release.rar

第一个压缩包含源代码&编译结果,第二个压缩包仅含可执行文件&配置文件。

需要 Microsoft .NET Framework 2.0 作为运行环境。

简介:

订阅资源站的 RSS Feed 以获取最新的种子列表。

未来花园也有自己的 RSS Feed,见用户控制面板

注意这个程序的工作原理和 AMG 不同,这个程序相当于小型 RSS Feed 阅读器。由于 RSS 自身的特性,并不能像抓取网页那样自由(例如浏览种子历史记录),而只能收到推送的信息;但同时,可定制性、可扩展性更强。这个程序一般用于追资源站的新种上。要获取更全的信息,可以见 AMG:http://buaabt.cn/showtopic-352936.aspx,不过编写起来麻烦一些。

另外,明天就要搬到本部去了,在那里不知道网络环境如何;如果糟糕的话……是不是难以上漫版了呢……

主界面

主界面。按钮依次为:订阅 RSS Feed显示 RSS Feed 资料页面打开目标页面复制链接打开链接RSS Feed 源管理关于

订阅 RSS Feed 就不用说了吧。在列表中选择一个 RSS Feed 源,按下即可。请保证有较良好的网络环境。

显示 RSS Feed 资料页面:外网上的发布组在发布种子时,其资料页面如图4,是可以浏览的。

打开目标页面:也不用多说了吧。打开的是列表中“页面”一栏所显示的地址。如果订阅的是未来花园的 RSS Feed,请使用该按钮打开链接。

复制链接:复制“链接”一栏的地址。

打开链接:打开“链接”一栏的地址。

RSS Feed 源管理:也不用多说了吧。

关于:更不用说了。

RSS Feed 源

在这里管理 RSS Feed 源。

列表右端

列表右端。

资料页面

RSS Feed 资料页面(而不是目标页面)。

分享到 评论