top of page

夢の中までコードを書いていたので、羊を1万匹数える睡眠動画作製プログラムを作りました

  • 2 日前
  • 読了時間: 8分

前回の記事では、シフトの自動作成から給与明細の電子交付までをまとめた、社内業務ソフトについてご紹介しました。その最後に、長い開発の合間で気分を変えるため、癒やし系の動画と、その動画を作るためのソフトも作ったと書きました。

今回は、その続きです。

作ったのは、羊を1匹から10,000匹まで、本当に数え続ける約12時間の睡眠動画です。

夢の中までコードを書くなら、羊に会おう

前回ご紹介した社内業務ソフトは、Pythonのコードだけでも10万行弱になる、かなり大きなものです。こうした規模のソフトは、完成までに何か月もかかり、開発中はなかなか終わりが見えません。

この夏のお盆も、ほとんどその開発をしていました。ただ、長い開発ばかりを続けていると、ときどき、短い期間でいったん形になるものも作りたくなります。すぐ先にゴールが見えるものを一つ完成させると、頭の使い方が変わり、気分も切り替わります。

私はソフトを作っている間、思いついたことを細かくメモに残し、頭の中でもずっと設計を考えています。それを毎日続けていると、眠ってからも頭が止まらず、夢の中でまでコードを書いていることがあります。

そこで、ふと思いました。

どうせ夢の中でもプログラムのことを考えるのなら、眠くなる羊の動画を作っておけば、夢の中で羊に会えて、少しはよく眠れるのではないか。

そんな、真面目なのか冗談なのか自分でも分からない発想から、この開発は始まりました。

もう一つ、羊を題材にしたのには、クリーニング店らしい理由もあります。当店では日頃からウールの服を扱っています。せっかくなら、服になった後だけでなく、その前の羊にも登場してもらおう。服の品質に素材が大切なら、服になる前の羊毛にもこだわりたい。そこで、羊たちを「羊毛自慢のモデル」としてランウェイに立たせました。


羊を1匹から10,000匹まで、本当に数えます

動画では、羊毛自慢の羊たちが1匹ずつランウェイを歩き、中央のスポットライトの下でポーズを取ります。その間、「羊が1匹、羊が2匹、羊が3匹……」と数字を順番に読み上げ、画面にも表示します。

動画の冒頭付近では、羊たちがときどき小さく「メェ」と挨拶します。ただし、眠りを妨げないように、鳴き声は少しずつ小さくなり、前半の一部で聞こえなくなるようにしました。BGMにも、睡眠をテーマに制作した、暖かく穏やかな音楽を使っています。

羊毛の種類や色、体格なども少しずつ違います。中には、特別なゴールド羊も紛れ込んでいます。

睡眠用としてはもちろん、数字を音声と文字の両方で確認できるため、お子さまが数字や日本語の数え方に親しむ動画としても楽しめます。

とはいえ、最後まで無理に見届ける必要はありません。途中で眠っていただくことが、この動画の正しい使い方です。



数と睡眠のバランスから、1万匹になりました

私がYouTubeで探した限りでは、羊を1匹から10,000匹まで、本当に数え続ける動画は見当たりませんでした。それなら、真面目に挑戦してみたくなります。

ただし、数の多さだけを優先して、数字を早口で次々と読んでしまったら、睡眠動画として成立しません。眠るための動画ですから、聞いていて急かされない読み上げ方と、羊がゆっくり歩く時間は守る必要があります。

反対に、ゆっくりさだけを優先すると、YouTubeの上限である12時間以内に、十分な数の羊を入れられません。

そこで、睡眠動画として成立する読み上げ速度を先に考え、その速さを守りながら12時間以内に収められる、できるだけ大きく、きりのよい数字を計算しました。

その答えが、10,000匹でした。

12時間は43,200秒です。10,000匹を入れると、単純計算でも1匹当たり平均4.32秒しかありません。しかも、この時間には最初のオープニング画面も含まれます。

その限られた時間の中で、羊が登場し、中央まで歩き、速度を落とし、スポットライトの下でポーズを取り、数字を読み上げ、画面へ文字を表示して、反対側へ退場します。

さらに、「羊が1匹」と「羊が9,999匹」では、読み上げ音声の長さも違います。後半になるほど数字は長くなりますが、全体を急がせすぎれば、睡眠動画としてのゆったりした雰囲気が失われてしまいます。

1匹当たりの時間がわずか0.1秒長くなるだけでも、10,000匹では合計1,000秒、つまり16分40秒も長くなります。そのため、音声の長さ、羊が登場する時刻、中央でポーズを取る時刻、退場する時刻を計算し、全体のタイムラインを最初から逆算して設計しました。

完成時間は、11時間59分59秒です。

YouTubeの上限は12時間ですが、上限ぴったりで作ると、動画ファイルの時間の持ち方やYouTube側の判定によって、万が一アップロードできない可能性があります。そのため、意図的に1秒の安全余裕を残しました。

オープニング画面から最後の「羊が10,000匹」までをすべて入れながら、YouTubeの上限を超えず、睡眠動画としての速度も崩さない。この11時間59分59秒は偶然ではなく、10,000匹を確実に公開するために、最初から狙って設計した長さです。


