@jjlmoya/utils-games-development 1.54.0 → 1.56.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.
Files changed (65) hide show
  1. package/package.json +1 -1
  2. package/src/entries.ts +7 -1
  3. package/src/index.ts +2 -0
  4. package/src/tests/contrast_legibility.test.ts +291 -0
  5. package/src/tests/locale_completeness.test.ts +2 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/itchioGameTester/itchio-game-tester.css +3 -3
  8. package/src/tool/localizationSanitizer/localization-sanitizer.css +17 -15
  9. package/src/tool/pixelArtPaletteSwapper/app-client.ts +229 -0
  10. package/src/tool/pixelArtPaletteSwapper/bibliography.astro +6 -0
  11. package/src/tool/pixelArtPaletteSwapper/bibliography.ts +16 -0
  12. package/src/tool/pixelArtPaletteSwapper/component.astro +153 -0
  13. package/src/tool/pixelArtPaletteSwapper/entry.ts +28 -0
  14. package/src/tool/pixelArtPaletteSwapper/i18n/de.ts +233 -0
  15. package/src/tool/pixelArtPaletteSwapper/i18n/en.ts +233 -0
  16. package/src/tool/pixelArtPaletteSwapper/i18n/es.ts +233 -0
  17. package/src/tool/pixelArtPaletteSwapper/i18n/fr.ts +233 -0
  18. package/src/tool/pixelArtPaletteSwapper/i18n/id.ts +233 -0
  19. package/src/tool/pixelArtPaletteSwapper/i18n/it.ts +233 -0
  20. package/src/tool/pixelArtPaletteSwapper/i18n/ja.ts +225 -0
  21. package/src/tool/pixelArtPaletteSwapper/i18n/ko.ts +225 -0
  22. package/src/tool/pixelArtPaletteSwapper/i18n/nl.ts +233 -0
  23. package/src/tool/pixelArtPaletteSwapper/i18n/pl.ts +233 -0
  24. package/src/tool/pixelArtPaletteSwapper/i18n/pt.ts +233 -0
  25. package/src/tool/pixelArtPaletteSwapper/i18n/ru.ts +233 -0
  26. package/src/tool/pixelArtPaletteSwapper/i18n/sv.ts +233 -0
  27. package/src/tool/pixelArtPaletteSwapper/i18n/tr.ts +233 -0
  28. package/src/tool/pixelArtPaletteSwapper/i18n/zh.ts +225 -0
  29. package/src/tool/pixelArtPaletteSwapper/index.ts +12 -0
  30. package/src/tool/pixelArtPaletteSwapper/logic.test.ts +43 -0
  31. package/src/tool/pixelArtPaletteSwapper/logic.ts +171 -0
  32. package/src/tool/pixelArtPaletteSwapper/pixel-art-palette-swapper.css +728 -0
  33. package/src/tool/pixelArtPaletteSwapper/seo.astro +15 -0
  34. package/src/tool/pixelArtPaletteSwapper/ui.ts +35 -0
  35. package/src/tool/retroSfxGenerator/bibliography.astro +6 -0
  36. package/src/tool/retroSfxGenerator/bibliography.ts +16 -0
  37. package/src/tool/retroSfxGenerator/client.ts +263 -0
  38. package/src/tool/retroSfxGenerator/component.astro +146 -0
  39. package/src/tool/retroSfxGenerator/entry.ts +27 -0
  40. package/src/tool/retroSfxGenerator/i18n/de.ts +211 -0
  41. package/src/tool/retroSfxGenerator/i18n/en.ts +224 -0
  42. package/src/tool/retroSfxGenerator/i18n/es.ts +211 -0
  43. package/src/tool/retroSfxGenerator/i18n/fr.ts +211 -0
  44. package/src/tool/retroSfxGenerator/i18n/id.ts +211 -0
  45. package/src/tool/retroSfxGenerator/i18n/it.ts +211 -0
  46. package/src/tool/retroSfxGenerator/i18n/ja.ts +211 -0
  47. package/src/tool/retroSfxGenerator/i18n/ko.ts +211 -0
  48. package/src/tool/retroSfxGenerator/i18n/nl.ts +211 -0
  49. package/src/tool/retroSfxGenerator/i18n/pl.ts +211 -0
  50. package/src/tool/retroSfxGenerator/i18n/pt.ts +211 -0
  51. package/src/tool/retroSfxGenerator/i18n/ru.ts +211 -0
  52. package/src/tool/retroSfxGenerator/i18n/sv.ts +211 -0
  53. package/src/tool/retroSfxGenerator/i18n/tr.ts +211 -0
  54. package/src/tool/retroSfxGenerator/i18n/zh.ts +211 -0
  55. package/src/tool/retroSfxGenerator/index.ts +11 -0
  56. package/src/tool/retroSfxGenerator/logic.test.ts +61 -0
  57. package/src/tool/retroSfxGenerator/logic.ts +214 -0
  58. package/src/tool/retroSfxGenerator/retro-sfx-generator.css +435 -0
  59. package/src/tool/retroSfxGenerator/seo.astro +15 -0
  60. package/src/tool/retroSfxGenerator/ui.ts +41 -0
  61. package/src/tool/saveFileEditor/game-save-file-editor.css +5 -5
  62. package/src/tool/spriteSheetPacker/sprite-sheet-packer.css +5 -5
  63. package/src/tool/steamBbcodeTranslator/steam-bbcode-translator.css +8 -8
  64. package/src/tool/steamCapsuleGenerator/steam-capsule-generator.css +6 -6
  65. 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: 'retro-sfx-generator',
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: 'ローパス',
29
+ highpassLabel: 'ハイパス',
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 kHz · 16-bit モノラル WAV',
49
+ },
50
+ seo: [
51
+ {
52
+ type: 'title',
53
+ level: 2,
54
+ text: 'ゲームジャム中にブラウザだけでゲームサウンドを即座に作成',
55
+ },
56
+ {
57
+ type: 'paragraph',
58
+ html: '優れたゲーム効果音は、プレイヤーの操作に対して瞬時にフィードバックを返します。上昇音はジャンプやアイテム取得、下降音は攻撃や落下、ノイズ成分を含む減衰音は爆発を表現します。このジェネレーターは、ブラウザ内の音源合成機能を利用してレトロサウンドを作成します。',
59
+ },
60
+ {
61
+ type: 'stats',
62
+ columns: 4,
63
+ items: [
64
+ { label: 'サウンドプリセット', value: '5種類の基本パターン' },
65
+ { label: 'オシレーター選択', value: '5種類の波形' },
66
+ { label: '出力フォーマット', value: '16-bit 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: '単体で聴くと気持ち良い効果音でも、ゲーム内で連続再生されると騒々しく感じられる場合があります。必ずBGMと合わせた状態で音量調整を行ってください。',
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: 'JPY',
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-sfx-generator',
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: '로우패스',
29
+ highpassLabel: '하이패스',
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 kHz · 16-bit 모노 WAV',
49
+ },
50
+ seo: [
51
+ {
52
+ type: 'title',
53
+ level: 2,
54
+ text: '게임 잼 동안 브라우저를 떠나지 않고 사운드 제작',
55
+ },
56
+ {
57
+ type: 'paragraph',
58
+ html: '좋은 게임 효과음은 피드백을 전달해야 합니다. 상승하는 피치는 점프나 파워업, 빠른 하강 피치는 레이저나 공격, 노이즈가 섞인 감쇠음은 폭발 효과음을 연상시킵니다. 이 생성기는 브라우저 오디오 웹 API를 통해 레트로 사운드를 쉽게 생성합니다.',
59
+ },
60
+ {
61
+ type: 'stats',
62
+ columns: 4,
63
+ items: [
64
+ { label: '사운드 프리셋', value: '5가지 기본 패턴' },
65
+ { label: '오실레이터 선택', value: '5가지 파형 형태' },
66
+ { label: '내보내기 형식', value: '16-bit 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는 별도의 압축 해제 라이브러리 없이 대부분의 게임 엔진에서 곧바로 사용할 수 있는 표준 포맷입니다.',
125
+ },
126
+ {
127
+ type: 'tip',
128
+ title: '실제 게임 볼륨에서 청취 테스트',
129
+ html: '단독으로 들었을 때 좋은 소리라도 게임 내에서 자주 반복되면 피로감을 줄 수 있습니다. 게임 환경에서 BGM과 함께 테스트하세요.',
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: 'KRW',
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-geluidseffect-generator-games',
7
+ title: 'Retro Geluidseffect Generator voor Games',
8
+ description: 'Maak korte retro game geluidseffecten in je browser met presets, golfvormbediening, een live oscilloscoop en WAV-export.',
9
+ ui: {
10
+ waveformLabel: 'Golfvorm',
11
+ waveformSquare: 'Vierkant',
12
+ waveformSawtooth: 'Zaagtand',
13
+ waveformSine: 'Sinus',
14
+ waveformTriangle: 'Driehoek',
15
+ waveformNoise: 'Ruis',
16
+ presetLabel: 'Snelle geluidsbank',
17
+ presetExplosion: 'Explosie',
18
+ presetLaser: 'Laser',
19
+ presetJump: 'Sprong',
20
+ presetCoin: 'Munt',
21
+ presetPowerUp: 'Power-up',
22
+ frequencyLabel: 'Startfrequentie',
23
+ frequencyEndLabel: 'Eindfrequentie',
24
+ durationLabel: 'Lengte',
25
+ decayLabel: 'Uitsterven',
26
+ sweepLabel: 'Toonhoogte sweep',
27
+ vibratoLabel: 'Vibrato',
28
+ lowpassLabel: 'Laagdoorlaat',
29
+ highpassLabel: 'Hoogdoorlaat',
30
+ noiseMixLabel: 'Ruis mix',
31
+ toneSection: 'Toon',
32
+ dynamicsSection: 'Dynamiek',
33
+ filterSection: 'Textuur',
34
+ playButton: 'Geluid afspelen',
35
+ stopButton: 'Stoppen',
36
+ downloadButton: 'Download WAV',
37
+ randomizeButton: 'Willekeurig',
38
+ resetButton: 'Resetten',
39
+ waveformPreviewLabel: 'Live golfvorm',
40
+ generatedLabel: 'Gegenereerd',
41
+ statusReady: 'Klaar om te beluisteren',
42
+ statusPlaying: 'Speelt af in je browser',
43
+ statusStopped: 'Afspelen gestopt',
44
+ statusDownloaded: 'WAV gedownload',
45
+ statusAudioBlocked: 'Afspelen vereist audio-toestemming in het browsertabblad',
46
+ statusGenerating: 'Geluid wordt gerenderd',
47
+ presetHint: 'Kies een startpunt en pas het signaal aan met de regelaars.',
48
+ monoWavHint: '44.1 kHz · 16-bit mono WAV',
49
+ },
50
+ seo: [
51
+ {
52
+ type: 'title',
53
+ level: 2,
54
+ text: 'Maak game audio tijdens een jam rechtstreeks in je browser',
55
+ },
56
+ {
57
+ type: 'paragraph',
58
+ html: 'Een goed game geluidseffect moet direct een actie communiceren. Een stijgende toonhoogte voelt als een sprong, een snelle daling als een laser en een ruisgeluid als een explosie. Deze generator maakt het eenvoudig om deze patronen aan te passen.',
59
+ },
60
+ {
61
+ type: 'stats',
62
+ columns: 4,
63
+ items: [
64
+ { label: 'Geluids-presets', value: '5 startpatronen' },
65
+ { label: 'Oscillator keuzes', value: '5 golfvormen' },
66
+ { label: 'Exportformaat', value: '16-bit PCM WAV' },
67
+ { label: 'Verwerking', value: 'In de browser' },
68
+ ],
69
+ },
70
+ {
71
+ type: 'title',
72
+ level: 2,
73
+ text: 'Wat de regelaars veranderen',
74
+ },
75
+ {
76
+ type: 'comparative',
77
+ columns: 2,
78
+ items: [
79
+ {
80
+ title: 'Toonhoogte en beweging',
81
+ description: 'De toonregelaars bepalen de identiteit van het geluid.',
82
+ points: [
83
+ 'Startfrequentie bepaalt de begintoon',
84
+ 'Sweep verandert de frequentie naar het eindpunt',
85
+ 'Vibrato voegt een lichte trilling toe',
86
+ 'Verschillende golfvormen maken unieke klankkleuren',
87
+ ],
88
+ },
89
+ {
90
+ title: 'Vorm en textuur',
91
+ description: 'Dynamiek en filters bepalen hoe het geluid uitklinkt.',
92
+ points: [
93
+ 'Lengte bepaalt de totale tijdsduur',
94
+ 'Decay regelt hoe snel het volume afneemt',
95
+ 'Laagdoorlaatfilter maakt scherpe tonen zachter',
96
+ 'Hoogdoorlaatfilter verwijdert lage tonen',
97
+ ],
98
+ },
99
+ ],
100
+ },
101
+ {
102
+ type: 'title',
103
+ level: 2,
104
+ text: 'Praktische recepten voor game-events',
105
+ },
106
+ {
107
+ type: 'table',
108
+ headers: ['Event', 'Handige startpreset', 'Eerste aanpassing om te proberen'],
109
+ rows: [
110
+ ['Explosie', 'Ruis met lage frequentie', 'Verleng de duur en verlaag de laagdoorlaat voor meer impact'],
111
+ ['Laser', 'Zaagtand met dalende sweep', 'Verkort de duur en verhoog de hoogdoorlaat'],
112
+ ['Sprong', 'Vierkant met stijgende sweep', 'Verminder decay om de stijging duidelijk te horen'],
113
+ ['Munt', 'Vierkant met korte stijgende sweep', 'Verhoog startfrequentie voor een helder geluid'],
114
+ ['Power-up', 'Driehoek met lange stijgende sweep', 'Voeg vibrato toe voor meer dynamiek'],
115
+ ],
116
+ },
117
+ {
118
+ type: 'title',
119
+ level: 2,
120
+ text: 'Waarom WAV ideaal is voor prototypes',
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'WAV is een universeel formaat dat zonder extra bibliotheken direct kan worden geimporteerd in game engines.',
125
+ },
126
+ {
127
+ type: 'tip',
128
+ title: 'Luister op het gewenste spelvolume',
129
+ html: 'Test het gedownloade WAV-bestand direct in je game om te kijken of het past bij de achtergrondmuziek.',
130
+ },
131
+ ],
132
+ faqTitle: 'Veelgestelde Vragen',
133
+ faq: [
134
+ {
135
+ question: 'Worden mijn geluiden geupload naar een server?',
136
+ answer: 'Nee. Alle synthese en WAV-codering vinden plaats in je browser.',
137
+ },
138
+ {
139
+ question: 'Kan ik de geluiden gebruiken in mijn commerciele game?',
140
+ answer: 'Ja, de gegeneerde geluiden zijn vrij te gebruiken in je projecten.',
141
+ },
142
+ {
143
+ question: 'Hoe werkt de toonhoogte sweep?',
144
+ answer: 'De slider berekent de eindfrequentie evenredig aan de startfrequentie.',
145
+ },
146
+ {
147
+ question: 'Wat te doen als er geen geluid is?',
148
+ answer: 'Controleer of audio is toegestaan in je browser en klik opnieuw op Geluid afspelen.',
149
+ },
150
+ ],
151
+ howTo: [
152
+ {
153
+ name: 'Kies een preset',
154
+ text: 'Kies Explosie, Laser, Sprong, Munt of Power-up.',
155
+ },
156
+ {
157
+ name: 'Vorm het signaal',
158
+ text: 'Pas golfvorm, frequentie, duur en filters aan.',
159
+ },
160
+ {
161
+ name: 'Beluister het resultaat',
162
+ text: 'Klik op Geluid afspelen voor een live preview.',
163
+ },
164
+ {
165
+ name: 'Download WAV',
166
+ text: 'Klik op Download WAV om het bestand op te slaan.',
167
+ },
168
+ ],
169
+ schemas: [
170
+ {
171
+ '@context': 'https://schema.org',
172
+ '@type': 'SoftwareApplication',
173
+ name: 'Retro Geluidseffect Generator voor Games',
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: 'Worden mijn geluiden geupload naar een server?',
189
+ acceptedAnswer: {
190
+ '@type': 'Answer',
191
+ text: 'Nee. Alle synthese vindt plaats in je browser.',
192
+ },
193
+ },
194
+ ],
195
+ },
196
+ {
197
+ '@context': 'https://schema.org',
198
+ '@type': 'HowTo',
199
+ name: 'Hoe maak je een retro geluidseffect',
200
+ step: [
201
+ {
202
+ '@type': 'HowToStep',
203
+ name: 'Kies een preset',
204
+ text: 'Kies een geluidspreset.',
205
+ },
206
+ ],
207
+ },
208
+ ],
209
+ bibliographyTitle: 'Referenties',
210
+ bibliography: bibliographyEntries,
211
+ };