「映像メディア3」カテゴリーアーカイブ

Unity Timelineを利用したアニメーション

ピタゴラ装置を作る中で,巨大なピタゴラ装置を作りたくても画面からはみ出たりするかもしれません.そこで,次の方法でカメラアニメーションを入れてみましょう.

TimeLineを追加する

  1. Window>Sequencing>Timelineを選択
  2. MainCameraを選択しながら,Timeline画面に表示されるCreateボタンをクリック
  3. MainCameraのTimelineを保存するか訪ねられるので,Saveで保存する
  4. TimelineのMainCameraトラックを選択し,赤丸のRecordingボタンをクリックする
  5. MainCameraを選択し,PositionやRotationなどを変化させる.キーフレームが打たれる.時間を変更しまたキーフレームを打つなどしアニメーションを作成する
  6. Timelineの再生ボタン(下図A)で動きを確認できる(ただしシミュレーションは働かない)
  7. アニメーションの編集などは,下図Bをクリックするとアニメーションカーブで編集できる
  8. 各キーフレームはベジェカーブで編集できる.またキーフレームを右クリックするとカーブの種類を変更できる.上図はキーフレームの左側を直線(Linear)に変更している
  9. 元に戻すには,Compared Autoを選択する

Unity入門-1_3

Physic Materialを設定します

  1. Assets>Create>Physic Materialを選択
  2. Assetsフォルダ内にPhysic Materialが作成されるので,名称をBounceに変更(名称は何でもいい)
  3. Bounceを選択し,InspectorのBouncinessを0.5に変更
  4. Cubeを選択し,BoxColliderコンポーネントのMaterialに作成したBounceをドロップする
  5. 再生し変化を確認する

Unity入門-1_2

(2019追加)

Rigid Bodyを使ってオブジェクトに重さを与える

 

  1. GameObject>3D Object>Plane で平面を取り出す
  2. GameObject>3D Object>Cube で立方体を取り出す
  3. Cubeを適当な位置に置く
  4. 再生ボタンを押す(変化なし)
  5. Cubeを選択し Component>Physics>Rigid Bodyを選択する
  6. CubeのInspectorを見るとRigid Bodyコンポーネントがアサインされていることがわかる
  7. 再生ボタンを押し変化を確認する
  8. Rigid BodyコンポーネントのMass(重量)の値を変化させ,挙動がどう変わるか確認すること

つづく

 

サイクルアニメーション

繰り返し動作をしてみたい方は,サイクルアニメーションを設定してみましょう.

