
创建你的视觉小说
使用你喜欢的JS框架构建出色的视觉小说
Pixi’VN 是一个非常灵活且强大的2D游戏引擎,基于 JavaScript/TypeScript 和 PixiJS。

1
创建。
通过命令初始化一个新游戏。
Terminalnpm create pixi-vn@latest ◇ Project name│ My Game│◆ Select the type of game you want to create:│ ● Visual Novel│ ○ Game Engine
2
编写。
使用你喜欢的叙事语言编写故事。
=== start ===
# show image bg bg01-hallway
# show imagecontainer james [m01-body m01-eyes-smile m01-mouth-neutral01] xAlign 0.5 yAlign 1 with movein direction right speed 300
james: You're my roommate's replacement, huh?
What is your name?
# rename mc { _input_value_ }
const startLabel = newLabel("start", [
async () => {
await showImage("bg", "bg01-hallway");
await showImageContainer("james", ["m01-body", "m01-eyes-smile", "m01-mouth-neutral01"], { xAlign: 0.5, yAlign: 1, });
narration.dialogue = { character: james, text: `You're my roommate's replacement, huh?` };
},
() => narration.dialogue = "What is your name?",
{ labels: { start: [
{ operations: [
{ type: "image", alias: "bg", operationType: "show", url: "bg01-hallway" },
{ type: "imagecontainer", alias: "james", operationType: "show", urls: ["m01-body", "m01-eyes-smile", "m01-mouth-neutral01"], props: { xAlign: 0.5, yAlign: 1 }, transition: { type: "movein", props: { direction: "right", speed: 300 }}}
], goNextStep: true },
{ dialogue: "james: You're my roommate's replacement, huh?" },
{ dialogue: "What is your name?" },
{ operations: [{ type: "operationtoconvert", values: ["rename mc ", { type: "value", storageOperationType: "get", storageType: "storage", key: "_input_value_" } ] }], goNextStep: true }
]}};
start.ink
animations-labels.ts
多种设计可能性
更多层次。
2D 渲染完全基于 PixiJS 和 Pixi’VN 组件。你可以添加 PixiJS 或 HTML(React、Vue 等)层来创建创新的界面。
