Unityティーチャートレーニングデイ -認定3Dアーティスト編-

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などからダウンロードお願いいたします。

profile-image

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

シェア

またはPlayer版

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

関連スライド

各ページのテキスト
1.

Generative Art — Made with Unity ティーチャートレーニングデイ 「認定3Dアーティスト編」 ユニティ・テクノロジーズ・ジャパン株式会社 荒川 巧也 1

2.

自己紹介 荒川 巧也 ユニティ・テクノロジーズ・ジャパン株式会社所属。 ユニティでは”トレーナー”として主に企業様向けに Unityに関する導入講義実施や効率的な実装方法 のアドバイスを行っています。 2

3.

認定3Dアーティスト試験の試験範囲 ● 3D オブジェクトのレンダリング ● ライティングオブジェクトおよび環境 ● パーティクルとエフェクトの操作 ● 基本的なアプリケーション要素のプロトタイプ作成 ● 2D アセットの操作 ● アニメーションの操作 ● ソフトウェア開発チームでの作業 3

4.

今回使用するUnityのバージョンなど Unityのバージョン: Unity2019.4.8f1を使用します。 使用する素材: ※以下のURLからダウンロード可能です。 https://drive.google.com/drive/folders/1fDfjpN32wqdnOk1Ebw5MA8lptTrJnLGU?u sp=sharing アニメーション機能の講習で利用しているアニメーションファイルは別途Asset Storeなど からダウンロードお願いいたします。 4

5.

プロジェクトを作成します 5

6.

アニメーション機能について アニメーションを Animator Controllerに追加してアニメーションファイルを追加。 そして状態遷移をつなぎアニメーション制御します。 アニメーションブレンド アニメーションファイルを繋いでアニメーションを再生させる。 “ステート”とも呼ばれます。 アニメーションをブレンドするとより自然なアニ メーション遷移を作れます。 https://docs.unity3d.com/ja/2018.4/Manual/AnimationOverview.html 6

7.

Unityにおけるアニメーション再生の流れ アニメーションが再生される流れは①→②→③→④ ① Animation Clip 各アニメーションデータ ↓ ② リターゲット ヒューマノイド(人間)型キャラクターのボーン構造を取得。Humanoid型であれば腕の長さなどキャラクターの大きさに関係なくアニ メーションを使うことができる。 ↓ ③ スキニング ウェイト情報やボーン情報によってモデルの頂点を動かす。 これをきっかけにキャラクターの頂点情報が動きます。 ↓ ↓ ④ アニメーション再生

8.

Animation Clipの中身について どのように動かキーフレームが時間軸で打たれており、これはボーン構造がどのように動くべきなのかが定義されている。こ の情報によってアニメーションが再生される。

9.

Avatarについて アニメーションを再生させる際、体のどの部分でアニメーションを再生するか体の各部分 ごとに管理すること ができます。これを設定する ことにより例えば「銃を撃って走って いる」というシチュエーションがある場合、ア二メーションを上半身だけ銃で撃っている アニメーションを 再生して下半身は走っているアニメーションを再生するといった2つの アニメーションを体のパーツ事に合わせて再生することができます。

10.

Avator Maskについて この状態だと体全体に1つの設定アニメーションが同時再生されるようになります。 Avatarを確認して体全体が緑の場合(左)はアニメーショ ンが体全体に適用される。上半身が赤く表示(右)されている場合は上半身にはアニメーションが適用されない。 体全体にアニメーションが適用 下半身のみにアニメーションが適用

11.

Ethanを追加する 11

12.

Ethanを追加する 12

13.

Animator Controllerを追加する 13

14.

Animator Controllerを開く 14

15.

Animatorを開く 15

16.

*追加するアニメーションを”Humanoid”に変更 追加したアニメーションの Animation TypeをHumanoidに変更する

18.

IdleアニメーションをAnimatorControllerに追加します

19.

Loop Timeにチェックを入れる

20.

Runningを追加して状態遷移するように設定する ↑ float型”Speed” ↑Runningのアニメーション

21.
[beta]
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を追加

22.

PlayerControllerを追加する ↑アニメーションするようになりました。

23.

アニメーションLayerを追加する

24.

