0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Blenderで作成した3DモデルをWeb上に表示させてアニメーションを再生させる。

Posted at

はじめに

Blenderを触る機会があり、WebGLやthree.js等の3D系統の分野に興味を持ち始めたので、この記事を通して3Dモデルへの理解を深めたいと思います。

今回やること

やりたいこととしては、

  • blenderで3Dモデルを作成
  • アニメーション作成
  • three.jsでWeb上に表示
  • ボタンクリックなどのアクションを実行することで3Dモデルのアニメーションを再生
    を想定しています。

3Dモデル作成

モデル作成

ざっくりとで良いので人型のモデルを作成していきます。

まずは、頭と胴体を作成して、
スクリーンショット 2025-12-25 2.54.59.png

腕を作成します。
今のままだとただの直方体になっています。
スクリーンショット 2025-12-25 2.56.12.png

今回は腕を曲げたいので、作成した腕にループカットをし、直方体の内部に面を作成していきます。
スクリーンショット 2025-12-25 2.56.31.png

作成した腕を複製し、位置を調整して足を作成します。
めちゃくちゃざっくりですが、人型のモデルが完成しました。
スクリーンショット 2025-12-25 2.58.58.png

骨格を作る

続いて動きをつけるために必要な骨格(アーマチュア)を先ほど作成したモデルに埋め込んでいきます。
Shift+Aでアーマチュアを選択します。
スクリーンショット 2025-12-31 13.46.17.png

ボーンが一つ生成されたので位置とサイズを調整します。
このボーンはモデルの全体的な位置を調整し、基準として扱います。(今回はこのボーンの名称を「Root」とします。)
また、ボーンの先端の丸は、青枠の根元に近い方は「ヘッド」と呼び、赤枠の方は「テール」と呼ばれます。
骨格を作る際はこのヘッドを関節の根元に置くのが基本となります。
スクリーンショット 2025-12-31 14.03.26.png
次に、「Root」のテールを選択し、Eで新しいボーンを押し出します。これを背骨とし、「Spine」として扱います。このSpineのテールを選択し、先ほどと同じようにEで新しいボーンを押し出します。これを頭の位置に調整し、「Head」として扱います。
スクリーンショット 2025-12-31 15.01.45.png
次に腕を作成します。
Spineのヘッドを選択し、Eで押し出して胴体から腕の間にボーンを作成します。
スクリーンショット 2025-12-31 15.16.05.png
このボーンのテールからさらにボーンを押し出し、腕のボーンを作成し、「Arm」として扱います。その後、一つ前に作成したボーンは不要なので削除します。
スクリーンショット 2025-12-31 15.36.50.png
このArmを選択した状態で右クリックから「細分化」を選択し、二分割します。上腕に当たる部分を「UpperArm」とし、前腕に当たる部分を「LowerArm」とします。
スクリーンショット 2025-12-31 15.37.49.png
脚も腕と同じような工程で作成していきます。
Spineのヘッドを選択して押し出しボーンを作成します。このボーンのテールから新たにボーンを押し出し作成します。このボーンを「Leg」として扱います。
スクリーンショット 2025-12-31 15.46.35.png
その後、一つ前に作成したボーンは削除します。続いて「Leg」を選択した状態で細分化し、二分割します。太ももに当たる部分を「UpperLeg」、膝から脛に当たる部分を「LowerLeg」として扱います。
スクリーンショット 2025-12-31 15.50.51.png
次に、反対側の腕と脚を作成していきます。
腕と脚を選択した状態で、「名前」から「自動ネーム(左右)」を選択します。これにより、作成したボーンの名称の末尾に「.L」がつきます。
スクリーンショット 2025-12-31 16.02.34.png
その後、腕と足のボーンを選択した状態で、右クリックから「対象化」を選択します。
左側の腕と脚が作成され、名称の末尾には「.R」が付いています。
スクリーンショット 2025-12-31 16.02.52.png

スキニング

先ほどまでの工程でボーンは作成し終わりました。
ですが、今の状態だとアーマチュアとモデルが関連付いておらず、アーマチュアとモデルが別々に動いてしまう状態です。
そのため、アーマチュアとモデルを関連づける「スキニング」という工程に入ります。
オブジェクトモードに入り、モデル、アーマチュアの順番で選択します。ctrl+Pで「自動のウェイト」でを選択します。
スクリーンショット 2025-12-31 16.23.28.png

アニメーション

今回はお辞儀のアニメーションを作成していきます。
動きを左右対称にするため、Xの部分にチェックを入れてミラーを有効化します。
スクリーンショット 2025-12-31 22.44.44.png

最初に、腕の位置と角度を調整します。
この状態でアーマチュアを全選択し、Kで「位置・回転・スケール」を選択します。
スクリーンショット 2025-12-31 22.47.08.png
同じ手順で、お辞儀の状態にアーマチュアを調整し、タイムラインの位置を20に合わせ、アニメーションを登録します。
スクリーンショット 2025-12-31 22.51.49.png
お辞儀のアニメーションは大まかに出来ましたが、このままだとお辞儀したままなので、最初に作成したフレームを複製し、お辞儀から戻る状態にします。
名称未設定 (1).gif

Web上に表示

次にアニメーションをつけたモデルをWeb上に表示させます。
まず、モデルをglTF形式でエクスポートし、テキストエディタのJS上で読み込みます。
今回は、orbitControlsでカメラを操作できるようにし、床と照明を追加しています。
スクリーンショット 2025-12-31 23.52.52.png

無事にブラウザ上に表示されています。
アニメーション再生ボタンを押すことでアニメーションが再生されます。
名称未設定2.gif

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?