1.3K Views
October 09, 20
スライド概要
Unity認定3Dアーティストの試験範囲を念頭に3Dアーティストとして知っておきたいUnityの機能について学びます。このトレーニングを通して、DCCツールからモデルのUnityへの取り込み、マテリアルの適用、アニメーションの適用を深く学びます。さらにライティングやカメラワーク、エフェクト(Unity認定3Dアーティスト試験レベル)についても取り扱い学びます。
■こんな人におすすめ
・Unityのアニメーション、マテリアル、ライティングについて基本的な知識がある
■トレーニング環境と準備について
・使用するUnityのバージョン: Unity2019.4.8f1
・使用する素材:以下のURLからダウンロード可能です。
https://drive.google.com/drive/folders/1fDfjpN32wqdnOk1Ebw5MA8lptTrJnLGU?usp=sharing
※アニメーション機能の講習で利用しているアニメーションファイルは別途Asset Storeなどからダウンロードお願いいたします。
リアルタイム3Dコンテンツを制作・運用するための世界的にリードするプラットフォームである「Unity」の日本国内における販売、サポート、コミュニティ活動、研究開発、教育支援を行っています。ゲーム開発者からアーティスト、建築家、自動車デザイナー、映画製作者など、さまざまなクリエイターがUnityを使い想像力を発揮しています。
Generative Art — Made with Unity ティーチャートレーニングデイ 「認定3Dアーティスト編」 ユニティ・テクノロジーズ・ジャパン株式会社 荒川 巧也 1
自己紹介 荒川 巧也 ユニティ・テクノロジーズ・ジャパン株式会社所属。 ユニティでは”トレーナー”として主に企業様向けに Unityに関する導入講義実施や効率的な実装方法 のアドバイスを行っています。 2
認定3Dアーティスト試験の試験範囲 ● 3D オブジェクトのレンダリング ● ライティングオブジェクトおよび環境 ● パーティクルとエフェクトの操作 ● 基本的なアプリケーション要素のプロトタイプ作成 ● 2D アセットの操作 ● アニメーションの操作 ● ソフトウェア開発チームでの作業 3
今回使用するUnityのバージョンなど Unityのバージョン: Unity2019.4.8f1を使用します。 使用する素材: ※以下のURLからダウンロード可能です。 https://drive.google.com/drive/folders/1fDfjpN32wqdnOk1Ebw5MA8lptTrJnLGU?u sp=sharing アニメーション機能の講習で利用しているアニメーションファイルは別途Asset Storeなど からダウンロードお願いいたします。 4
プロジェクトを作成します 5
アニメーション機能について アニメーションを Animator Controllerに追加してアニメーションファイルを追加。 そして状態遷移をつなぎアニメーション制御します。 アニメーションブレンド アニメーションファイルを繋いでアニメーションを再生させる。 “ステート”とも呼ばれます。 アニメーションをブレンドするとより自然なアニ メーション遷移を作れます。 https://docs.unity3d.com/ja/2018.4/Manual/AnimationOverview.html 6
Unityにおけるアニメーション再生の流れ アニメーションが再生される流れは①→②→③→④ ① Animation Clip 各アニメーションデータ ↓ ② リターゲット ヒューマノイド(人間)型キャラクターのボーン構造を取得。Humanoid型であれば腕の長さなどキャラクターの大きさに関係なくアニ メーションを使うことができる。 ↓ ③ スキニング ウェイト情報やボーン情報によってモデルの頂点を動かす。 これをきっかけにキャラクターの頂点情報が動きます。 ↓ ↓ ④ アニメーション再生
Animation Clipの中身について どのように動かキーフレームが時間軸で打たれており、これはボーン構造がどのように動くべきなのかが定義されている。こ の情報によってアニメーションが再生される。
Avatarについて アニメーションを再生させる際、体のどの部分でアニメーションを再生するか体の各部分 ごとに管理すること ができます。これを設定する ことにより例えば「銃を撃って走って いる」というシチュエーションがある場合、ア二メーションを上半身だけ銃で撃っている アニメーションを 再生して下半身は走っているアニメーションを再生するといった2つの アニメーションを体のパーツ事に合わせて再生することができます。
Avator Maskについて この状態だと体全体に1つの設定アニメーションが同時再生されるようになります。 Avatarを確認して体全体が緑の場合(左)はアニメーショ ンが体全体に適用される。上半身が赤く表示(右)されている場合は上半身にはアニメーションが適用されない。 体全体にアニメーションが適用 下半身のみにアニメーションが適用
Ethanを追加する 11
Ethanを追加する 12
Animator Controllerを追加する 13
Animator Controllerを開く 14
Animatorを開く 15
*追加するアニメーションを”Humanoid”に変更 追加したアニメーションの Animation TypeをHumanoidに変更する
17
IdleアニメーションをAnimatorControllerに追加します
Loop Timeにチェックを入れる
Runningを追加して状態遷移するように設定する ↑ float型”Speed” ↑Runningのアニメーション
using UnityEngine;
using System.Collections;
public class PlayerController : MonoBehaviour
{
public float rotationSpeed = 100.0f;
Animator anim;
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
float move = Input.GetAxis("Vertical");
float h = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", move);
transform.position += transform.forward * move * Time.deltaTime;
transform.Rotate(0, rotationSpeed * h * Time.deltaTime, 0);
}
}
PlayerControllerを追加
PlayerControllerを追加する ↑アニメーションするようになりました。
アニメーションLayerを追加する
アニメーションレイヤーについて Unity では Animation Layers を使用すると、複雑なステートマシンを体の各部分ごとに 管理することができます。例えば、下半身のレイヤーで歩きやジャンプを管理して、上半 身のレイヤーではオブジェクトを投げたり、撃ったりする、といった場合です。 アニメーションレイヤーは Animator Controller の左上角にある Layers Widget から管 理することができます。
アバターマスクを追加する
Avator Maskとは? アニメーションを上書きするところは緑。 アニメーションを上書きしないところは クリックして赤にする。
腕の部分だけアニメーションを上書きしてみます パンチアニメーションで上書きする。
アニメーションの上書き設定について BaseLayerの状態遷移が表示される
UpperLayerのMotionにアニメーションを追加するとアニメーションを上書きすることがで きます
上書きに使うアニメーションを追加する *UpperLayer上で設定します。 クリックする。
アバターマスクを追加する
アニメーションを再生して確認する Runningを再生するとPunchするようになります
上半身と下半身で違うLayerを準備して再生する 新しいレイヤーを追加する
上半身と下半身で違うAvatorを利用する 下半身を有効化 下半身用のAvatorを作る
LowerLayerの設定を行う
Kickアニメーションを追加する 36
上半身でパンチして下半身でキックするようになる 下半身がキックするようになりました。
ここまでできたらPrefab化する 38
Animation Riggingとは Animation Rigging パッケージには、リグコンストレイントのライブラリが入っています。このライブラリは、実行時にプロシージャルな モーションを作成する際に利用できます。実行時にプロシージャルなモーションを作成することを一般に、「ランタイムリギング」と言い ます。コンストレイントは、リグと呼ばれるグループに分けてセットアップされます。リグの構築は、アセットの「Animator」ルートに割り 当てられる Rig Builder コンポーネントで行われます。 https://blogs.unity3d.com/jp/2019/05/14/introducing-the-animation-rigging-preview-package-for-unity-2019-1/
Animation Riggingを使ってみる
Animation Rigを追加する 41
Ethanを追加する 42
Rig Setupをクリックする
ボーンを表示されるようにします
ボーンが表示されました
Ethanを開いてRig1が追加されているのを確認
Multi-Aim Contraintを追加する Multi-Aim Constraintを追加
操作したい部分(今回は頭)を追加
Aim Axis -Yにする * ここの向きは使用するキャラクターによって 向きが変わります。 49
追っかけるオブジェクトを作っていきます 目で追っかける空のオブジェクトを追加
追いかけるオブジェクトを表示する
頭が動くようにする ←頭が追っかけるオブジェクトを設定する。
ターゲットの方向を向くようになります
胴体は前を向いている・・ 胴体も振り向かせるようにする。
胴体も動くようにする 複製する 名前を変更。
胴体も動くようになりました
Animation Riggingのサンプルシーンについて
おすすめのアニメーションの資料 https://www.slideshare.net/UnityTechnologiesJapan/unity-119555796
ワークショップ1 ユニティちゃんを動かしてみましょう。 59
シェーダーを変更しておく 60
using UnityEngine;
using System.Collections;
public class UnityChanController : MonoBehaviour
{
public float rotationSpeed = 100.0f;
Animator anim;
void Start()
{
anim = GetComponent<Animator>();
}
void Update()
{
float move = Input.GetAxis("Vertical");
float h = Input.GetAxis("Horizontal");
anim.SetFloat("Speed", move);
transform.position += transform.forward * move * Time.deltaTime;
transform.Rotate(0, rotationSpeed * h * Time.deltaTime, 0);
UnityChanController
if (Input.GetKeyDown(KeyCode.Space))
{
anim.SetBool("Jump", true);
}
else
{
anim.SetBool("Jump", false);
}
if (Input.GetKeyDown(KeyCode.Z))
{
anim.SetTrigger("Salute");
}
}
61
}
Timeline + Cinemachine 62
TimeLineについて プログラミング無しで、時系列にアニメーション、オーディオ、カメラワーク、パーティクル の発生などを視覚的に再生設定を行う機能。 ゲーム内ムービーや映像作品を作ることが簡単に行える。 63
ステージを配置していく * 今回はunitypackageを用意しました。 64
サンプルシーンを開く 65
UnityCarを配置していく 66
UnityCarのマテリアルを設定する 67
UnityCarを配置する 68
Ethanを配置する 69
EhtanをUnityCarの後ろに配置する 70
Default Playablesを配置する 71
Timeline Windowを表示する 72
空のオブジェクトを追加する TimelineWindowの”Create”する 73
空のオブジェクトを追加する Z軸方向が前になるようにする。 74
空のオブジェクトを配置していく 75
Timeline Windowが有効化されます 76
Transform Tween Trackを追加する 77
EthanがPathに沿って動くようにする 78
表示を秒数表示にする 79
Pathを追加する 80
TimelineにPathを設定していきます 81
EthanがPathに沿って動くようになる 82
アニメーショントラックを追加する 83
アニメーションファイルを追加する Running アニメーションを追加する。 84
Apply Scene Offsetsを選択する 85
アニメーションして歩くようになる 86
ここでアニメーションを一時停止する 87
一時停止状態のTransform情報をコピーする ドアノブの所に手が来るように位置を調整する。 Transformの値をコピーする 88
一時停止状態でアニメーションを切る 89
Ethanが手を伸ばしたところのTransform情報をDoorOpenに追加する 90
TimelineにPathを追加する 91
腕の位置が調整されました 92
そのままだと顔が出てしまう 顔が出ている。 93
きちんと座るように調整する 94
Pathを追加する Ethanが座ったPositionをEnteringCarにペースト 95
Timelineにパスを追加する 96
EndLocation EnteringCarに設定する 97
Timelineに新しくPathを追加する 98
EnteringCarだけのパスを追加する 99
車のドアが開くアニメーションを作成する 空のオブジェクトDOORLを追加 100
ドアを開くことができるようにDOORLを調整する 101
DOORL用のアニメーションを作成する 102
Animation Windowを開きます クリックする。
Doorのアニメーションを作成する ↑ ドアが閉まっている状態 ↑ ドアが閉まっている状態 ドアが開いている状態 104
Doorのアニメーションを追加する 105
UnityCarをキーボード操作できるようにする Ethanが置いていかれる。 106
EthanをUnityCarの子供オブジェクトにする
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Timeline;
public class TimeLineManager : MonoBehaviour, ITimeControl
{
public GameObject man;
// 何度も呼ばれる
public void SetTime(double time)
{
}
// クリップ開始時に呼ばれる
public void OnControlTimeStart()
{
man.transform.parent = GameObject.Find("UnityCar").transform;
}
// クリップから抜ける時に呼ばれる
public void OnControlTimeStop()
{
}
}
107
TimelineManagerのManにEthanを追加 108
Control Trackを追加する 109
Source GameObjectにTimelineを設定する 110
EthanがUnityCarの子供オブジェクトになった 111
UnityCarを動かしても一緒に移動します 112
ワークショップ unityCarを動かして車から出るアニメーションを追加してみましょう 113
Cinemachineを追加する 114
Virtual Cameraを追加する 115
Cinemachineを追加する 116
Cinemachineトラックを追加する ↓CinemachineのVirtual Cameraを追加する。 ↑ Cinemachineトラックを追加する。 117
再生するとVirtual Cameraが切り替わる 118
Dolly Track With Cartを追加する 119
トラックのパスを引いていく 120
DollyCartのSpeedを”1”にする 121
Virtual Cameraを追加する DollyCartにぶら下げます。 122
Virtual CameraのLookAtにunityCarを設定する 123
Dolly TrackをTimelineから制御するようにする ↑Activation Trackを追加する Dolly Trackがアクティベーション化されて動きます 124
Virtual CameraがUnityCarを映すようになる 125
このような形になる 126
MP4の動画として出力します Unity Recorderを追加する
Recorder Trackを追加する 128
Recorder Trackを設定した 129
出力する形式を設定する 130
動画ファイルとして出力される 131
RenderTexture Render Texture (レンダーテクスチャ) は、ランタイムに作成、更新される特殊な テクス チャ です。使用するには、まず新しいレンダーテクスチャを作成し、カメラ の 1 つを指定 して、そこにレンダリングします。次に、通常のテクスチャのように、マテリアル のレン ダーテクスチャを使用できます。 https://docs.unity3d.com/ja/2018.4/Manual/class-RenderTexture.html 132
RenderTextureと動画の連動
RenderTextureを追加します
RawImageを追加する
RawImageコンポーネントにRenderTexture追加
RawImageにVideoPlayerを追加する Render Textureを追加する。
動画ファイルを追加する 対応フォーマットはこちらをご確認ください。 https://docs.unity3d.com/ja/2019.4/Manual/VideoS ources-FileCompatibility.html
RawImageに動画が表示されました
カメラの映像をUIに表示する RawImageを追加する 140
RenderTextureを新しく追加してRawImageに追加 141
カメラを追加する 142
追加したRenderTextureをCameraに追加する 143
UIにカメラの映像が描画される カメラの映像が表示される 144
ProBuilderについて 145
プリミティブにない形を簡単に追加できる 146
ProBuilderでモデリング入門 https://www.youtube.com/watch?v=IeUNvMAA84k 147
Unity Studentプランのご紹介 https://store.unity.com/ja/academic/unity-student Unity Student には、5 シートの Unity Teams Advanced が付属します。 148
もっとUnityを学びたい方へ https://unity.com/ja/products/unity-learn 149