アニメーションレイヤーについて Unity では Animation Layers を使用すると、複雑なステートマシンを体の各部分ごとに 管理することができます。例えば、下半身のレイヤーで歩きやジャンプを管理して、上半 身のレイヤーではオブジェクトを投げたり、撃ったりする、といった場合です。 アニメーションレイヤーは Animator Controller の左上角にある Layers Widget から管 理することができます。

25.

アバターマスクを追加する

26.

Avator Maskとは? アニメーションを上書きするところは緑。 アニメーションを上書きしないところは クリックして赤にする。

27.

腕の部分だけアニメーションを上書きしてみます パンチアニメーションで上書きする。

28.

アニメーションの上書き設定について BaseLayerの状態遷移が表示される

29.

UpperLayerのMotionにアニメーションを追加するとアニメーションを上書きすることがで きます

30.

上書きに使うアニメーションを追加する *UpperLayer上で設定します。 クリックする。

31.

アバターマスクを追加する

32.

アニメーションを再生して確認する Runningを再生するとPunchするようになります

33.

上半身と下半身で違うLayerを準備して再生する 新しいレイヤーを追加する

34.

上半身と下半身で違うAvatorを利用する 下半身を有効化 下半身用のAvatorを作る

35.

LowerLayerの設定を行う

36.

Kickアニメーションを追加する 36

37.

上半身でパンチして下半身でキックするようになる 下半身がキックするようになりました。

38.

ここまでできたらPrefab化する 38

39.

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/

40.

Animation Riggingを使ってみる

41.

Animation Rigを追加する 41

42.

Ethanを追加する 42

43.

Rig Setupをクリックする

44.

ボーンを表示されるようにします

45.

ボーンが表示されました

46.

Ethanを開いてRig1が追加されているのを確認

47.

Multi-Aim Contraintを追加する Multi-Aim Constraintを追加

48.

操作したい部分(今回は頭)を追加

49.

Aim Axis -Yにする * ここの向きは使用するキャラクターによって 向きが変わります。 49

50.

追っかけるオブジェクトを作っていきます 目で追っかける空のオブジェクトを追加

51.

追いかけるオブジェクトを表示する

52.

頭が動くようにする ←頭が追っかけるオブジェクトを設定する。

53.

ターゲットの方向を向くようになります

54.

胴体は前を向いている・・ 胴体も振り向かせるようにする。

55.

胴体も動くようにする 複製する 名前を変更。

56.

胴体も動くようになりました

57.

Animation Riggingのサンプルシーンについて

58.

おすすめのアニメーションの資料 https://www.slideshare.net/UnityTechnologiesJapan/unity-119555796

59.

ワークショップ1 ユニティちゃんを動かしてみましょう。 59

60.

シェーダーを変更しておく 60

61.
[beta]
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
}

62.

Timeline + Cinemachine 62

63.

TimeLineについて プログラミング無しで、時系列にアニメーション、オーディオ、カメラワーク、パーティクル の発生などを視覚的に再生設定を行う機能。 ゲーム内ムービーや映像作品を作ることが簡単に行える。 63

64.

ステージを配置していく * 今回はunitypackageを用意しました。 64

65.

サンプルシーンを開く 65

66.

UnityCarを配置していく 66

67.

UnityCarのマテリアルを設定する 67

68.

UnityCarを配置する 68

69.

Ethanを配置する 69

70.

EhtanをUnityCarの後ろに配置する 70

71.

Default Playablesを配置する 71

72.

Timeline Windowを表示する 72

73.

空のオブジェクトを追加する TimelineWindowの”Create”する 73

74.

空のオブジェクトを追加する Z軸方向が前になるようにする。 74

75.

空のオブジェクトを配置していく 75

76.

Timeline Windowが有効化されます 76

77.

Transform Tween Trackを追加する 77

78.

EthanがPathに沿って動くようにする 78

79.

表示を秒数表示にする 79

80.

Pathを追加する 80

81.

TimelineにPathを設定していきます 81

82.

EthanがPathに沿って動くようになる 82

83.

アニメーショントラックを追加する 83

84.

アニメーションファイルを追加する Running アニメーションを追加する。 84

85.

Apply Scene Offsetsを選択する 85

86.

アニメーションして歩くようになる 86

87.

ここでアニメーションを一時停止する 87

88.

一時停止状態のTransform情報をコピーする ドアノブの所に手が来るように位置を調整する。 Transformの値をコピーする 88

89.

