myspoti
Native Android client for Spotify, built with Jetpack Compose
芸人向けの台本整形・音響・照明挿入を効率化するMVP
Translation pending
MediaTypeScript · CSSGitHub @Dr-sakamotoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Next.js と Supabase で実装した、芸人・学生芸人向けの台本制作専用エディタです。
/stage)に集約:つくる(人形劇をいじる)・かく(速記)・わたす(書き出し・印刷)すぐ書く:ネタ一覧の「+ 漫才/コント/ピン」で、ユニットも題も決めずに台本を作って「かく」を開く (ユニットが無ければ「マイネタ」を作る。役はユニットの演者名、いなければ A・B)。ホーム画面のショートカットからも開ける。 「つづきを書く」に最近の台本が並ぶ。
保存:台本はこの端末(localStorage)に保存し、1分ごとに IndexedDB にも控えをとる(台本ごとに30件)。 ネタ一覧の「自動の控えから戻す」で戻せる。「かく」の右上に最後に保存した時刻。 保存できなかったとき(端末の保存場所がいっぱいなど)は「⚠ 保存できていません」、クラウドへ送れなかったときは「クラウド未送信」と出る。
クラウドとの突き合わせ(lib/sync.ts):ネタ一覧を開いたとき、手元とクラウドを id ごとに比べる。
手元にしか無い台本・ユニット(圏外で作った、送り損ねた)は消さずにクラウドへ送り直し、両方にあるものは最後に直した時刻が新しいほうを採る。
three.js(舞台)は「つくる」を開いたときだけ読み込む。
/stage) → つくる ⇄ かく ⇄ わたすネタ作成で入れた配役・衣装・使用道具・持ち込み物・音源トラックは、「わたす」で直せる。 役の追加は人形箱/小道具箱の「+」。台本で使っている役は消せない。
npm install
.env.local を作成し、Supabase の設定を入力NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
-- ユニット情報
create table units (
id uuid primary key,
name text not null,
university text,
created_at timestamptz default now()
);
-- 演者情報
create table performers (
id uuid primary key,
unit_id uuid not null references units(id) on delete cascade,
name text not null,
grade text,
created_at timestamptz default now()
);
-- 台本情報
create table scripts (
id uuid primary key,
unit_id uuid not null references units(id) on delete cascade,
title text not null,
neta_type text not null,
tools text,
bring_ins text,
costumes text,
blocks jsonb,
created_at timestamptz default now(),
updated_at timestamptz default now()
);
-- 登場人物(台本ごと)
create table characters (
id uuid primary key,
script_id uuid not null references scripts(id) on delete cascade,
name text not null,
performer_id uuid references performers(id)
);
-- 音源(ユニットごと)
create table sounds (
id uuid primary key,
unit_id uuid not null references units(id) on delete cascade,
"index" integer not null,
name text not null,
unique(unit_id, "index")
);
npm run dev
NEXT_PUBLIC_SUPABASE_URL と NEXT_PUBLIC_SUPABASE_ANON_KEY を Vercel 環境変数として追加「芸人が 1 時間台本を書いたとき、Word に戻りたくなくなること」を最重要成功指標とします。
ネタ一覧の「つくる/かく/わたす」から /stage?id=<台本id> を開く。モードは3つ(&mode=make|write|hand)。
台本の本体は舞台の項目(scripts[].stage)。これまでのブロック形式(blocks)は、保存のたびに舞台の項目から起こし直している(クラウドの blocks 列と、これまでの形を読む側のため)。
新規台本の設定(「既存の台本を読み込む」)か、「わたす」から。Word(.docx)・テキスト(UTF-8/Shift_JIS)・貼り付け・JSON に対応(lib/stage/importText.ts・lib/stage/scriptFile.ts)。
古い Word(.doc)と PDF は、本文をコピーして貼り付ける。
| 台本の書き方 | 落とし込む先 |
|---|---|
親父「セリフ」/親父:セリフ/親父<Tab>セリフ/名前の無い 「セリフ」(直前の話者) | セリフ(知らない名前は役を足す) |
親父 セリフ(全角空白区切り) | 3回以上出てくる名前か、登録済みの名前ならセリフ |
(ト書き)/(親父、ト書き)/(間) | 動き/間 |
明転・暗転・【じわ明転 3秒】・【ピン2 IN】 | 照明 |
【音源①】C.I『名前』・M1 C.I・SE:拍手 | 音響 |
【板付き】親父(下手)・【親父 出(下手から・中央へ)】・【親父 ハケ(上手へ)】 | 出ハケ |
タイトル:・登場人物:・使用道具:・ユニット名:・コント「題」 | 題・役・道具など |
| それ以外 | (動き)として残す(文字は捨てない) |
出ハケの書いていない台本は、しゃべる人形を板付きにして明転から始める。「わたす」の書き出しを読み込むと同じ台本に戻る。
scripts[].stage、characters[].color)。クラウドへは、本文を blocks に起こしたもの・登場人物・音源だけを送る(lib/cloud.ts)。| 触るもの | 操作 | 台本に入るもの |
|---|---|---|
| 人形 | ドラッグ/袖や人形箱へ/人形箱から | 移動/ハケ/出 |
| タップ/長押し | その場でセリフ/名前と色 | |
| 壁(ホリゾント) | タップ | (動き) |
| 照明卓 | 明転・暗転/じわ明・じわ暗 | 全体の明暗(じわは3秒) |
| 灯体 | タップ | そのピンの点灯/消灯 |
| 音源プレーヤーの網 | タップ | 新しい音源の C.I |
| 音源プレーヤーの ॥ | タップ | その音源の C.O |
| 小道具 | 小道具箱から/へ・人形の上へ | 置く/片付ける・持つ(受け取る) |
| 大道具 | 床の上をドラッグ・つまみを回す | 置く・動かす(奥行きと向きも)/片付ける |
コードは lib/stage/(状態計算・尺・編集・書き出し・ネタ管理との橋渡し。UIから切り離した純粋関数)と
components/stage/(three.js の舞台と台本ビュー)。npm test で単体テストとスナップショットテストを回す。
サンプル『父』は /stage の「サンプル『父』を追加して開く」で入る。参考の chichi.html がリポジトリに無いため、依頼書の書き出し例から再構成した抜粋。
台本を「文書」から「タイムライン」に変え、間・音源・照明をデータとして持たせて
デジタル・プレ・リハーサル(通し再生・実尺の確認)に進むための設計要件は
docs/rehearsal-data-spec.md。
中長期の順路全体は pompman docs/neta-ai-roadmap.md。
この段階でツールの成功条件は変えません。 データ収集のために必須入力を増やさないことが前提です。