Add mod documentation in seven languages

This commit is contained in:
cthangover committed 2026-10-29 09:25:55 +01:00
1 parent fe5e4495d2
commit da3d658103
15 files changed
+393 -8

No files matched your search

+55
View File
@@ -0,0 +1,55 @@
# Effects Engine — animated visual effects for scenes
Effects Engine lets a scenario play a short visual effect over a scene: a flash, smoke, sparks, a magic glow. An effect is a small Godot scene that a mod ships in its `effects/` folder; a scenario starts it by name, and it stays on screen until it finishes by itself or the dialog ends.
It is an engine mod with nothing to see on its own. The games currently included do not ship any effect scenes yet, so you will not meet an effect while playing them; this mod is there for authors who want to add one.
## How an effect appears
1. A scenario line `effect <name>` runs.
2. Effects Engine finds the scene `effects/<name>.tscn` in the loaded mods.
3. The effect is placed over the scene's picture — above the background and its objects, below the dialog box — and plays.
4. When the dialog that started it ends, the effect is removed, unless it has already removed itself.
The scenario does not wait for the effect: the next line is shown at once.
## For authors: add an effect
Put the effect's scene in your mod:
```filestree
my_mod/
└── effects/
└── sparks.tscn
```
Start it from a scenario:
```scenario
text "The lamp flickers."
effect sparks
text "Something moved in the dark."
end
```
**Mods must be folders.** Godot scenes can only be loaded from a mod installed as a folder. A mod distributed as a `.zip` archive has its effects skipped, with a warning in the log.
### Building blocks for the effect scene
Effects Engine provides three ways to animate frames inside your effect scene:
- **Frame set with cross-fade** — a node with the `EffectDataSet` script, a list of frame pictures and an `AnimationController` that fades from one frame to the next. Speed and the fade time are set in the inspector; the frames play once and the effect removes itself.
- **Sprite sheet in a shader** — `EffectAnimator` steps a `TextureRect` with a frame-sheet material through a set number of frames over a set duration.
- **Sprite sheet without a shader** — `EffectAnimNode` scrolls through a horizontal sprite sheet (frame width = sheet width / frame count) and removes itself at the end. It can also be created from code with `EffectAnimNode.SpawnOn(target, sheet, frameCount, seconds)`.
The frame set and the code-only sprite sheet stretch to fill the scene, so frames drawn for the scene's size line up with the background.
### A first effect without code
The simplest effect is a scene whose root is a `TextureRect` with a picture, stretched to the full screen — for example a semi-transparent glow. It appears with `effect <name>` and disappears when the dialog ends.
## If something goes wrong
1. **Nothing appears and the log says the effect was not found.** The file must be `effects/<name>.tscn` in a mod that is part of the game, and the name in the scenario must match.
2. **The effect works in development but not for players.** The mod was published as a `.zip`; publish it as a folder.
3. **The effect never goes away.** It stays until its dialog ends; end the dialog, or build the effect from the frame-set or sprite-sheet blocks, which remove themselves when they finish.
+55
View File
@@ -0,0 +1,55 @@
# Effects Engine — efectos visuales animados para las escenas
Effects Engine permite que un escenario reproduzca sobre la escena un efecto visual breve: un destello, humo, chispas, un resplandor mágico. Un efecto es una pequeña escena de Godot que el mod lleva en su carpeta `effects/`; el escenario lo lanza por su nombre, y permanece en pantalla hasta que termina solo o se acaba el diálogo.
Es un mod de motor sin nada propio que ver. Los juegos incluidos por ahora no traen ninguna escena de efecto, así que no te toparás con uno mientras juegas; este mod está aquí para los autores que quieran añadir uno.
## Cómo aparece un efecto
1. Se ejecuta una línea del escenario, `effect <nombre>`.
2. Effects Engine busca la escena `effects/<nombre>.tscn` entre los mods cargados.
3. El efecto se coloca sobre la imagen de la escena —por encima del fondo y sus objetos, por debajo del cuadro de diálogo— y se reproduce.
4. Cuando termina el diálogo que lo lanzó, el efecto se retira, salvo que ya se haya retirado solo.
El escenario no espera al efecto: la línea siguiente se muestra enseguida.
## Para autores: añadir un efecto
Pon la escena del efecto en tu mod:
```filestree
my_mod/
└── effects/
└── sparks.tscn
```
Lánzalo desde un escenario:
```scenario
text "La lámpara parpadea."
effect sparks
text "Algo se movió en la oscuridad."
end
```
**Los mods deben ser carpetas.** Las escenas de Godot solo se cargan desde un mod instalado como carpeta. En un mod distribuido como archivo `.zip` los efectos se omiten, con un aviso en el registro.
### Piezas para la escena del efecto
Effects Engine ofrece tres maneras de animar fotogramas dentro de la escena de tu efecto:
- **Conjunto de fotogramas con fundido** — un nodo con el script `EffectDataSet`, una lista de imágenes de fotogramas y un `AnimationController` que funde un fotograma con el siguiente. La velocidad y el tiempo de fundido se ajustan en el inspector; los fotogramas se reproducen una vez y el efecto se retira solo.
- **Hoja de sprites en un shader** — `EffectAnimator` avanza un `TextureRect` con material de hoja de fotogramas por un número fijo de fotogramas en una duración fija.
- **Hoja de sprites sin shader** — `EffectAnimNode` recorre una hoja de sprites horizontal (ancho de fotograma = ancho de la hoja / número de fotogramas) y se retira al final. También puede crearse desde código con `EffectAnimNode.SpawnOn(target, sheet, frameCount, seconds)`.
El conjunto de fotogramas y la hoja de sprites sin shader se estiran para llenar la escena, de modo que los fotogramas dibujados al tamaño de la escena encajan con el fondo.
### Un primer efecto sin código
El efecto más sencillo es una escena cuya raíz es un `TextureRect` con una imagen estirada a toda la pantalla — por ejemplo, un resplandor semitransparente. Aparece con `effect <nombre>` y desaparece cuando termina el diálogo.
## Si algo falla
1. **No aparece nada y el registro dice que el efecto no se encontró.** El archivo debe estar como `effects/<nombre>.tscn` en un mod que forme parte del juego, y el nombre del escenario debe coincidir.
2. **El efecto funciona en desarrollo pero no para los jugadores.** El mod se publicó como `.zip`; publícalo como carpeta.
3. **El efecto nunca se va.** Permanece hasta que termina su diálogo; cierra el diálogo, o monta el efecto con las piezas de conjunto de fotogramas o de hoja de sprites, que se retiran solas al acabar.
+55
View File
@@ -0,0 +1,55 @@
# Effects Engine — シーンのためのアニメーション視覚エフェクト
Effects Engine は、シナリオがシーンの上に短い視覚エフェクトを再生できるようにします。閃光、煙、火花、魔法の輝きなどです。エフェクトとは、MOD が自分の `effects/` フォルダーに入れて配る小さな Godot シーンのこと。シナリオが名前で呼び出すと画面に現れ、自分で終わるかダイアログが終わるまで表示され続けます。
単独では何も見せないエンジン MOD です。現在収録されているゲームはエフェクトシーンをまだ一つも同梱していないため、プレイ中にエフェクトに出会うことはありません。この MOD は、エフェクトを追加したい作者のためのものです。
## エフェクトはどう現れるか
1. シナリオの行 `effect <名前>` が実行されます。
2. Effects Engine が読み込み済みの MOD の中から `effects/<名前>.tscn` を探します。
3. エフェクトはシーンの絵の上、つまり背景やその物体より上、ダイアログボックスより下に置かれ、再生されます。
4. 呼び出したダイアログが終わると、先に自分で消えていない限り、エフェクトは取り除かれます。
シナリオはエフェクトを待ちません。次の行はすぐに表示されます。
## 作者向け:エフェクトを追加する
エフェクトのシーンを MOD に入れます:
```filestree
my_mod/
└── effects/
└── sparks.tscn
```
シナリオから呼び出します:
```scenario
text "ランプが瞬いた。"
effect sparks
text "暗闇で何かが動いた。"
end
```
**MOD はフォルダーであること。** Godot のシーンは、フォルダーとしてインストールされた MOD からしか読み込めません。`.zip` アーカイブで配られた MOD のエフェクトはスキップされ、ログに警告が残ります。
### エフェクトシーンの積み木
Effects Engine は、エフェクトシーンの中でフレームをアニメーションさせる方法を三つ用意しています:
- **クロスフェードつきフレームセット** — `EffectDataSet` スクリプトのついたノード、フレーム画像のリスト、そしてフレームからフレームへ溶かしてつなぐ `AnimationController`。速度とフェード時間はインスペクターで設定します。フレームは一度だけ再生され、エフェクトは自分で消えます。
- **シェーダー内のスプライトシート** — `EffectAnimator` が、フレームシート素材のついた `TextureRect` を決められた枚数だけ決められた時間で進めます。
- **シェーダーなしのスプライトシート** — `EffectAnimNode` が横一列のスプライトシートを送り(フレーム幅 = シート幅 ÷ 枚数)、終わりで自分を消します。コードから `EffectAnimNode.SpawnOn(target, sheet, frameCount, seconds)` で作ることもできます。
フレームセットとコードだけで済むスプライトシートはシーンいっぱいに引き伸ばされるので、シーンのサイズに合わせて描いたフレームは背景とぴったり重なります。
### コードなしの最初のエフェクト
一番簡単なエフェクトは、ルートが `TextureRect` のシーンに画像一枚を全画面に引き伸ばして置くだけのものです。たとえば半透明の輝き。`effect <名前>` で現れ、ダイアログが終わると消えます。
## うまく動かないとき
1. **何も現れず、ログにエフェクトが見つからないと出る。** ファイルは、ゲームに含まれる MOD の `effects/<名前>.tscn` として存在し、シナリオの名前と一致していなければなりません。
2. **開発中は動くのに、プレイヤー環境では動かない。** MOD が `.zip` として公開されています。フォルダーとして公開してください。
3. **エフェクトが消えない。** ダイアログが終わるまで残ります。ダイアログを終えるか、フレームセットやスプライトシートの積み木でエフェクトを作ってください。それらは終わると自分を消します。
+55
View File
@@ -0,0 +1,55 @@
# Effects Engine — 장면을 위한 애니메이션 시각 효과
Effects Engine은 시나리오가 장면 위에 짧은 시각 효과를 재생할 수 있게 합니다. 번쩍임, 연기, 불똥, 마법의 빛 따위입니다. 효과란 모드가 자기 `effects/` 폴더에 넣어 배포하는 작은 Godot 장면입니다. 시나리오가 이름으로 불러내면 화면에 나타나고, 스스로 끝나거나 대화가 끝날 때까지 머뭅니다.
혼자서는 아무것도 보여 주지 않는 엔진 모드입니다. 현재 수록된 게임에는 아직 효과 장면이 하나도 없으므로 플레이 중에 효과를 만날 일은 없습니다. 이 모드는 효과를 추가하고 싶은 제작자를 위한 것입니다.
## 효과는 이렇게 나타납니다
1. 시나리오 줄 `effect <이름>`이 실행됩니다.
2. Effects Engine이 로드된 모드들에서 `effects/<이름>.tscn` 장면을 찾습니다.
3. 효과는 장면 그림 위, 즉 배경과 그 물건들보다는 위, 대화 상자보다는 아래에 놓이고 재생됩니다.
4. 그 효과를 부른 대화가 끝나면 효과도 제거됩니다. 먼저 스스로 사라졌다면 그대로입니다.
시나리오는 효과를 기다리지 않습니다. 다음 줄이 곧바로 표시됩니다.
## 제작자를 위해: 효과 추가하기
효과 장면을 모드에 넣으세요:
```filestree
my_mod/
└── effects/
└── sparks.tscn
```
시나리오에서 실행합니다:
```scenario
text "램프가 깜빡였다."
effect sparks
text "어둠 속에서 무언가 움직였다."
end
```
**모드는 폴더여야 합니다.** Godot 장면은 폴더로 설치된 모드에서만 불러올 수 있습니다. `.zip` 압축파일로 배포된 모드의 효과는 건너뛰어지며 로그에 경고가 남습니다.
### 효과 장면의 조각
Effects Engine은 효과 장면 안에서 프레임을 애니메이션하는 방법 세 가지를 제공합니다:
- **크로스페이드가 있는 프레임 세트** — `EffectDataSet` 스크립트를 단 노드, 프레임 그림 목록, 프레임에서 프레임으로 서서히 넘어가는 `AnimationController`. 속도와 페이드 시간은 인스펙터에서 정합니다. 프레임은 한 번 재생되고 효과는 스스로 사라집니다.
- **셰이더 속 스프라이트 시트** — `EffectAnimator`가 프레임 시트 소재를 단 `TextureRect`를 정해진 시간 동안 정해진 프레임 수만큼 진행합니다.
- **셰이더 없는 스프라이트 시트** — `EffectAnimNode`가 가로로 누운 스프라이트 시트를 훑고(프레임 너비 = 시트 너비 ÷ 프레임 수) 끝에서 스스로 사라집니다. 코드로 `EffectAnimNode.SpawnOn(target, sheet, frameCount, seconds)`로 만들 수도 있습니다.
프레임 세트와 코드만으로 쓰는 스프라이트 시트는 장면을 가득 채우도록 늘어나므로, 장면 크기에 맞춰 그린 프레임이 배경과 나란히 맞습니다.
### 코드 없는 첫 효과
가장 간단한 효과는 루트가 `TextureRect`인 장면에 그림 하나를 전체 화면으로 늘려 놓은 것입니다. 예컨대 반투명한 빛. `effect <이름>`으로 나타나고 대화가 끝나면 사라집니다.
## 문제가 생겼을 때
1. **아무것도 나타나지 않고 로그가 효과를 못 찾았다고 한다.** 파일이 게임에 포함된 모드의 `effects/<이름>.tscn`으로 존재하고, 시나리오의 이름과 일치해야 합니다.
2. **개발 중에는 되는데 플레이어에게는 안 된다.** 모드가 `.zip`으로 공개되었습니다. 폴더로 공개하세요.
3. **효과가 좀처럼 사라지지 않는다.** 그 대화가 끝날 때까지 남습니다. 대화를 끝내거나, 프레임 세트나 스프라이트 시트 조각으로 효과를 만드세요. 그것들은 끝나면 스스로를 지웁니다.
+55
View File
@@ -0,0 +1,55 @@
# Effects Engine — анимированные визуальные эффекты для сцен
Effects Engine позволяет сценарию показать поверх сцены короткий визуальный эффект: вспышку, дым, искры, волшебное свечение. Эффект — это маленькая сцена Godot, которую мод кладёт в свою папку `effects/`; сценарий запускает эффект по имени, и тот остаётся на экране, пока не закончится сам или не кончится диалог.
Это мод-движок, у которого нет ничего своего на экране. Входящие в проекты игры пока не содержат ни одной сцены-эффекта, поэтому во время игры вы эффект не встретите; мод существует для авторов, которые хотят такой добавить.
## Как эффект появляется
1. В сценарии выполняется строка `effect <имя>`.
2. Effects Engine ищет сцену `effects/<имя>.tscn` среди загруженных модов.
3. Эффект ложится поверх картинки сцены — выше фона и его предметов, ниже текстового окна — и проигрывается.
4. Когда заканчивается диалог, запустивший эффект, тот убирается, если не убрался сам раньше.
Сценарий эффекта не ждёт: следующая строка показывается сразу.
## Авторам: добавить эффект
Положите сцену эффекта в свой мод:
```filestree
my_mod/
└── effects/
└── sparks.tscn
```
Запустите из сценария:
```scenario
text "Лампа мигнула."
effect sparks
text "В темноте что-то шевельнулось."
end
```
**Моды должны быть папками.** Сцены Godot загружаются только из мода, установленного папкой. У мода, распространяемого архивом `.zip`, эффекты пропускаются с предупреждением в логе.
### Кубики для сцены эффекта
Effects Engine даёт три способа анимировать кадры внутри сцены эффекта:
- **Набор кадров с перетеканием** — узел со скриптом `EffectDataSet`, список картинок-кадров и `AnimationController`, который растворяет один кадр в другом. Скорость и время растворения задаются в инспекторе; кадры проигрываются один раз, и эффект убирает себя сам.
- **Спрайт-лист в шейдере** — `EffectAnimator` прокручивает `TextureRect` с материалом кадровой простыни через заданное число кадров за заданное время.
- **Спрайт-лист без шейдера** — `EffectAnimNode` листает горизонтальный спрайт-лист (ширина кадра = ширина листа / число кадров) и в конце убирает себя. Его можно создать и из кода: `EffectAnimNode.SpawnOn(target, sheet, frameCount, seconds)`.
Набор кадров и спрайт-лист без шейдера растягиваются на всю сцену, поэтому кадры, нарисованные под размер сцены, совпадают с фоном.
### Первый эффект без кода
Простейший эффект — сцена, у которой в корне `TextureRect` с картинкой, растянутой на весь экран, — например, полупрозрачное свечение. Он появляется по `effect <имя>` и исчезает, когда кончается диалог.
## Если что-то пошло не так
1. **Ничего не появляется, а в логе — что эффект не найден.** Файл должен лежать как `effects/<имя>.tscn` в моде, входящем в игру, и имя в сценарии должно совпадать.
2. **Эффект работает в разработке, но не у игроков.** Мод был опубликован архивом `.zip`; публикуйте папкой.
3. **Эффект не исчезает.** Он висит, пока не кончится его диалог; завершите диалог или соберите эффект из блоков набора кадров или спрайт-листа — они убирают себя, когда заканчиваются.
+55
View File
@@ -0,0 +1,55 @@
# Effects Engine — hiệu ứng hình ảnh động cho các cảnh
Effects Engine cho phép kịch bản phát một hiệu ứng hình ảnh ngắn đè lên cảnh: một tia chớp, khói, tia lửa, quầng sáng ma thuật. Một hiệu ứng là một cảnh Godot nhỏ mà mod đóng gói trong thư mục `effects/` của mình; kịch bản gọi nó theo tên, và nó giữ nguyên trên màn hình cho tới khi tự kết thúc hoặc hộp thoại kết thúc.
Đây là mod engine, tự nó chẳng có gì để xem. Các game hiện được kèm theo chưa đóng gói cảnh hiệu ứng nào, nên khi chơi bạn sẽ không gặp hiệu ứng; mod này dành cho những tác giả muốn thêm một hiệu ứng.
## Hiệu ứng xuất hiện thế nào
1. Một dòng kịch bản `effect <tên>` chạy.
2. Effects Engine tìm cảnh `effects/<tên>.tscn` trong các mod đã tải.
3. Hiệu ứng được đặt lên trên bức tranh cảnh — trên nền và các vật thể của nó, dưới hộp thoại — và phát.
4. Khi hộp thoại đã gọi nó kết thúc, hiệu ứng được dỡ bỏ, trừ khi nó đã tự dỡ trước đó.
Kịch bản không chờ hiệu ứng: dòng kế tiếp hiện ngay.
## Cho tác giả: thêm một hiệu ứng
Đặt cảnh hiệu ứng vào mod của bạn:
```filestree
my_mod/
└── effects/
└── sparks.tscn
```
Gọi nó từ kịch bản:
```scenario
text "Ngọn đèn lập lòe."
effect sparks
text "Có thứ gì đó cựa mình trong bóng tối."
end
```
**Mod phải là thư mục.** Cảnh Godot chỉ nạp được từ mod được cài dưới dạng thư mục. Mod phát hành dưới dạng lưu trữ `.zip` sẽ bị bỏ qua hiệu ứng, kèm cảnh báo trong nhật ký.
### Những viên gạch cho cảnh hiệu ứng
Effects Engine cung cấp ba cách hoạt ảnh các khung hình bên trong cảnh hiệu ứng của bạn:
- **Bộ khung hình có hòa trộn** — một node gắn script `EffectDataSet`, một danh sách ảnh khung hình và một `AnimationController` hòa khung hình này vào khung hình kế. Tốc độ và thời gian hòa đặt trong inspector; khung hình phát một lần rồi hiệu ứng tự dỡ.
- **Bảng sprite trong shader** — `EffectAnimator` đưa một `TextureRect` với vật liệu bảng khung đi qua một số khung định trước trong một khoảng thời gian định trước.
- **Bảng sprite không dùng shader** — `EffectAnimNode` cuộn qua một bảng sprite nằm ngang (rộng khung = rộng bảng / số khung) và tự dỡ khi hết. Cũng có thể tạo từ code bằng `EffectAnimNode.SpawnOn(target, sheet, frameCount, seconds)`.
Bộ khung hình và bảng sprite thuần code sẽ giãn ra lấp đầy cảnh, nên những khung vẽ đúng kích thước cảnh sẽ khớp với nền.
### Hiệu ứng đầu tiên không cần code
Hiệu ứng đơn giản nhất là một cảnh có gốc là `TextureRect` chứa một bức ảnh giãn kín màn hình — ví dụ một quầng sáng mờ. Nó hiện lên theo `effect <tên>` và biến mất khi hộp thoại kết thúc.
## Khi có trục trặc
1. **Không có gì hiện lên và nhật ký bảo không tìm thấy hiệu ứng.** Tệp phải nằm ở `effects/<tên>.tscn` trong một mod thuộc game, và tên trong kịch bản phải khớp.
2. **Hiệu ứng chạy lúc phát triển nhưng không chạy với người chơi.** Mod được phát hành dưới dạng `.zip`; hãy phát hành dưới dạng thư mục.
3. **Hiệu ứng không chịu biến mất.** Nó ở lại cho tới khi hộp thoại của nó kết thúc; hãy kết thúc hộp thoại, hoặc dựng hiệu ứng từ các viên gạch bộ khung hình hay bảng sprite — chúng tự dỡ khi phát xong.
+55
View File
@@ -0,0 +1,55 @@
# Effects Engine — 场景的动态视觉特效
Effects Engine 让剧本能在场景上播放一段短小的视觉特效:闪光、烟雾、火花、魔法光晕。特效是一个小的 Godot 场景,由模组放在自己的 `effects/` 文件夹里;剧本按名字启动它,它会留在画面上,直到自己播完或对话框结束。
这是一个引擎模组,自己没有任何可见内容。目前收录的游戏还没有附带任何特效场景,所以游玩时不会遇到特效;这个模组是为想添加特效的作者准备的。
## 特效如何出现
1. 剧本中执行一行 `effect <名字>`。
2. Effects Engine 在已加载的模组中寻找 `effects/<名字>.tscn` 场景。
3. 特效被叠放在场景画面上——位于背景和其中的物体之上、对话框之下——并开始播放。
4. 启动它的对话框结束时,特效随之移除,除非它已经自行移除。
剧本不会等待特效:下一行立即显示。
## 给作者:添加特效
把特效场景放进你的模组:
```filestree
my_mod/
└── effects/
└── sparks.tscn
```
在剧本中启动它:
```scenario
text "油灯闪烁了一下。"
effect sparks
text "黑暗中有什么东西动了一下。"
end
```
**模组必须是文件夹。** Godot 场景只能从以文件夹形式安装的模组中加载。以 `.zip` 压缩包分发的模组,其特效会被跳过,并在日志中留下警告。
### 特效场景的积木
Effects Engine 提供三种在特效场景内部动画帧的方式:
- **带渐变的帧序列** — 一个挂有 `EffectDataSet` 脚本的节点、一组帧图片,以及一个在帧与帧之间做渐变的 `AnimationController`。速度和渐变时间在检查器中设置;帧只播放一遍,然后特效自行移除。
- **着色器里的雪碧图** — `EffectAnimator` 让带帧表材质的 `TextureRect` 在设定时长内步进设定的帧数。
- **不用着色器的雪碧图** — `EffectAnimNode` 沿水平雪碧图滚动(帧宽 = 图宽 / 帧数),播完自行移除。也可以用代码创建:`EffectAnimNode.SpawnOn(target, sheet, frameCount, seconds)`。
帧序列和无着色器雪碧图会拉伸铺满场景,因此按场景尺寸绘制的帧能与背景对齐。
### 不写代码的第一个特效
最简单的特效是一个根节点为 `TextureRect` 的场景,放一张拉伸到全屏的图片——比如一层半透明的光晕。它随 `effect <名字>` 出现,在对话框结束时消失。
## 出现问题时
1. **什么都没出现,日志说找不到特效。** 文件必须位于加入游戏的某个模组的 `effects/<名字>.tscn`,且剧本中的名字要一致。
2. **特效在开发时正常,玩家却看不到。** 模组是以 `.zip` 发布的;请以文件夹形式发布。
3. **特效迟迟不消失。** 它会留到所在对话框结束;结束该对话框,或改用帧序列或雪碧图积木搭建特效——它们播完会自行移除。