一時停止状態でアニメーションを切る 89

90.

Ethanが手を伸ばしたところのTransform情報をDoorOpenに追加する 90

91.

TimelineにPathを追加する 91

92.

腕の位置が調整されました 92

93.

そのままだと顔が出てしまう 顔が出ている。 93

94.

きちんと座るように調整する 94

95.

Pathを追加する Ethanが座ったPositionをEnteringCarにペースト 95

96.

Timelineにパスを追加する 96

97.

EndLocation EnteringCarに設定する 97

98.

Timelineに新しくPathを追加する 98

99.

EnteringCarだけのパスを追加する 99

100.

車のドアが開くアニメーションを作成する 空のオブジェクトDOORLを追加 100

101.

ドアを開くことができるようにDOORLを調整する 101

102.

DOORL用のアニメーションを作成する 102

103.

Animation Windowを開きます クリックする。

104.

Doorのアニメーションを作成する ↑ ドアが閉まっている状態 ↑ ドアが閉まっている状態 ドアが開いている状態 104

105.

Doorのアニメーションを追加する 105

106.

UnityCarをキーボード操作できるようにする Ethanが置いていかれる。 106

107.
[beta]
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

108.

TimelineManagerのManにEthanを追加 108

109.

Control Trackを追加する 109

110.

Source GameObjectにTimelineを設定する 110

111.

EthanがUnityCarの子供オブジェクトになった 111

112.

UnityCarを動かしても一緒に移動します 112

113.

ワークショップ unityCarを動かして車から出るアニメーションを追加してみましょう 113

114.

Cinemachineを追加する 114

115.

Virtual Cameraを追加する 115

116.

Cinemachineを追加する 116

117.

Cinemachineトラックを追加する ↓CinemachineのVirtual Cameraを追加する。 ↑ Cinemachineトラックを追加する。 117

118.

再生するとVirtual Cameraが切り替わる 118

119.

Dolly Track With Cartを追加する 119

120.

トラックのパスを引いていく 120

121.

DollyCartのSpeedを”1”にする 121

122.

Virtual Cameraを追加する DollyCartにぶら下げます。 122

123.

Virtual CameraのLookAtにunityCarを設定する 123

124.

Dolly TrackをTimelineから制御するようにする ↑Activation Trackを追加する Dolly Trackがアクティベーション化されて動きます 124

125.

Virtual CameraがUnityCarを映すようになる 125

126.

このような形になる 126

127.

MP4の動画として出力します Unity Recorderを追加する

128.

Recorder Trackを追加する 128

129.

Recorder Trackを設定した 129

130.

出力する形式を設定する 130

131.

動画ファイルとして出力される 131

132.

RenderTexture Render Texture (レンダーテクスチャ) は、ランタイムに作成、更新される特殊な テクス チャ です。使用するには、まず新しいレンダーテクスチャを作成し、カメラ の 1 つを指定 して、そこにレンダリングします。次に、通常のテクスチャのように、マテリアル のレン ダーテクスチャを使用できます。 https://docs.unity3d.com/ja/2018.4/Manual/class-RenderTexture.html 132

133.

RenderTextureと動画の連動

134.

RenderTextureを追加します

135.

RawImageを追加する

136.

RawImageコンポーネントにRenderTexture追加

137.

RawImageにVideoPlayerを追加する Render Textureを追加する。

138.

動画ファイルを追加する 対応フォーマットはこちらをご確認ください。 https://docs.unity3d.com/ja/2019.4/Manual/VideoS ources-FileCompatibility.html

139.

RawImageに動画が表示されました

140.

カメラの映像をUIに表示する RawImageを追加する 140

141.

RenderTextureを新しく追加してRawImageに追加 141

142.

カメラを追加する 142

143.

追加したRenderTextureをCameraに追加する 143

144.

UIにカメラの映像が描画される カメラの映像が表示される 144

145.

ProBuilderについて 145

146.

プリミティブにない形を簡単に追加できる 146

147.

ProBuilderでモデリング入門 https://www.youtube.com/watch?v=IeUNvMAA84k 147

148.

Unity Studentプランのご紹介 https://store.unity.com/ja/academic/unity-student Unity Student には、5 シートの Unity Teams Advanced が付属します。 148

149.

もっとUnityを学びたい方へ https://unity.com/ja/products/unity-learn 149