再生時間11時間59秒
再生時間11時間59秒


1本の動画ではなく、生成ソフトを作りました

実際に作り始めると、「数字は正しく読めているか」「羊が途中で抜けていないか」「音声と画面の数字がずれていないか」「後半で問題が起きたら、12時間分を最初から作り直すのか」など、次々と気になることが出てきました。

そこで、1本の動画を手作業で編集するのではなく、条件を変えれば別の動画も作れる専用ソフトとして組み立てることにしました。

名前は、「多言語対応・羊カウント動画生成エンジン」。英語では、“Multilingual Sheep Counting Engine”としています。


10,000匹の羊には、1匹ずつ番号があります。それぞれの登場時刻、読み上げ音声、羊毛の種類や色、体格、ポーズ、鳴き声、特別な羊かどうかなどを、すべてデータとして管理しています。

音声も10,000件必要です。ただ作るだけではなく、数字の読み間違い、不自然な発音、音量差、途中の切断、ノイズなどがないか、音声認識や音響解析を使ってプログラムでも検査しています。

音声を10,000件作り、その10,000件を別の仕組みでもう一度調べる。問題が残っている場合は、そのまま動画を作らないようにしました。

また、羊の映像と、画面に表示する文字、読み上げ音声を分けているため、映像を一から作り直さずに、英語、フランス語、スペイン語などへ展開できる構造になっています。

「羊を数える動画を1本作った」のではなく、「羊を数える動画を何種類も作れるソフトを作った」という方が、実態に近いと思います。


次は、羊ジャズバンドです

このソフトでは、羊、声、画面の文字、鳴き声、BGMを、それぞれ別の層として管理しています。そのため、羊の番号や登場順を変えずに、舞台や音楽だけを差し替えられます。

その次回作として作っているのが、「羊ジャズ」バージョンです。ランウェイの後ろでは羊のジャズバンドが演奏し、BGMも穏やかなジャズに変わります。

現在、テスト版をYouTubeで公開しています。


同じ羊のデータを使いながら、舞台と音楽の組み合わせを変えるだけで、全体の雰囲気は大きく変わります。

今後、次に何を作るかは、まだ決めていません。羊を使った別の表現にするのか、この仕組みをまったく別の題材に応用するのか。ほかにも、いくつか考えていることがあります。



遊びの中にも、発見がある

前回ご紹介した社内業務ソフトでは、技術を、働きやすさや業務改善のために使いました。今回は、同じような技術を、癒やしや睡眠の方向へ振っています。

ローカルで動かす生成AI、Blender、Python、音声認識、自動品質検査、FFmpegなど、裏側ではいろいろな技術が動いています。ただし、AIに「羊を1万匹数える動画を作って」と頼めば完成するわけではありません。

どんなデータを持たせるか、羊をどのタイミングで動かすか、どの速さなら睡眠動画として成立するか、どの状態を正常と判断するか。基本の設計、アルゴリズム、ロジック、パラメーターは、人間が一つずつ考える必要があります。

「羊を10,000匹まで数える」というだけなら、一見すると、遊びのように見えるかもしれません。私自身、かなりの冗談から始めています。

それでも、どうせ作るなら、本当に10,000匹まで正しく数えたい。睡眠動画として成立させたい。別の言語でも使えるようにしたい。

そんなふうに全力で作ってみると、現在の技術でできることだけでなく、まだうまくできないことも具体的に見えてきます。

実際、このソフトを作る中で、現時点の技術が抱えている問題点がいくつも見つかりました。そして、その問題をどう解決できるか考えているうちに、もっと実用的なソフトのアイデアが生まれ、すでに設計書まで作りました。

最初から、そのソフトを思いつくことを目的にしていたわけではありません。羊を10,000匹まで数えるという、一見すると遊びのような開発へ本気で取り組んだからこそ、次につながる発見がありました。

当社では、高校生の自由研究もスポンサーとして応援しています。それも、「好きなことや気になったことへ、まず全力で取り組んでみる」という姿勢を大切にしたいからです。

最初から何の役に立つのか分からなくても、真剣に調べ、考え、形にしてみる。その過程で得た知識や発見が、思いがけないところで、次の何かに結びつくことがあります。

長い社内ソフトの開発の合間に、短いゴールが見えるものを作ろう。そう思って始めたはずが、多言語対応の羊カウント動画生成エンジンができ、さらに次の実用的なソフトの設計書まで生まれました。

何でも全力でやってみると、無駄に見えたことも、いつか別の何かにつながる。

今回の羊の動画は、そんなことを改めて感じさせてくれた開発でもありました。

眠れない夜には、ぜひ音量を少し小さめにして、羊たちのファッションショーを眺めてみてください。最後の「羊が10,000匹」まで起きている必要はありません。

皆さまが眠った後も、羊たちはきちんと数え続けます。

そして、夢の中で羊に会えたなら、このソフトを作った甲斐があります(笑)。

クリーニングのクボタ社長 久保田 恭弘

 
 
bottom of page