【Unite 2018 Tokyo】キャプチャデータはもういらない!プロシージャル・キャラクターアニメーションガイド

355 Views

May 09, 18

スライド概要

講演者:落合 信人(株式会社テレサイト)

こんな人におすすめ
・Unity初心者やキャラクタの設定が苦手なゲームエンジニア
・キャラクターの群衆をお考えのアニメーター
・動物などの四足歩行のアニメーションの構築をお考えのディレクター

受講者が得られる知見
・簡単にキャラクターの歩行アニメーションが設定できる自作アセットの紹介
・プロシージャル・キャラクターアニメーションのプログラムの方法
・四足歩行などの多足アニメーションへの応用

profile-image

リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

2018/5/9 キャプチャデータはもういらない! プロシージャル キャラクターアニメーションガイド Procedural Character Animation Guide

2.

落合信人 Telesight / Technical Director 映画・テレビのVFXスーパーバイザー 特撮ドラマプロデューサー プラグインプログラマー 現在ディープラーニング勉強中! @numbershots

3.

従来のキーフレーム型アニメーションの問題点 • • • • • モーションデータは修正が大変 手付けの方法は作業量が多い キャラクター分だけモーションを準備しなければならない モーションのブレンドツリーを組むのも大変 動きが決まっているので単調に見える

4.

プログラムだけでアニメーションするAssetを開発 Procedural Character Animation

5.

SmartRig Biped • • • • • • プログラムだけで歩行~走行アニメーションを実現 体系と移動に応じた動きをリアルタイムに生成 足の滑りもなく、接地面のオブジェクトも指定可能 Mecanimが適用されたモデルなら、ワンタッチで設定 RagdollやNavMeshにも対応 プログラムなのでアニメーションデータも必要ない

6.

SmartRig Biped パラメーター SmartRig Bipedのパラメータは大きく二つに分かれて います。 Setup Parameter キャラクタの基本姿勢の調整。腰の位置や手の曲がり具 合など Animation Parameter アニメーションの調整。足の上げ具合や曲げ具合、フット ステップに応じた、頭と胴、両手の位置や曲げ具

7.

Unityでの使い方 lゲームキャラクタなどの基本モーションを制御できる。 lパラメータを調整し、簡単にバリエーションを出せる。 lイベントモーションなどは、アニメーションレイヤーで重ねてスクリプトで制御。 l群衆などは、キャラクタの位置と回転だけ制御すれば良い。 lVRなどのリアルな背景との合成もフットステップが滑らない。

8.

基本アルゴリズム • • • • • • • 2歩の距離を定義 移動距離で設定距離をカウント 0.0~0.5を右足を停止 0.5~1.0で左足を停止 停止以外は、元の位置を追っかける カウントからSinなどで上下を追加 Sinを変換して、足の回転等を再現

9.

カウントコード void Start () { cont_up = 0; length = 1.0; //カウントの初期値 //左右2歩の距離の設定 } void Update () { this_pos = this.transform.position; //現在の位置 move_vec = this_pos – this_pos0; //現在の位置から一つ前の位置を引く(移動したベクトル値) ds_len = move_vec.magnitude; //移動したベクトル値を長さに変える this_pos0 = this_pos; //現在の位置を保存しておく cont_up = cont_up + ds_len /length; cont_footleft = cont_up % 1; cont_footright = (cont_up + 0.5f) % 1; } if (cont_up > 1) { cont_up = cont_up – 1; } //移動距離を腰の高さで割り、カウントに足す //左足のカウント //右足のカウント //カウントのリセット

10.

Thank you! ご静聴ありがとうございました!