再現可能なシードでZalgoグリッチ文字を生成
通常の文章を、結果を予測できるZalgoグリッチ文字へ変換します。原文を入力し、1から5までの強度を選び、必要に応じて整数のシードを設定してください。システムの乱数状態には依存せず、見える文字の上・中央・下にUnicode結合文字を追加します。そのため、文章、強度、シードが同じなら、毎回まったく同じ結果になります。デザイン、テスト、名前、キャプション、創作プロトタイプを再現したい場合に便利です。
無料で実行
制御できるグリッチ効果を作成します
Zalgo文字は、通常の可視文字の後ろにUnicode結合文字を配置して作ります。フォントは本来、アクセントなどの表記に結合文字を使いますが、多数重ねると文字の上、中央、下へ広がり、壊れたような外観になります。本ツールは3つの位置から記号を選び、空白以外の各文字へ強度どおりの個数を追加します。強度1は読みやすさを保ちやすい軽い乱れ、強度5は非常に密度の高い表現です。空白と改行は維持されるため、語句と基本的な配置を確認できます。入力に既存の結合文字があっても再装飾せず、アクセントによる予期しない増幅を防ぎます。出力は画像ではなくUnicode文字列です。モックアップ、キャプション、テストデータ、メッセージなどへコピーできますが、最終的な見え方は利用先のフォントと描画処理によって異なります。
シードで同じ結果を再現します
装飾文字ジェネレーターの多くは実行のたびに結果が変わります。しかし、デザインやスナップショットテスト、キャンペーン案を後から再現する場合には不便です。本ツールではシードが入力の一部となり、小さな決定論的数値生成器を制御します。原文、強度、シードが一致すれば、結合文字の並びも一致します。シードだけを変えると密度を保った別案になり、強度を変えると対象文字ごとの記号数が変わります。既定のシードは0なので、省略しても再現可能です。負数を含む安全な整数を利用でき、アルゴリズムは常に同じように処理します。再現性が重要なら、承認した出力と3つの入力を一緒に記録してください。再試行で表現が勝手に変わらず、goldenテストでも曖昧な目視ではなく完全な文字列を比較できます。
用途に適した強度を選択します
すばやく読める必要がある場合は強度1または2から始めてください。高い設定は、ホラー画像、実験的な見出し、架空の端末障害、文字レイアウトの負荷試験などに適しています。結合文字は行の高さを増やし、周囲の要素に重なり、カーソル操作や支援技術の読み上げを難しくする場合があります。重要な内容には装飾のないアクセシブルな版も用意し、パスワード、住所、コマンド、識別子、検索キー、機械処理するデータには使わないでください。OS、ブラウザー、フォント、SNSごとに記号の配置、正規化、制限、削除が異なるため、実際の利用先で確認してください。原文は変更せず、基本文字を保った新しい文字列を返します。APIリクエストは$0.002で、ブラウザー版はローカル実行です。範囲外の強度は自動補正せず、エラーとして明示します。
活用例
ホラー作品の題字を作る
ポスター、ゲーム画面、架空の警告向けに、編集可能で再現できる壊れた文字表現を作成します。
Unicode描画を検証する
結合文字を重ねた決定論的な文字列で、行高、切り抜き、選択、代替フォントを検証します。
テーマに沿った投稿を準備する
異なるシードで複数案を生成し、投稿先で確認して、採用した版のシードを保存します。
よくある質問
利用できる強度はいくつですか?
1から5までの整数を指定してください。範囲外の値は無効な入力として拒否されます。
同じシードなら常に同じ文字になりますか?
はい。同じ原文、強度、整数シードからは、同じ結合文字の並びが生成されます。
元の文字は置き換えられますか?
いいえ。基本文字は保持され、空白以外の対象文字の後ろにUnicode結合文字が挿入されます。
別のアプリで見た目が変わるのはなぜですか?
フォントや描画処理によって配置が異なり、一部のサービスは大量の結合文字を正規化または削除するためです。
APIリクエストの料金はいくらですか?
APIリクエスト1回は$0.002です。ブラウザー版はAPIを呼ばずローカルで実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/text/zalgo-glitch \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Glitch me","intensity":2}'const res = await fetch("https://api.kit.forhosting.com/text/zalgo-glitch", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Glitch me",
"intensity": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/zalgo-glitch",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Glitch me",
"intensity": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/zalgo-glitch", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Glitch me","intensity":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Glitch me","intensity":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/zalgo-glitch", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"text": "Glitch me",
"intensity": 2
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.zalgo_glitch",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_tokens | 20000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |