ハンドトラッキングHand Tracking

手の関節の位置を毎瞬間つなげて追いかけること

ポイント
  • ハンドトラッキングは手首と指の関節に点を打ち、その点を毎場面また打ってつなげていく作業です。一枚ではなく流れを扱います。
  • 手ひとつによく二十一か所を使います。手首一か所と、指ごとに四つの関節です。
  • 前の場面で手があった場所を知っていれば、次の場面はその周辺だけ調べれば済みます。このおかげでスマートフォンでもリアルタイムに動きます。
  • 手が画面の外に出たり隠れたりして見失うと、最初から探し直す段階に戻ります。
  • 点は毎回少しずつ揺れます。前後の場面を混ぜて滑らかに整えると安定しますが反応が少し遅れます。
目次

1たとえで理解する

停電した夜、懐中電灯ひとつで部屋を照らした経験があるでしょう。明かりが届く丸い範囲は手のひらほどですが、その中に見ておきたいものがずっと動いていると、懐中電灯を動かし続けなければなりません。今照らしている場所を見ながら次の瞬間どこへ行くかを見当づけて、あらかじめ少しずつ手首をひねっておくやり方です。

このコツは毎回部屋全体を照らさないことにあります。さっき照らしていた場所の周辺だけ見ればいいので腕が楽で反応も速いです。ただし対象が家具の後ろに入ったりドアの外に出たりすると、このコツは通用しません。そのときは光を広げて部屋を最初から照らし直す必要があります。

懐中電灯を勢いよく振り回すのもよくありません。丸い光がガクガクすると何を見ているのか分かりにくいので、少し遅くても滑らかにつなげて動かします。ハンドトラッキングがしているのはこの懐中電灯の扱い方です。

2くわしく

一枚ではなく流れを扱います

写真一枚で手の関節に点を打つことと、動画で手を追いかけることは目標が違います。前者は「今どこにあるか」に答え、後者は**「さっきのその手が今どこへ行ったか」に答えます。**後者を行うには前の場面の結果を覚えておく必要があります。

手ひとつによく使う場所は二十一か所です。手首一か所と、五本の指それぞれ付け根から先まで四つの関節です。この二十一個の点が毎場面新しく打たれ、前の場面の点とつながって軌跡を作ります。

番号は固定されています。何番目の点が親指の先かがいつも同じなので、前の場面の親指の先と今の場面の親指の先をそのまま比べられます。この引き算が「親指が上に3だけ動いた」といった情報を生み出します。

前の場面が分かれば探す範囲が狭まります

画面全体から手を探すのは重い作業です。逆に手があった四角を知っていれば、次の場面ではその四角を少し広げた範囲だけ調べればたいてい手はその中にあります。人の手が一場面の間に画面の反対側へ瞬間移動することはないからです。

そこで実際の道具は二つの段階を分けて動かします。手を最初に探す重い段階はたまにだけ動かし、関節の点を打つ軽い段階は毎場面動かします。手をうまく追えている間は重い段階をまるごと飛ばすこともあります。

この構造のおかげでウェブブラウザやスマートフォンのように計算余力が豊富ではない環境でも、一秒間に何十枚も処理できます。体験ツールを起動したとき最初に手を認識するまで少しかかり、そのあと滑らかになる理由がここにあります。

見失うと最初から探し直します

追跡はいつでも途切れる可能性があります。手が画面の外に出る、体に隠れる、速すぎて残像だけになる、他の手と重なる、そんな瞬間に軌跡が切れます。このとき必要なのが途切れたことに気づく仕組みです。

気づく方法は確信の値です。関節の点ごとに付く値が一斉にがくんと下がれば、今見ている場所に手がないという意味です。そうなると絞り込んでいた範囲を捨てて画面全体を調べ直す段階に戻ります。

この戻る作業を怠ると奇妙なことが起きます。手がすでに画面を離れたのに最後の場所の周辺を探し続けて、壁紙の模様に点がくっついてしまうといった具合です。逆に敏感に戻りすぎると、手が少しぼやけるたびに最初から探し直して画面が途切れます。

震えを減らすと反応が遅れます

じっとしている手にも点は少しずつ揺れます。場面ごとに別々に計算するので数ピクセルずつずれ、そのずれが画面では震えとして見えます。指先で何かを描く機能なら線が汚くなります。

そこで**前の場面の位置と今の位置を混ぜて滑らかにつなぎます。**前の比重を高めると画面はとても滑らかになりますが、手を素早く動かしたとき点が遅れてついてくる感じになります。今の位置の比重を高めると反応は速くなりますが震えが残ります。

正解は用途によって変わります。絵を描く機能は滑らかなほうを、手振りで画面を送る機能は速いほうを選びます。体験ツールで手を急に止めたとき点が少し滑っていく感じがしたら、この整えが働いているということです。

3もう少し正確に

ハンドトラッキングが出す値は関節ごとの縦横の位置と確信の値で、手のひらが表を向いているか裏を向いているか、左手か右手かを一緒に出す道具も多くあります。前後の距離まで推測して手を立体的に扱う道具もありますが、カメラ一台ではこの値は特に揺れやすくなります。

精度を語るときは二つを分けて見る必要があります。点ひとつが実際の関節からどれだけずれているか、そして手を見失わずにつなげている時間がどれだけ長いかです。前者の値がよくても頻繁に途切れると使いにくく、逆もまた同じです。

たとえがずれる点もあります。懐中電灯は丸い光ひとつを動かせば済みますが、ハンドトラッキングは関節二十一か所を同時に追いかけながら、その点の配置が手から出てくるはずのものかも一緒に見張ります。また懐中電灯は照らした場所がそのまま見えますが、ハンドトラッキングは絞り込んだ範囲の中をもう一度計算して場所を新しく推測しなければなりません。手は急に向きを変え折り畳まれもするので、その推測はよく外れます。だから範囲はいつも余裕を持たせておきます。

4やってみる

5よくある誤解

  • ハンドトラッキングが手振りの意味まで突き止めると思われがちですが、実際には関節の位置を出すだけで、「手を振る」「Vサインをする」といった判断はジェスチャー認識が引き継いで行います。

  • 一度認識すればずっと追い続けると考えられがちですが、実際には隠れたり画面の外に出たりすると途切れ、最初から探し直す段階に戻ります。

  • 点が揺れるのは性能が悪いせいだと信じられがちですが、実際には場面ごとに別々に計算する方式で常に起きることなので、整えで減らしつつ反応速度と引き換えにするしかありません。

7ひとこと要約

つまりハンドトラッキングは手の関節に打った点を毎場面また打ってつなげていく作業で、前の場面を覚えているおかげで軽く速く動きます。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02