サイクルアニメーションとは,ある周期(サイクル)の動き設定せずとも繰り返させることです.(参考WEB

この設定では作成されたキーフレームの最初と最後の間を繰り返します.

  1. 移動アニメーションが無い(その場歩行)場合,1歩分の動き(1サイクル)を作成し,グラフエディタを開きます.グラフエディタ>カーブ>ポストインフィニティ>サイクル を選択.
  2. その後移動アニメーションを設定する.
  3. すでに移動アニメーションがある場合は,ラフエディタ>カーブ>ポストインフィニティ>オフセットつきサイクル を選択
  4. グラフに変化はありませんが,再生してみると繰り返しているのがわかります
  5. レンダリングについては適宜指示します.

 

椅子にジョイントを入れる

ここではジョイントを入れて椅子をアニメーションさせる.

2つの方法で取り組むので,どちらかを選択してください.

 

A.モデリングをそのままにして,椅子の脚先だけを動かす.

(Aの作例)変更しました

※master ←これはロケーターと呼ぶ,位置情報のみのオブジェクトです.作成>ロケーター を選択し作成してください.

作成手順を動画で確認

B.全体を1つのオブジェクトにしてアニメーションをさせる

  1. ツールセットをモデリングに切り替える
  2. 結合したいオブジェクトを全て選ぶ
  3. メッシュ>結合□ を選択
  4. 結合の設定(下図を参照)を確認し,適用して閉じるを押す
  5. 1つのオブジェクトに結合される(ただし結合前の情報も残る)
  6. 結合前の情報が残っていると,突然形状が変わるなど不都合が起きることもあるので,この情報を削除する
  7. 編集>種類毎に削除>ヒストリ を選択
  8. ヒストリが消える

(Bの作例2)

 

アニメーションチャレンジ

アニメーションにチャレンジしてみましょう.前から転がってくる円柱などをよけるアニメーションを作成してみましょう.

 

Mayaのカメラアニメーション

カメラを追加する

  1. 作成>カメラ>カメラとエイムを選択
  2. アウトライナを見ると,camera1_groupができているので展開し,内容を確認する
  3. camera1はカメラ本体camera1_aimは注視点となる
  4. camera1_aim を移動させるとカメラが動くことを確認する.これはcamera1_aimはcamera1の向きを拘束(constrain)している状態である
  5. camera1から見ているビューを表示させるためには,表示させたいビューの パネル>camera1を選択する
  6. それぞれを動かしどのような関係になっているのか確認をすること.
  7. カメラ本体とエイムそれぞれにキーフレームが打てるのでアニメーションを作成する
  8. camera1から見たアニメーションを確認するには,camera1のビューを選択してから再生すること

プレイブラストを設定する

  1. 作成したカメラからのプレイブラストを作成するには,まずcamera1が表示されているビューを選択する
  2. 図のように明るい灰色枠線で囲まれているのが選択されている状態
  3. 再生>プレイブラストの□を選択
  4. 基本的な設定は以前のままで,表示サイズの部分を ウィンドウから に変更する.

プレイブラスト

プレイブラスト

プレイブラストは,ビューを録画してファイルに保存すること.

通常のレンダリングと違い,簡易的な方法でありプレビズ(プリビズ)などで利用される.

本格的なレンダリングに入る前にプレイブラストで動きを確認する習慣をつけましょう.プレイブラストの方法については以下のとおり.なおWindows7での方法については別途指示します.

プレイブラストの方法

  1. タイムラインで右クリックし,プレイブラストを選択する
  2. プレイブラストオプションウィンドウが開くので,各設定を行,プレイブラストをクリック(※Windowsの設定)
  3. 設定によってはプレイヤーが立ち上がり,動画が再生される.うまく再生されない場合はエンコーディングの設定を確認する.

 

参考WEBページ

https://knowledge.autodesk.com/ja/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2016/JPN/Maya/files/GUID-2D865271-2873-4EDB-82C4-7FB9D7B311E7-htm.html

アニメーションキーの削除

アニメーションしたキーの削除

1つのキーだけを削除する場合

  1. 再生バーを移動させ,右クリックし,削除を選択する
  2. キーフレームが削除される

全てのキーを削除する場合

  1. ツールセットがアニメーションになっているか確認する
  2. キー>削除の□を選択する
  3. 全てを削除したり,フレーム間を決めて削除などできる

Unity基本操作(2020)

 

練習

復習や練習を兼ねてピタゴラ装置的な物を作ってみること

 

作例

最後にオチがあることが望ましい.障害物は多いほどいい.

作成の流れ

  1. 床(Plane)作成
  2. 障害物作成
  3. ボール作成(Physics設定)
  4. 障害物のうち物理シミュレーションが必要なものにPhysicsを設定
  5. 再生し確認(うまくいくまでくり返し)
  6. Recorderアセットインポート
  7. Recorderによるキャプチャ
  8. 提出

※全ての作業はUnity再生中はできません

作成手順

  1. GameObject>3D Object>Plane で板を取り出す
  2. カメラの位置を調整し,全体が映るようにする
  3. Inspectorで原点に配置し,Scaleを10にする
  4. GameObject>3D Object>Sphere で球を作成し,選択した状態で Component>Physics>Rigidbodyを選択し,球にRigid Bodyを割り当てる
  5. 球を選択し,InspectorにRigidbodyのコンポーネントが追加されている.このRigidbodyのMass(重量)を50kgにしてみる.他の設定についてはこちらを参考のこと(質量は自由に変えてまわない)
  6. 再生ボタンを押しゲームを開始し,球が落下するか確認する
  7. 落下しない場合,RigidbodyコンポーネントのUseGravity(上図も参考)にチェックが入っているか確認すること
  8. その他にも,動作させる(つまり固定しない)オブジェクトにはRigidBodyの設定をする(作例ではシーソー部分の板や円柱)
  9. バウンスの設定をする.アセットフォルダ内で 右クリック>Create>Physic Materialを作成
  10. 作成したPhysic Materianを選択し,Bouciness(反発係数)を0.7くらいに設定する(参考サイト
  11. 作成したPhysic  Materialを球のインスペクタ内にあるSpecular ColliderコンポーネントのMaterialの欄に入力する(※他のオブジェクトの場合でもColliderに入れるとバウンスの設定ができる)
  12. Colliderは衝突判定の際に使用される簡易形状のこと.複雑な形状のオブジェクトも,簡易的なColliderを用いて衝突判定をおこなう.こうすることで計算資源を有効活用している.
  13. なお,Colliderが無いオブジェクトは動かしてもすり抜ける(アニメの幽霊みたくなる)ので注意.特にRigidbodyをつける際などは注意
  14. 再生し球が落下したあとバウンスするか確認のこと
  15. 各オブジェクトを配置し,おもいがけない動作をするように組んでみること

 

参考

こうした物理シミュレーションを応用して作成できそうなゲームやプロジェクトを考えてみてください.コインドーザーやピンボールなどもその一例です.

また物理演算を使いYoutubeで動画を作成している方もいます.(アンパンマンの頭をアニメのように入れ替え(以下略)や,竹コプターを(以下略)のような動画)

提出(進度によって変更の可能性あり)

動画のキャプチャーがうまく行きそうな場合,キャプチャーした動画を提出してもらう予定です.

Recorderによるキャプチャ方法

Unityから提供されているRecorderアセットを読み込み,作成したシミュレーションを動画にし提出してもらいます.

  1. Unity内のAssetStoreUnity Recorederと検索
  2. 無料でダウンロードできる
  3. ダウンロード後,ボタンがインポートに変わるので,インポートする(Unity再生中ににはできません)
  4. 現行バージョンの場合 Window>General>Recorder>ReorderWindow(※このメニューはUnity Recorederをインポートしないと表示されません)
  5. 現行バージョンの場合 +Add New Recorders>Movieを選択
  6. 図の設定(Windowsの場合設定が変更になる場合もある)にし,START RECORDINGをクリックし録画を始める
  7. Unityが再生され,録画が始まる
  8. Unity内の動作が終わるまで待ち,STOP RECORDINGをクリックし録画を終了させる(※Unityは再生モードのままになっているので,自分で停める
  9. 現行バージョンの場合 プロジェクトフォルダ内のRecordingsフォルダ内に録画された動画があるので再生する
  10. ※ビルド時(アプリ化する際)はUnity Recorderは取り除きましょう
  11. 以下は旧バージョンの場合の対処法です
  12. (旧バージョンの場合)メニューバーのTools>Recoreder>Video を選択(※このメニューはUnity Recorederをインポートしないと表示されません)
  13. (旧バージョンの場合)設定は図のとおり.Flip Image Verticallyは下図のようにオフにすること
  14. 最後にウィンドウ下部のstart recordingを押しキャプチャを始める.止めたい時はstop recordingを押す
  15. ウィンドウズのデスクトップからUnityのプロジェクトフォルダを探す.
  16. プロジェクトフォルダ内(アセットフォルダより上の階層)にRecordingフォルダができているので,その中のムービーを確認し,思い通りの動きをした成功映像をMaNaBoに提出

 

簡単なゲームにしてみる(2)

効果音をアサインする

  1. 音再生の準備をする
  2. scriptを選択Component>Audio>Audio Source を選択する
  3. scriptAudio Sourceが追加されます
  4. Audio Sourceは音再生装置と考えてください

myFishを少し改造する

  1. myFishを選択し,Component>Physics>sphereColider(当たり判定用球)を追加する
  2. edukitの中のhitObjSendermyFIshにアサインする
  3. このスクリプトはプレーヤー(myFish)に,当たったColliderが何なのかを,scriptに送るプログラムである
  4. 追加したコライダのisTriggerにチェックを入れる
  5. edukit内にあるArrow2PrefabをmyFishにアサインする
  6. ゲームを再生し,エサが自動向かい,音が出るか,時間表示は適切かなどを確認する
  7. Arrow2の矢印表示スクリプトは以下のサイトのスクリプトを参考にしています
    http://beatdjam.hatenablog.com/entry/2014/10/22/032751

シーン遷移の準備

  1. File>Build Settings… を選択
  2. Add open sceneをクリックし,ビルドするシーンの一覧に現在のシーンを追加する
    buidset1
  3. edukit内のopとendも追加し,edu/opのシーンが最上段にくるようにドラッグして移動させる
    build2
  4. BuildeSettingsのウインドウを閉じたあと,シーンを保存しておく

シーン遷移情報の設定

  1. edukit内opを開く
  2. opScriptを選択し,メインシーン名にゲームのメインシーン名を入力する(各自異なるので注意.画像例は02)
    opscne
  3. 保存し,ゲームを再生してみる
  4. ゲームスタートボタンが押せない場合、Canvas展開しsetsumeiPanelオフにするか(説明文が書けない),setsumeiPanelとその子のsetumeiのRaycast Targetをオフにする(パネルを残してマウスクリックを無視する設定)

レベル調整

  1. 何度かテストプレイし遊びやすく調整する
  2. また,プレイしたことのない人に遊んでもらい,難易度を調整すること
  3. オープニング→ゲーム→エンディング と1周する状態になりバグも出ないようであればビルドを実行する
  4. File>Build SettingsでBuild Settingsの画面を開き,Buildをクリックする
  5. 保存先を設定すればビルドが開始される
  6. ビルドが成功したら,早速アプリを実行してバグがないか確認すること
  7. 時間が0秒以下になってもゲームできてしまうバグを修正できる場合は修正してみること(ヒント
  8. Mulitipurposeカメラのpivotの位置などを修正しプレイしやすくする

提出について

  1. ビルド後,Mac版は1つのファイルが作成されるが,Windows版はアプリとそれが使用するファイルの入ったフォルダが作成される
  2. 提出時の際Windows版はアプリとそれが使うフォルダの3つを提出する必要があるので注意(Windows ではアプリケーションのすべてのリソースを含む Data フォルダーと共に実行可能なファイル (.exe) とdllファイルが生成されます)
    公式サイトにはまだ掲載されておりませんのでご注意ください

どのようなゲームにしますか?

  • 楽しい空間にすることはもちろんのこと
  • オリジナルのエサをMayaでモデリングする(テクスチャも)
  • エサとなる小魚をモデリングし,泳がせておいかける
  • 照明や地形や空気感にこだわる
  • オンライン対戦仕様に変更する
  • 魚以外のキャラクタも登場する
  • etc,,,,