YouTubeで人気の VTuber。
「どうしてキャラクターが本当にしゃべっているみたいに動くの?」
と思ったことはありませんか?
実はVTuberは、人の動きを読み取って、キャラクターを動かしています。
今回は、Scratchを使って「声に反応して口が動くVTuber風アバター」を作ってみましょう!
Scratchはインターネットにつながるパソコンから無料で利用できます。
Scratch公式サイト:https://scratch.mit.edu/
Scratchのアカウントの作り方と基本的な使い方は、下の記事で紹介しています。
VTuberのキャラクターはどうやって動いているの?
「人の動きを読み取って、キャラクターにまねさせている」
これが VTuberの 基本のしくみです。
VTuberは、次のような流れで動いています。
- 人が動く
- カメラやセンサーが動きを読み取る
- トラッキングソフトが「どんな動きか」を判断する
- アバターが同じように動く
この人の動きを読み取って追いかける技術を、トラッキングと言います。
それぞれ、くわしく見てみましょう!
カメラで「中の人」の動きを読み取る
まずは、カメラやセンサーを使って キャラクターを演じている人の 顔や 体の 動きを 1秒間に 何十回もチェックします。
人の動きをコンピューターで読み取ることを モーションキャプチャと言います。
トラッキングソフトが動きを判断する
次に、カメラが読み取った動きを トラッキングソフトが すばやく判断します。
たとえば、
- 今、目を閉じた!
- 口が開いた!
- 右を向いた!
といった感じです。
トラッキングソフトとは、人の動きを読み取ってキャラクターを動かすためのソフトです。
アバターが同じように動く
VTuberのイラストは、実は1枚の絵ではありません。
- 目
- 口
- かみの毛
- 顔
などが、バラバラのパーツに分かれています。
トラッキングソフトは、それぞれのパーツを 福笑いみたいに 動かして、キャラクターをアニメのように動かしているのです。
だから、笑ったり、しゃべったり、本当に生きているみたいに見えるんですね。
ScratchでVTuber風アバターを作ろう!
Scratchで VTuber風アバターを 作ってみましょう。
本物は AIや 特別なソフトを 使いますが、今回は、
- 声を出したら口が動く
- ときどき まばたきする
という「かんたん版 VTuber」を作ります。
しくみを シンプルにすることで、VTuberが どうやって動いているのか 分かりやすく 体験できますよ。
完成プログラム
完成した作品です。
緑のハタをおして、パソコンに向かって 何か話してみてください。
マイク付きのパソコンで試してくださいね。
完成したコードは下の通りです。
口と目のスプライトを別々に作り、それぞれにプログラムを書いて動かします。
口のスプライト
目のスプライト
ネコの体のスプライト
プログラミングの手順
口:声に合わせてパクパクさせる
コスチューム
最初に、ネコのスプライト(Sprite1)を好きな大きさにして、位置を決めましょう。
次に、口のパーツを作ります。
ネコのスプライトをコピーして、スプライトの名前をつけます。
たとえば、
- Sprite1 → Cat
- Sprite2 → mouth
のようにすると分かりやすいですよ。
口のスプライトは、体と同じ位置に置きましょう。
X座標とY座標を同じにすればOKです。
体のスプライトを選んで、口を消します。
- 顔をクリック
- グループ解除
- 顔以外の場所をクリック
- 口を選んでdeleteキー
口のスプライトは、口だけを残して他を消しましょう。
次に、閉じた口のコスチュームを作ります。
1.元々ある コスチューム2を 消す
2.コスチューム1を コピーし、新しいコスチューム2を作る
閉じた口を描きます。
3.「直線ツール」で 線を引く
4.「形を変えるツール」で 線を曲げる。
真ん中をクリック → 真ん中の点を少し下に引っ張る
5.口のあった部分に動かして、元々の口を消す
口のコスチュームが かくれてしまっている場合は、見た目カテゴリにある「最前面へ移動する」ブロックを クリックすれば出てきます。
コード
1.イベントカテゴリから「ハタが押されたとき」ブロックを出す
2.制御カテゴリから「ずっと」ブロックを「ハタが押されたとき」の下に置く
「ずっと」ブロックを使うことで、常に 声をチェックできます。
3.制御カテゴリから「もし ( ) なら でなければ」ブロックを出し、「ずっと」ブロックの中に入れる
4.演算カテゴリから「( ) > ( )」ブロックを出し、左側に調べるカテゴリの「音量」ブロックを入れ、右側に 30 を入力する
・音カテゴリの「音量」 :スプライトが出す音の大きさ
・調べるカテゴリの「音量」:マイクが拾った音の大きさ
5.「(音量)> ( 30 )」ブロックを「もし ( ) なら でなければ」ブロックの( )の中に入れる
この判定で、声を出しているかいないか判断しています。
「もし(音量) > 30 」の中には、声を出している時に口をパクパクさせる処理を入れます。
6.見た目カテゴリから「次のコスチュームにする」ブロックを入れる
7.制御カテゴリから「( 1 ) 秒待つ」ブロックを入れ、1 を 0.25 に変える
「でなければ」の中には、声を出していない場合は口を閉じる処理を入れます。
8.見た目カテゴリから「コスチュームを( Costume2 )にする」ブロックを入れる
Costume2は、口を閉じたコスチュームを指定しましょう。
緑のハタをおして 動かしてみましょう。
「サイトへのアクセス時は許可」または「今回のみ許可」をクリックしてください。
パソコンに向かって話してみてください。声に合わせて口をパクパクしたらOKです。
音量の条件の30や、待つ時間0.25は 好みの数字に 調整してみてくださいね。
目:まばたきさせる
口が動くだけでも VTuberっぽいですが、さらに「まばたき」を追加してみましょう!
まばたきがあると、キャラクターが もっと生きているみたいに 見えます。
コスチューム
ネコの体のスプライト(Cat)をコピーします。
スプライト名を「eye」などに変え、位置を体と同じにしましょう。
体のスプライトを選んで、目を消します。
口を作った時と同じように、開いた目と 閉じた目の コスチュームを作ります。
コスチューム1は、目だけを残して他を消します。
コスチューム2は、閉じた目を描きます。
- 元々あった、コスチューム2を消す
- コスチューム1をコピーする
- コスチューム2の黒目を消して、閉じた目にする
目のコスチュームが かくれてしまっている場合は、「最前面へ移動する」ブロックを クリックして出しましょう。
コード
1.イベントカテゴリから「ハタが押されたとき」ブロックを出す
2.制御カテゴリから「ずっと」ブロックを「ハタが押されたとき」の下に置く
3.制御カテゴリから「( 1 ) 秒待つ」ブロックを出して、「ずっと」ブロックの中に入れる
4.演算カテゴリから「( 1 ) から ( 10 ) までの乱数」ブロックを出し、「( 3.0 ) から ( 5.0 ) までの乱数」に変える
まばたきのタイミングが 一定にならないように 乱数を使っています。
5.見た目カテゴリから「コスチュームを( Costume2 )にする」ブロックを入れる
6.制御カテゴリから「( 1 ) 秒待つ」ブロックを出して、「( 0.25 ) 秒待つ」にする
7.見た目カテゴリから「コスチュームを( Costume1 )にする」ブロックを入れる
まばたきの間かくは 好みの数字に 変えてみてください。
最後に、背景をつけて できあがりです!
もっと本物っぽく改造してみよう
さらに改造してみましょう!
例えば、
- 体を上下にゆらす
- キーをおすと表情が変わる
- コメントが流れる
などを追加すると、もっとVTuberっぽくなります。
自分でオリジナルのキャラクターを描いてみるのも楽しいですよ!
まとめ
VTuberは、「人の動きをキャラクターに変える」ことで動いています。
本物のVTuberは、
- カメラやセンサー
- トラッキングソフト(動きを分析して キャラクターを動かす)
- 2D・3Dモデル
などを使い、細かい表情や動きを読み取って アバターを動かしています。
今回作ったScratch版は、そのしくみをシンプルにして VTuberっぽい動きを 再現したものです。
| VTuberのしくみ | 本物のVTuber | Scratch版 |
|---|---|---|
| 動きを読み取る | カメラやセンサー | マイク |
| 動きを判断する | トラッキングソフト | 条件分岐 |
| キャラクター | 2D・3Dモデルを動かす | コスチュームを切り替える |
ぜひ、自分だけの アバターを作って 遊んでみてくださいね!



