@jjlmoya/utils-games-development 1.53.0 → 1.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +6 -1
- package/src/index.ts +2 -0
- package/src/tests/contrast_legibility.test.ts +245 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/itchioGameTester/itchio-game-tester.css +3 -3
- package/src/tool/localizationSanitizer/localization-sanitizer.css +13 -13
- package/src/tool/retroSfxGenerator/bibliography.astro +6 -0
- package/src/tool/retroSfxGenerator/bibliography.ts +16 -0
- package/src/tool/retroSfxGenerator/client.ts +256 -0
- package/src/tool/retroSfxGenerator/component.astro +146 -0
- package/src/tool/retroSfxGenerator/entry.ts +27 -0
- package/src/tool/retroSfxGenerator/i18n/de.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/en.ts +224 -0
- package/src/tool/retroSfxGenerator/i18n/es.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/fr.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/id.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/it.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/ja.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/ko.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/nl.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/pl.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/pt.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/ru.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/sv.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/tr.ts +211 -0
- package/src/tool/retroSfxGenerator/i18n/zh.ts +211 -0
- package/src/tool/retroSfxGenerator/index.ts +11 -0
- package/src/tool/retroSfxGenerator/logic.test.ts +40 -0
- package/src/tool/retroSfxGenerator/logic.ts +214 -0
- package/src/tool/retroSfxGenerator/retro-sfx-generator.css +429 -0
- package/src/tool/retroSfxGenerator/seo.astro +15 -0
- package/src/tool/retroSfxGenerator/ui.ts +41 -0
- package/src/tool/saveFileEditor/game-save-file-editor.css +5 -5
- package/src/tool/spriteSheetPacker/sprite-sheet-packer.css +5 -5
- package/src/tool/steamBbcodeTranslator/app-client.ts +125 -0
- package/src/tool/steamBbcodeTranslator/bbcode-parser.ts +110 -0
- package/src/tool/steamBbcodeTranslator/bibliography.astro +6 -0
- package/src/tool/steamBbcodeTranslator/bibliography.ts +14 -0
- package/src/tool/steamBbcodeTranslator/component.astro +83 -0
- package/src/tool/steamBbcodeTranslator/entry.ts +28 -0
- package/src/tool/steamBbcodeTranslator/html-parser.ts +42 -0
- package/src/tool/steamBbcodeTranslator/html-renderer.ts +71 -0
- package/src/tool/steamBbcodeTranslator/i18n/de.ts +207 -0
- package/src/tool/steamBbcodeTranslator/i18n/en.ts +236 -0
- package/src/tool/steamBbcodeTranslator/i18n/es.ts +207 -0
- package/src/tool/steamBbcodeTranslator/i18n/fr.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/id.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/it.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/ja.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/ko.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/nl.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/pl.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/pt.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/ru.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/sv.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/tr.ts +195 -0
- package/src/tool/steamBbcodeTranslator/i18n/zh.ts +195 -0
- package/src/tool/steamBbcodeTranslator/index.ts +12 -0
- package/src/tool/steamBbcodeTranslator/logic.test.ts +41 -0
- package/src/tool/steamBbcodeTranslator/logic.ts +96 -0
- package/src/tool/steamBbcodeTranslator/markdown-parser.ts +115 -0
- package/src/tool/steamBbcodeTranslator/markdown-renderer.ts +85 -0
- package/src/tool/steamBbcodeTranslator/seo.astro +15 -0
- package/src/tool/steamBbcodeTranslator/steam-bbcode-translator.css +392 -0
- package/src/tool/steamBbcodeTranslator/storage.ts +30 -0
- package/src/tool/steamBbcodeTranslator/types.ts +36 -0
- package/src/tool/steamBbcodeTranslator/ui.ts +18 -0
- package/src/tool/steamCapsuleGenerator/steam-capsule-generator.css +6 -6
- package/src/tools.ts +4 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { RetroSfxGeneratorUI } from '../ui';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
export const content: ToolLocaleContent<RetroSfxGeneratorUI> = {
|
|
6
|
+
slug: 'gerador-efeitos-sonoros-retro-jogos',
|
|
7
|
+
title: 'Gerador de Efeitos Sonoros Retrô para Jogos',
|
|
8
|
+
description: 'Crie efeitos sonoros retrô para jogos no navegador com predefinições rápidas, controles de onda, osciloscópio ao vivo e exportação WAV.',
|
|
9
|
+
ui: {
|
|
10
|
+
waveformLabel: 'Forma de onda',
|
|
11
|
+
waveformSquare: 'Quadrada',
|
|
12
|
+
waveformSawtooth: 'Dente de serra',
|
|
13
|
+
waveformSine: 'Senoidal',
|
|
14
|
+
waveformTriangle: 'Triangular',
|
|
15
|
+
waveformNoise: 'Ruído',
|
|
16
|
+
presetLabel: 'Banco de sons rápidos',
|
|
17
|
+
presetExplosion: 'Explosão',
|
|
18
|
+
presetLaser: 'Laser',
|
|
19
|
+
presetJump: 'Salto',
|
|
20
|
+
presetCoin: 'Moeda',
|
|
21
|
+
presetPowerUp: 'Power-up',
|
|
22
|
+
frequencyLabel: 'Frequência inicial',
|
|
23
|
+
frequencyEndLabel: 'Frequência final',
|
|
24
|
+
durationLabel: 'Duração',
|
|
25
|
+
decayLabel: 'Decaimento',
|
|
26
|
+
sweepLabel: 'Varrimento de tom',
|
|
27
|
+
vibratoLabel: 'Vibrato',
|
|
28
|
+
lowpassLabel: 'Passa-baixas',
|
|
29
|
+
highpassLabel: 'Passa-altas',
|
|
30
|
+
noiseMixLabel: 'Mistura de ruído',
|
|
31
|
+
toneSection: 'Tom',
|
|
32
|
+
dynamicsSection: 'Dinâmica',
|
|
33
|
+
filterSection: 'Textura',
|
|
34
|
+
playButton: 'Reproduzir som',
|
|
35
|
+
stopButton: 'Parar',
|
|
36
|
+
downloadButton: 'Baixar WAV',
|
|
37
|
+
randomizeButton: 'Aleatório',
|
|
38
|
+
resetButton: 'Redefinir',
|
|
39
|
+
waveformPreviewLabel: 'Forma de onda ao vivo',
|
|
40
|
+
generatedLabel: 'Gerado',
|
|
41
|
+
statusReady: 'Pronto para ouvir',
|
|
42
|
+
statusPlaying: 'Reproduzindo no navegador',
|
|
43
|
+
statusStopped: 'Reprodução parada',
|
|
44
|
+
statusDownloaded: 'WAV baixado',
|
|
45
|
+
statusAudioBlocked: 'A reprodução requer permissão de áudio na aba do navegador',
|
|
46
|
+
statusGenerating: 'Renderizando som',
|
|
47
|
+
presetHint: 'Escolha um ponto de partida e ajuste o sinal com os controles abaixo.',
|
|
48
|
+
monoWavHint: '44.1 kHz · WAV mono de 16 bits',
|
|
49
|
+
},
|
|
50
|
+
seo: [
|
|
51
|
+
{
|
|
52
|
+
type: 'title',
|
|
53
|
+
level: 2,
|
|
54
|
+
text: 'Crie áudio para jogos durante uma Game Jam sem sair do navegador',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'paragraph',
|
|
58
|
+
html: 'Um bom efeito sonoro para jogos precisa comunicar uma ação instantaneamente. Uma subida de tom expressa um salto ou power-up, uma queda rápida sugere um laser e um som ruidoso com decaimento simula uma explosão. Este gerador converte esses padrões arcade em áudio editável no navegador.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'stats',
|
|
62
|
+
columns: 4,
|
|
63
|
+
items: [
|
|
64
|
+
{ label: 'Predefinições', value: '5 padrões iniciais' },
|
|
65
|
+
{ label: 'Osciladores', value: '5 formas de onda' },
|
|
66
|
+
{ label: 'Formato exportado', value: 'WAV PCM de 16 bits' },
|
|
67
|
+
{ label: 'Processamento', value: 'No navegador' },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
level: 2,
|
|
73
|
+
text: 'O que cada controle altera',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'comparative',
|
|
77
|
+
columns: 2,
|
|
78
|
+
items: [
|
|
79
|
+
{
|
|
80
|
+
title: 'Tom e movimento',
|
|
81
|
+
description: 'Os controles de tom definem a identidade do som.',
|
|
82
|
+
points: [
|
|
83
|
+
'A frequência inicial estabelece o tom base do oscilador',
|
|
84
|
+
'O varrimento de tom move a frequência até o valor final',
|
|
85
|
+
'O vibrato adiciona uma oscilação suave de tom',
|
|
86
|
+
'Diferentes formas de onda criam texturas harmônicas únicas',
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Forma e textura',
|
|
91
|
+
description: 'A dinâmica e os filtros definem o encerramento do som.',
|
|
92
|
+
points: [
|
|
93
|
+
'A duração controla o tempo total do efeito',
|
|
94
|
+
'O decaimento reduz a amplitude gradualmente',
|
|
95
|
+
'O filtro passa-baixas suaviza frequências altas',
|
|
96
|
+
'O filtro passa-altas remove frequências graves',
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
level: 2,
|
|
104
|
+
text: 'Receitas práticas para eventos de jogos',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'table',
|
|
108
|
+
headers: ['Evento', 'Predefinição útil', 'Primeiro ajuste recomendado'],
|
|
109
|
+
rows: [
|
|
110
|
+
['Explosão', 'Ruído em baixa frequência', 'Aumentar a duração e diminuir o filtro passa-baixas'],
|
|
111
|
+
['Laser', 'Dente de serra com varrimento descendente', 'Encurtar a duração e elevar o filtro passa-altas'],
|
|
112
|
+
['Salto', 'Quadrada com varrimento ascendente', 'Reduzir o decaimento para manter o tom perceptível'],
|
|
113
|
+
['Moeda', 'Quadrada com varrimento curto', 'Elevar a frequência inicial para um som brilhante'],
|
|
114
|
+
['Power-up', 'Triangular com varrimento longo', 'Adicionar um pouco de vibrato para dar movimento'],
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
level: 2,
|
|
120
|
+
text: 'Por que o WAV é ideal para protótipos',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'O formato WAV é aceito nativamente em motores de jogos e editores de áudio sem necessidade de bibliotecas adicionais.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'tip',
|
|
128
|
+
title: 'Teste no volume real do jogo',
|
|
129
|
+
html: 'Sons isolados podem soar ótimos, mas ser cansativos quando repetidos com frequência no jogo. Teste diretamente na engine.',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
faqTitle: 'Perguntas Frequentes',
|
|
133
|
+
faq: [
|
|
134
|
+
{
|
|
135
|
+
question: 'Os meus sons são enviados para um servidor?',
|
|
136
|
+
answer: 'Não. A síntese e a codificação do WAV ocorrem inteiramente no seu navegador.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: 'Posso usar esses sons no meu jogo?',
|
|
140
|
+
answer: 'Sim, os sons gerados são adequados para protótipos, game jams e jogos independentes.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
question: 'Como funciona o varrimento de tom?',
|
|
144
|
+
answer: 'O controle calcula a frequência final de forma proporcional em relação ao tom inicial.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
question: 'O que fazer se não houver som?',
|
|
148
|
+
answer: 'Verifique se a aba do navegador tem permissão para áudio e clique em Reproduzir som novamente.',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
howTo: [
|
|
152
|
+
{
|
|
153
|
+
name: 'Escolha uma predefinição',
|
|
154
|
+
text: 'Selecione Explosão, Laser, Salto, Moeda ou Power-up.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Ajuste o sinal',
|
|
158
|
+
text: 'Modifique a onda, tom, duração, decaimento e filtros.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'Ouça o resultado',
|
|
162
|
+
text: 'Clique em Reproduzir som para ouvir em tempo real.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'Baixe o arquivo WAV',
|
|
166
|
+
text: 'Clique em Baixar WAV para salvar o arquivo no seu computador.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: 'Gerador de Efeitos Sonoros Retrô para Jogos',
|
|
174
|
+
applicationCategory: 'MultimediaApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: {
|
|
177
|
+
'@type': 'Offer',
|
|
178
|
+
price: '0',
|
|
179
|
+
priceCurrency: 'EUR',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'FAQPage',
|
|
185
|
+
mainEntity: [
|
|
186
|
+
{
|
|
187
|
+
'@type': 'Question',
|
|
188
|
+
name: 'Os meus sons são enviados para um servidor?',
|
|
189
|
+
acceptedAnswer: {
|
|
190
|
+
'@type': 'Answer',
|
|
191
|
+
text: 'Não. A síntese ocorre inteiramente no seu navegador.',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
'@context': 'https://schema.org',
|
|
198
|
+
'@type': 'HowTo',
|
|
199
|
+
name: 'Como criar um efeito sonoro retrô',
|
|
200
|
+
step: [
|
|
201
|
+
{
|
|
202
|
+
'@type': 'HowToStep',
|
|
203
|
+
name: 'Escolha uma predefinição',
|
|
204
|
+
text: 'Selecione um padrão inicial.',
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
bibliographyTitle: 'Referências',
|
|
210
|
+
bibliography: bibliographyEntries,
|
|
211
|
+
};
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { RetroSfxGeneratorUI } from '../ui';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
export const content: ToolLocaleContent<RetroSfxGeneratorUI> = {
|
|
6
|
+
slug: 'generator-retro-zvykovyh-effektov-dlya-igr',
|
|
7
|
+
title: 'Генератор Ретро Звуковых Эффектов для Игр',
|
|
8
|
+
description: 'Создавайте короткие ретро звуковые эффекты для игр в браузере с готовыми пресетами, осциллографом и экспортом в WAV.',
|
|
9
|
+
ui: {
|
|
10
|
+
waveformLabel: 'Форма волны',
|
|
11
|
+
waveformSquare: 'Прямоугольная',
|
|
12
|
+
waveformSawtooth: 'Пилообразная',
|
|
13
|
+
waveformSine: 'Синусоидальная',
|
|
14
|
+
waveformTriangle: 'Треугольная',
|
|
15
|
+
waveformNoise: 'Шум',
|
|
16
|
+
presetLabel: 'Банк звуковых пресетов',
|
|
17
|
+
presetExplosion: 'Взрыв',
|
|
18
|
+
presetLaser: 'Лазер',
|
|
19
|
+
presetJump: 'Прыжок',
|
|
20
|
+
presetCoin: 'Монета',
|
|
21
|
+
presetPowerUp: 'Усиление',
|
|
22
|
+
frequencyLabel: 'Начальная частота',
|
|
23
|
+
frequencyEndLabel: 'Конечная частота',
|
|
24
|
+
durationLabel: 'Длительность',
|
|
25
|
+
decayLabel: 'Затухание',
|
|
26
|
+
sweepLabel: 'Сдвиг тона',
|
|
27
|
+
vibratoLabel: 'Вибрато',
|
|
28
|
+
lowpassLabel: 'ФНЧ (Low-pass)',
|
|
29
|
+
highpassLabel: 'ФВЧ (High-pass)',
|
|
30
|
+
noiseMixLabel: 'Микс шума',
|
|
31
|
+
toneSection: 'Тон',
|
|
32
|
+
dynamicsSection: 'Динамика',
|
|
33
|
+
filterSection: 'Текстура',
|
|
34
|
+
playButton: 'Воспроизвести',
|
|
35
|
+
stopButton: 'Стоп',
|
|
36
|
+
downloadButton: 'Скачать WAV',
|
|
37
|
+
randomizeButton: 'Случайно',
|
|
38
|
+
resetButton: 'Сбросить',
|
|
39
|
+
waveformPreviewLabel: 'Осциллограмма',
|
|
40
|
+
generatedLabel: 'Сгенерировано',
|
|
41
|
+
statusReady: 'Готово к прослушиванию',
|
|
42
|
+
statusPlaying: 'Воспроизведение в браузере',
|
|
43
|
+
statusStopped: 'Воспроизведение остановлено',
|
|
44
|
+
statusDownloaded: 'WAV скачан',
|
|
45
|
+
statusAudioBlocked: 'Для воспроизведения требуется разрешение на аудио в вкладке',
|
|
46
|
+
statusGenerating: 'Рендеринг звука',
|
|
47
|
+
presetHint: 'Выберите пресет и настройте параметры с помощью регуляторов ниже.',
|
|
48
|
+
monoWavHint: '44.1 кГц · 16-бит моно WAV',
|
|
49
|
+
},
|
|
50
|
+
seo: [
|
|
51
|
+
{
|
|
52
|
+
type: 'title',
|
|
53
|
+
level: 2,
|
|
54
|
+
text: 'Создавайте аудио для игр прямо в браузере во время геймджема',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'paragraph',
|
|
58
|
+
html: 'Хороший игровой звуковой эффект быстро передает суть действия. Повышение тона воспринимается как прыжок или бонус, резкий спуск - как лазер, а затухающий шум - как взрыв. Этот генератор позволяет создавать классические 8-битные звуки без установки дополнительного ПО.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'stats',
|
|
62
|
+
columns: 4,
|
|
63
|
+
items: [
|
|
64
|
+
{ label: 'Звуковые пресеты', value: '5 базовых шаблонов' },
|
|
65
|
+
{ label: 'Типы осциллятора', value: '5 форм волны' },
|
|
66
|
+
{ label: 'Формат экспорта', value: '16-бит PCM WAV' },
|
|
67
|
+
{ label: 'Обработка', value: 'Локально в браузере' },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
level: 2,
|
|
73
|
+
text: 'Назначение регуляторов',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'comparative',
|
|
77
|
+
columns: 2,
|
|
78
|
+
items: [
|
|
79
|
+
{
|
|
80
|
+
title: 'Тон и движение',
|
|
81
|
+
description: 'Параметры тона задают базовое звучание эффекта.',
|
|
82
|
+
points: [
|
|
83
|
+
'Начальная частота определяет стартовую высоту звука',
|
|
84
|
+
'Сдвиг тона меняет частоту к конечному значению',
|
|
85
|
+
'Вибрато добавляет легкую периодическую модуляцию',
|
|
86
|
+
'Формы волны создают разную гармоническую окраску',
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Форма и текстура',
|
|
91
|
+
description: 'Динамика и фильтры формируют затухание и тембр.',
|
|
92
|
+
points: [
|
|
93
|
+
'Длительность определяет общее время звучания',
|
|
94
|
+
'Затухание управляет скоростью спада громкости',
|
|
95
|
+
'ФНЧ сглаживает резкие высокие частоты',
|
|
96
|
+
'ФВЧ убирает гулкие низкие частоты',
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
level: 2,
|
|
104
|
+
text: 'Рекомендации по настройке для игровых событий',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'table',
|
|
108
|
+
headers: ['Событие', 'Подходящий пресет', 'Первая рекомендуемая настройка'],
|
|
109
|
+
rows: [
|
|
110
|
+
['Взрыв', 'Низкочастотный шум', 'Увеличьте длительность и уменьшите ФНЧ для мощного гула'],
|
|
111
|
+
['Лазер', 'Пила с падающим сдвигом тона', 'Уменьшите длительность и поднимите ФВЧ для резкого атака'],
|
|
112
|
+
['Прыжок', 'Прямоугольник с растущим тоном', 'Уменьшите затухание для четкого подъема тона'],
|
|
113
|
+
['Монета', 'Прямоугольник с коротким подъемом', 'Увеличьте начальную частоту для звонкого звука'],
|
|
114
|
+
['Усиление', 'Треугольник с долгим подъемом тона', 'Добавьте немного вибрато для динамичности'],
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
level: 2,
|
|
120
|
+
text: 'Почему WAV - идеальный формат для прототипов',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'Файлы формата WAV легко импортируются во все популярные игровые движки (Unity, Godot, Unreal Engine) без сторонних библиотек.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'tip',
|
|
128
|
+
title: 'Тестируйте на игровой громкости',
|
|
129
|
+
html: 'Звук, который хорошо звучит отдельно, может утомлять при частых повторах в игре. Всегда проверяйте его вместе с фоновой музыкой.',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
faqTitle: 'Часто задаваемые вопросы',
|
|
133
|
+
faq: [
|
|
134
|
+
{
|
|
135
|
+
question: 'Загружаются ли мои звуки на сервер?',
|
|
136
|
+
answer: 'Нет. Синтез и генерация WAV происходят исключительно на вашем устройстве в браузере.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: 'Можно ли использовать скачанные звуки в коммерческой игре?',
|
|
140
|
+
answer: 'Да. Сгенерированные звуки предназначены для прототипов, геймджемов и инди-проектов.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
question: 'Как работает сдвиг тона?',
|
|
144
|
+
answer: 'Регулятор пропорционально рассчитывает конечную частоту относительно начальной.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
question: 'Что делать, если нет звука?',
|
|
148
|
+
answer: 'Убедитесь, что вкладка браузера имеет доступ к аудиоустройствам, и нажмите "Воспроизвести".',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
howTo: [
|
|
152
|
+
{
|
|
153
|
+
name: 'Выберите пресет',
|
|
154
|
+
text: 'Выберите Взрыв, Лазер, Прыжок, Монета или Усиление.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Настройте параметры',
|
|
158
|
+
text: 'Отрегулируйте форму волны, тон, длительность и фильтры.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'Прослушайте результат',
|
|
162
|
+
text: 'Нажмите "Воспроизвести" для прослушивания.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'Скачайте WAV файл',
|
|
166
|
+
text: 'Нажмите "Скачать WAV" для сохранения звукового файла.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: 'Генератор Ретро Звуковых Эффектов для Игр',
|
|
174
|
+
applicationCategory: 'MultimediaApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: {
|
|
177
|
+
'@type': 'Offer',
|
|
178
|
+
price: '0',
|
|
179
|
+
priceCurrency: 'RUB',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'FAQPage',
|
|
185
|
+
mainEntity: [
|
|
186
|
+
{
|
|
187
|
+
'@type': 'Question',
|
|
188
|
+
name: 'Загружаются ли мои звуки на сервер?',
|
|
189
|
+
acceptedAnswer: {
|
|
190
|
+
'@type': 'Answer',
|
|
191
|
+
text: 'Нет. Синтез и генерация WAV происходят исключительно в браузере.',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
'@context': 'https://schema.org',
|
|
198
|
+
'@type': 'HowTo',
|
|
199
|
+
name: 'Как создать ретро звуковой эффект',
|
|
200
|
+
step: [
|
|
201
|
+
{
|
|
202
|
+
'@type': 'HowToStep',
|
|
203
|
+
name: 'Выберите пресет',
|
|
204
|
+
text: 'Выберите базовый пресет.',
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
bibliographyTitle: 'Источники и литература',
|
|
210
|
+
bibliography: bibliographyEntries,
|
|
211
|
+
};
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
2
|
+
import type { RetroSfxGeneratorUI } from '../ui';
|
|
3
|
+
import { bibliographyEntries } from '../bibliography';
|
|
4
|
+
|
|
5
|
+
export const content: ToolLocaleContent<RetroSfxGeneratorUI> = {
|
|
6
|
+
slug: 'retro-ljudeffekt-generator-spel',
|
|
7
|
+
title: 'Retro Ljudeffekt Generator för Spel',
|
|
8
|
+
description: 'Skapa korta retro-ljudeffekter för spel i din webbläsare med förinställningar, vågformsreglage, oscilloskop och WAV-export.',
|
|
9
|
+
ui: {
|
|
10
|
+
waveformLabel: 'Vågform',
|
|
11
|
+
waveformSquare: 'Fyrkant',
|
|
12
|
+
waveformSawtooth: 'Sågtand',
|
|
13
|
+
waveformSine: 'Sinus',
|
|
14
|
+
waveformTriangle: 'Triangel',
|
|
15
|
+
waveformNoise: 'Brus',
|
|
16
|
+
presetLabel: 'Snabb ljudbank',
|
|
17
|
+
presetExplosion: 'Explosion',
|
|
18
|
+
presetLaser: 'Laser',
|
|
19
|
+
presetJump: 'Hopp',
|
|
20
|
+
presetCoin: 'Mynt',
|
|
21
|
+
presetPowerUp: 'Power-up',
|
|
22
|
+
frequencyLabel: 'Startfrekvens',
|
|
23
|
+
frequencyEndLabel: 'Slutfrekvens',
|
|
24
|
+
durationLabel: 'Längd',
|
|
25
|
+
decayLabel: 'Avklingning',
|
|
26
|
+
sweepLabel: 'Tonsvep',
|
|
27
|
+
vibratoLabel: 'Vibrato',
|
|
28
|
+
lowpassLabel: 'Lågpass',
|
|
29
|
+
highpassLabel: 'Högpass',
|
|
30
|
+
noiseMixLabel: 'Brusmix',
|
|
31
|
+
toneSection: 'Ton',
|
|
32
|
+
dynamicsSection: 'Dynamik',
|
|
33
|
+
filterSection: 'Textur',
|
|
34
|
+
playButton: 'Spela ljud',
|
|
35
|
+
stopButton: 'Stoppa',
|
|
36
|
+
downloadButton: 'Ladda ner WAV',
|
|
37
|
+
randomizeButton: 'Slumpa',
|
|
38
|
+
resetButton: 'Återställ',
|
|
39
|
+
waveformPreviewLabel: 'Realtidsvågform',
|
|
40
|
+
generatedLabel: 'Genererad',
|
|
41
|
+
statusReady: 'Klar för avlyssning',
|
|
42
|
+
statusPlaying: 'Spelas i webbläsaren',
|
|
43
|
+
statusStopped: 'Uppspelning stoppad',
|
|
44
|
+
statusDownloaded: 'WAV nedladdad',
|
|
45
|
+
statusAudioBlocked: 'Uppspelning kräver ljudtillstånd i fliken',
|
|
46
|
+
statusGenerating: 'Renderar ljud',
|
|
47
|
+
presetHint: 'Välj en startpunkt och forma signalen med reglagen nedan.',
|
|
48
|
+
monoWavHint: '44.1 kHz · 16-bitars mono WAV',
|
|
49
|
+
},
|
|
50
|
+
seo: [
|
|
51
|
+
{
|
|
52
|
+
type: 'title',
|
|
53
|
+
level: 2,
|
|
54
|
+
text: 'Skapa spelljud under ett Game Jam direkt i webbläsaren',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
type: 'paragraph',
|
|
58
|
+
html: 'En bra retro-ljudeffekt kommunicerar en spelhandling direkt. En stigande ton ger känslan av ett hopp eller en power-up, ett snabbt fallande svep låter som en laser och ett brussvep återskapar en explosion.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'stats',
|
|
62
|
+
columns: 4,
|
|
63
|
+
items: [
|
|
64
|
+
{ label: 'Förinställningar', value: '5 startmönster' },
|
|
65
|
+
{ label: 'Oscillatorer', value: '5 vågformer' },
|
|
66
|
+
{ label: 'Exportformat', value: '16-bitars PCM WAV' },
|
|
67
|
+
{ label: 'Bearbetning', value: 'I webbläsaren' },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'title',
|
|
72
|
+
level: 2,
|
|
73
|
+
text: 'Vad reglagen styr',
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
type: 'comparative',
|
|
77
|
+
columns: 2,
|
|
78
|
+
items: [
|
|
79
|
+
{
|
|
80
|
+
title: 'Ton och rörelse',
|
|
81
|
+
description: 'Tonreglagen definierar ljudets grundläggande karaktär.',
|
|
82
|
+
points: [
|
|
83
|
+
'Startfrekvens sätter den inledande tonhöjden',
|
|
84
|
+
'Tonsvep flyttar frekvensen mot ett beräknat slutvärde',
|
|
85
|
+
'Vibrato lägger till en mjuk periodisk svängning',
|
|
86
|
+
'Olika vågformer skapar olika harmoniska strukturer',
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
title: 'Form och textur',
|
|
91
|
+
description: 'Dynamik och filter formar avklingningen.',
|
|
92
|
+
points: [
|
|
93
|
+
'Längd styr den totala speltiden',
|
|
94
|
+
'Avklingning justerar hur snabbt volymen sjunker',
|
|
95
|
+
'Lågpassfilter dämpar vassa höga frekvenser',
|
|
96
|
+
'Högpassfilter tar bort basfrekvenser',
|
|
97
|
+
],
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'title',
|
|
103
|
+
level: 2,
|
|
104
|
+
text: 'Praktiska recept för vanliga spelhändelser',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'table',
|
|
108
|
+
headers: ['Händelse', 'Bra startmönster', 'Första justering att testa'],
|
|
109
|
+
rows: [
|
|
110
|
+
['Explosion', 'Brus med låg frekvens', 'Öka längden och sänk lågpassfiltret för mer tyngd'],
|
|
111
|
+
['Laser', 'Sågtand med fallande svep', 'Minska längden och höj högpassfiltret'],
|
|
112
|
+
['Hopp', 'Fyrkant med stigande svep', 'Minska avklingningen för att hålla stigningen tydlig'],
|
|
113
|
+
['Mynt', 'Fyrkant med kort stigande svep', 'Höj startfrekvensen för ett ljusare ljud'],
|
|
114
|
+
['Power-up', 'Triangel med långt stigande svep', 'Lägg till lite vibrato för mer rörelse'],
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
level: 2,
|
|
120
|
+
text: 'Varför WAV är det bästa formatet för prototyper',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'paragraph',
|
|
124
|
+
html: 'WAV-formatet stöds direkt av de flesta spelmotorer och ljudredigerare utan krav på extern komprimering.',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
type: 'tip',
|
|
128
|
+
title: 'Lyssna i rätt spelvolym',
|
|
129
|
+
html: 'Ett ljud som låter bra ensamt kan bli tröttsamt om det upprepas ofta i spelet. Testa ljudet i spelsammanhang.',
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
faqTitle: 'Vanliga Frågor',
|
|
133
|
+
faq: [
|
|
134
|
+
{
|
|
135
|
+
question: 'Laddas mina ljud upp till en server?',
|
|
136
|
+
answer: 'Nej. Syntes och WAV-generering sker helt lokalt i din webbläsare.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: 'Får jag använda ljuden i mina spel?',
|
|
140
|
+
answer: 'Ja, ljuden är fria att använda i prototyper och speldemon.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
question: 'Hur fungerar tonsvepet?',
|
|
144
|
+
answer: 'Reglaget beräknar slutfrekvensen proportionellt mot starttonen.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
question: 'Vad gör jag om inget ljud hörs?',
|
|
148
|
+
answer: 'Kontrollera att webbläsarfliken tillåter ljud och klicka på Spela ljud igen.',
|
|
149
|
+
},
|
|
150
|
+
],
|
|
151
|
+
howTo: [
|
|
152
|
+
{
|
|
153
|
+
name: 'Välj förinställning',
|
|
154
|
+
text: 'Välj Explosion, Laser, Hopp, Mynt eller Power-up.',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: 'Forma signalen',
|
|
158
|
+
text: 'Justera vågform, tonhöjd, längd, avklingning och filter.',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'Lyssna på resultatet',
|
|
162
|
+
text: 'Klicka på Spela ljud för att förhandsgranska.',
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
name: 'Ladda ner WAV',
|
|
166
|
+
text: 'Klicka på Ladda ner WAV för att spara ljudfilen.',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
schemas: [
|
|
170
|
+
{
|
|
171
|
+
'@context': 'https://schema.org',
|
|
172
|
+
'@type': 'SoftwareApplication',
|
|
173
|
+
name: 'Retro Ljudeffekt Generator för Spel',
|
|
174
|
+
applicationCategory: 'MultimediaApplication',
|
|
175
|
+
operatingSystem: 'Any',
|
|
176
|
+
offers: {
|
|
177
|
+
'@type': 'Offer',
|
|
178
|
+
price: '0',
|
|
179
|
+
priceCurrency: 'SEK',
|
|
180
|
+
},
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
'@context': 'https://schema.org',
|
|
184
|
+
'@type': 'FAQPage',
|
|
185
|
+
mainEntity: [
|
|
186
|
+
{
|
|
187
|
+
'@type': 'Question',
|
|
188
|
+
name: 'Laddas mina ljud upp till en server?',
|
|
189
|
+
acceptedAnswer: {
|
|
190
|
+
'@type': 'Answer',
|
|
191
|
+
text: 'Nej. Syntes sker helt i din webbläsare.',
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
'@context': 'https://schema.org',
|
|
198
|
+
'@type': 'HowTo',
|
|
199
|
+
name: 'Hur du skapar en retro ljudeffekt',
|
|
200
|
+
step: [
|
|
201
|
+
{
|
|
202
|
+
'@type': 'HowToStep',
|
|
203
|
+
name: 'Välj förinställning',
|
|
204
|
+
text: 'Välj en startpunkt.',
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
bibliographyTitle: 'Referenser',
|
|
210
|
+
bibliography: bibliographyEntries,
|
|
211
|
+
};
|