dreamingmoths/silent-hill-museum
GitHub: dreamingmoths/silent-hill-museum
一个在浏览器中直接解析并展示《寂静岭2》原始二进制3D模型资产的数字档案馆。
Stars: 42 | Forks: 2
# 寂静岭博物馆




   
    
**在线网站**:[silenthillmuseum.org](https://silenthillmuseum.org/)
[_寂静岭博物馆_](https://silenthillmuseum.org/) 是一个寂静岭(Silent Hill)资产的数字档案馆。
该博物馆直接在您的浏览器中读取原始二进制文件,并通过交互式展览将其呈现给您。
## 它是如何工作的?
二进制格式使用 [Kaitai Struct](https://kaitai.io/) 进行文档化,这是一种强大的声明式二进制解析语言。它既可作为人类可读的大纲,也是一个可以被编译为多种语言解析器的严格规范。请参阅 [寂静岭 2 mdl 格式](https://github.com/laura-a-n-n/silent-hill-museum/blob/main/ksy/mdl.ksy) 的 ksy 文件。
特别是,ksy 文件会被编译为 JavaScript 解析器,从而允许 JavaScript Kaitai Struct 运行时(runtime)促进原始资产的解析。此外,我们从 Kaitai 源码生成 TypeScript `.d.ts` 类型定义,使得本项目可以用 TypeScript 编写。其美妙之处在于,它使得 IDE 能够了解二进制文件的结构。
一旦一切解析完毕,我们使用 [Three.js](https://threejs.org/) 将资产绘制到屏幕上。
## 安装说明
要在本地开始,您需要安装好 [pnpm](https://pnpm.io/installation)。要查看资产,您还需要完全解压《寂静岭 2:最期之梦》(PC版)。
1. 克隆该代码库并进入该文件夹。
```
git clone https://github.com/laura-a-n-n/silent-hill-museum.git
cd silent-hill-museum
```
2. 将《寂静岭 2》中的 `data` 文件夹复制到此代码库的 `public` 目录中。
3. 安装依赖项。
```
pnpm install
```
4. 运行安装脚本。
```
pnpm setup
```
5. 启动开发服务器。
```
pnpm dev
```
这应该足以让您开始了。有关更多脚本,请参见 [package.json](https://github.com/laura-a-n-n/silent-hill-museum/blob/main/package.json)。
### 高级设置
如果您想编辑 Kaitai Struct (ksy) 文件,您需要一份 Kaitai Struct 编译器的副本。
为了从 ksy 源码生成 TypeScript .d.ts 文件,本代码库依赖于一个尚未合并到主分支的 Kaitai Struct 编译器[分支](https://github.com/kaitai-io/kaitai_struct_compiler/pull/233)。非常感谢 [aquach](https://github.com/aquach) 让这个项目成为可能。
1. 安装 [Kaitai Struct 编译器](https://kaitai.io/#download)。它应该作为 `kaitai-struct-compiler` 命令全局可用。
要确保此步骤成功,请在此文件夹的根目录中尝试运行 `pnpm kaitai all`。
2. 将 aquach 的 Kaitai Struct TypeScript 编译器的[这个分支](https://github.com/laura-a-n-n/kaitai_struct_compiler)作为本代码库的子目录克隆。它的功能相同,我只是将其与最新代码进行了合并。
3. 按照[这些说明](https://doc.kaitai.io/serialization.html#_building_the_compiler_from_source)在新克隆的文件夹中从源代码构建 Kaitai Struct,但请注意检出 `feature/typescript` 分支,而不是 `serialization` 分支。
要测试一切是否成功,请在此代码库的根目录中尝试运行 `pnpm kaitai js`。
现在,每当对 ksy 文件进行更改时,请在提交前运行 `pnpm kaitai js && kaitai ts`。




   
    
**在线网站**:[silenthillmuseum.org](https://silenthillmuseum.org/)
[_寂静岭博物馆_](https://silenthillmuseum.org/) 是一个寂静岭(Silent Hill)资产的数字档案馆。
该博物馆直接在您的浏览器中读取原始二进制文件,并通过交互式展览将其呈现给您。
## 它是如何工作的?
二进制格式使用 [Kaitai Struct](https://kaitai.io/) 进行文档化,这是一种强大的声明式二进制解析语言。它既可作为人类可读的大纲,也是一个可以被编译为多种语言解析器的严格规范。请参阅 [寂静岭 2 mdl 格式](https://github.com/laura-a-n-n/silent-hill-museum/blob/main/ksy/mdl.ksy) 的 ksy 文件。
特别是,ksy 文件会被编译为 JavaScript 解析器,从而允许 JavaScript Kaitai Struct 运行时(runtime)促进原始资产的解析。此外,我们从 Kaitai 源码生成 TypeScript `.d.ts` 类型定义,使得本项目可以用 TypeScript 编写。其美妙之处在于,它使得 IDE 能够了解二进制文件的结构。
一旦一切解析完毕,我们使用 [Three.js](https://threejs.org/) 将资产绘制到屏幕上。
## 安装说明
要在本地开始,您需要安装好 [pnpm](https://pnpm.io/installation)。要查看资产,您还需要完全解压《寂静岭 2:最期之梦》(PC版)。
1. 克隆该代码库并进入该文件夹。
```
git clone https://github.com/laura-a-n-n/silent-hill-museum.git
cd silent-hill-museum
```
2. 将《寂静岭 2》中的 `data` 文件夹复制到此代码库的 `public` 目录中。
3. 安装依赖项。
```
pnpm install
```
4. 运行安装脚本。
```
pnpm setup
```
5. 启动开发服务器。
```
pnpm dev
```
这应该足以让您开始了。有关更多脚本,请参见 [package.json](https://github.com/laura-a-n-n/silent-hill-museum/blob/main/package.json)。
### 高级设置
如果您想编辑 Kaitai Struct (ksy) 文件,您需要一份 Kaitai Struct 编译器的副本。
为了从 ksy 源码生成 TypeScript .d.ts 文件,本代码库依赖于一个尚未合并到主分支的 Kaitai Struct 编译器[分支](https://github.com/kaitai-io/kaitai_struct_compiler/pull/233)。非常感谢 [aquach](https://github.com/aquach) 让这个项目成为可能。
1. 安装 [Kaitai Struct 编译器](https://kaitai.io/#download)。它应该作为 `kaitai-struct-compiler` 命令全局可用。
要确保此步骤成功,请在此文件夹的根目录中尝试运行 `pnpm kaitai all`。
2. 将 aquach 的 Kaitai Struct TypeScript 编译器的[这个分支](https://github.com/laura-a-n-n/kaitai_struct_compiler)作为本代码库的子目录克隆。它的功能相同,我只是将其与最新代码进行了合并。
3. 按照[这些说明](https://doc.kaitai.io/serialization.html#_building_the_compiler_from_source)在新克隆的文件夹中从源代码构建 Kaitai Struct,但请注意检出 `feature/typescript` 分支,而不是 `serialization` 分支。
要测试一切是否成功,请在此代码库的根目录中尝试运行 `pnpm kaitai js`。
现在,每当对 ksy 文件进行更改时,请在提交前运行 `pnpm kaitai js && kaitai ts`。标签:3D可视化, 3D模型, 3D渲染, CMS安全, JavaScript, Kaitai Struct, Python, Syscall, Three.js, TypeScript, WebGL, Web开发, 安全插件, 寂静岭, 恐怖游戏, 数字博物馆, 数字档案馆, 数据可视化, 无后门, 游戏, 游戏模型查看器, 游戏资产提取, 经典游戏, 自动化攻击, 逆向工具