SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Mayaカメラ設定を
UnityにインポートするTips
Unity Technologies Japan 合同会社
コミュニティエバンジェリスト
小林 信行
このセッションについて
Mayaのカメラの位置、回転、ニアおよびファー
クリッピングプレーン、FOVをUnityに移すため
のHow-Toです。
本セッションでは、このような作業をしたい場合の
基本的な考え方をご紹介します。多分、同じような
方法で様々な値をMayaから引き渡すことができます
ので、皆さんも研究してみてください。
面白いTipsを発見した方は、ぜひfacebookの
『Unityユーザー助け合い所』のほうにご報告を!
このセッションについて
本セッションの関連データは以下にアップして
あります。
http://d.pr/lLDx
このセッションでお話すること
一言で説明しちゃいますと、
「MayaからUnityに直接カメラパスは引き渡せないので、カメラパス等の
アニメーションデータを焼き付けたロケータを代わりにUnityに引き渡して
やり、Unity側ではロケータが持っているアニメーションデータをメイン
カメラに引き渡すスクリプトを作成しアタッチします」
ということだけなのですが、3つ問題があります。
• FOV(MayaだとAOV?)がキーが打てるアトリビュート
 として存在してない
• なので、そもそもMayaでアニメーションキーが打てない
• だから、ドリブンキーとかも使えない
→どうする?
このセッションでお話すること
答えを言ってしまうと、
• FOVは、焦点距離(focalLength)と垂直画角(verticalFilmAperture)
から計算してもとめる
• Maya側のFOVのキーは、焦点距離にキーを打つ
• ロケータに、Mayaメインカメラの必要なアトリビュートを
 MELで転送し、シミュレーションベイクして、FBX形式で取り出す
これで終了です。後は具体的なやり方になります。
サンプルシーン:Maya上でのシーンビュー
サンプルシーン:Maya上でのカメラビュー
サンプルシーン:Unity上でのカメラビュー
Maya側での作業
カメラにアニメーションをつける
●
 以下、Mayaのカメラ名をMain_Camera、
  カメラシェイプをMain_CameraShapeとする
●
 アトリビュートエディタよりカメラシェイプ内のFit Resolution Gateを
  Verticalにしておく
●
 カメラのアニメーションで主に使用するキー

 ●
 カメラのチャンネルボックス内の
    Translate X/Y/Z、Rotate X/Y/Z、Focal Length

 ●
 「FOV変更」を記録する時には、Focal Lengthにキーを打ちます

 ●
 MayaのAngle of Viewは内部計算値なので、キーは打てないので注意
カメラにアニメーションをつける
ロケータを作成する
●
 Create>Locator からロケータを作成する
●
 ロケータ名をlocator_Cameraにする
コンストレインまで
終わった状態
ロケータをカメラにコンストレインする
●
 PointとOrientで、ロケータの位置と回転をカメラに
  コンストレインする
●
 Main_Camera→locator_Cameraの順に選択して、
  Constrain>Point□、Constrain>Orient□でコンストレインする
●
 オプションでMaintain offsetはチェックアウトしておく
●
 PointとOrientで2回コンストレインをおこなう
●
 結果、locator_Cameraの位置と回転にカメラと同じ値が入る
 (ボックスが青くなる)
ロケータのスケールX値にニアクリッピングプレーンを転送する
●
 locator_CameraのチャンネルボックスよりScale Xを選択し、
チャンネルボックスのメニューよりEdit>Expressionを選択する
●
 Expression Editorが立ち上がるので、Expressionの欄にScale X用のMELを
コピペする。Scale Xには、ニアクリッププレーンを納める
// ScaleXの処理
// 使用する変数の宣言
float $ncp;
// nearClipPlaneを取得
$ncp = `getAttr
Main_CameraShape.nearClipPlane`;
// カメラのscaleXにnearClipPlaneを納める
setAttr locator_Camera.scaleX $ncp;
ロケータのスケールY値にファークリッピングプレーンを転送する
●
 同じく、Scale Yを選択し、Expressionを追加する。
Scale Yには、ファークリッププレーンを納める
// ScaleYの処理
// 使用する変数の宣言
float $fcp;
// farClipPlaneを取得
$fcp = `getAttr Main_CameraShape.farClipPlane`;
// カメラのscaleXにfarClipPlaneを納める
setAttr locator_Camera.scaleY $fcp;
ロケータのスケールZ値にUnity互換のFOVを計算し、転送する
●
 最後にScale Zを選択し、Expressionを追加する。Scale Zには、FOVを納める
// ScaleZの処理
// 使用する変数の宣言
float $fl;
float $vfa;
float $FoV;
// シェイプノードから焦点距離を取得
$fl = `getAttr Main_CameraShape.focalLength`;
// シェイプノードから垂直画角を取得
$vfa = `getAttr Main_CameraShape.verticalFilmAperture`;
// 垂直画角と焦点距離からFOVを計算する
$FoV = 2.0 * atan((0.5 * $vfa) / ($fl * 0.03937)) * 57.29578;
// FOVをscaleZに納める
setAttr locator_Camera.scaleZ $FoV;
FOVの計算は以下のHPを参考にさせていただきました。
http://hideapp.cocolog-nifty.com/blog/2012/12/mayafov-997f.html
ロケータの値をシミュレーションベイクする
●
 locator_Cameraのチャンネルボックスより、Translate X∼Scale Zまで選択する
●
 Edit>Keys>Bake Simulationsより全キーをシミュレーションベイクする
●
 もしFカーブを最適化したいなら、グラフエディタを開き、Translate X∼Scale Zまで選択した
  後で、グラフエディタのメニューよりCurves>Simplify Curveで最適化する
シミュレーションベイクが終了すると、
全フレームにキーが打たれます。
ボックス内は
赤くなります
FBXで出力する
●
 アニメーションしているオブジェクトおよびシーンオブジェクト等とは別に
  locator_CameraのみFBXに出力する
●
 locator_CameraのみのFBXをUnityではカメラオブジェクトのパスとして使用します
●
 例として、アニメーションしているボールをBall.fbx、床をFloor.fbx、
  local_CameraをMayaCamera.fbxとして出力したものとします
Unity側での作業
FBXデータの取り込み
●
 カメラパスをFBXで転送する場合には、MayaとUnity側でシーンのスケールを合わせておくことが重要
●
 FBXをUnityのProjetctウィンドウにドロップし、ドロップしたFBXをInspactorで表示し、Modelボタンを押
すと、Meshesの中にScale Factorという項目があります。もしMayaとUnityとでサイズが違う場合にはこの値を
調整します。デフォルトでは0.01が入っています。

 ●
 Maya上でMeter単位で作業している場合:FBXに変換する時に出力単位をCentimetersにして、
    Unity上のScale Factorはデフォルトの0.01のままとします

 ●
 Maya上でCentimeter単位で作業している場合:FBXに変換する時に出力単位をCentimetersにして、
Unity上のScale Factorは、1にします。
●
 Scale Factorを調整した後で、ProjectウィンドウからFBXモデルをHierarchyにドロップします。
するとMaya上と同じスケールでモデルが表示されます。
●
 Ball.fbx、Floor.fbxを配置したシーンに、MayaCamera.fbxを配置します。
この状態でMayaCameraを選択してプレイすると、ギズモが動くことが確認できると思います。
FBXデータの取り込み
デフォルト値 Maya上でCentimeter単位で作業している
場合には、FBXの出力単位をCentimeters
に設定した上で、読み込み時にこちらの
値を1にします
Maya上でMeter単位で作業している場合には、FBX
の出力単位をCentimetersに設定して出力すると、
デフォルト値のままでMaya上のサイズとUnity上の
サイズが一致します。
UnityのMain CameraをMayaCameraの子にする
●
 Hierarchyウィンドウで、UnityのMain CameraをMayaCameraオブジェクトの子にします
●
 Main Cameraのローカル座標を以下のようにします

 ●
 Position(x,y,z) = (0,0,0)、Rotation(x,y,z)= (0,180,0)、Scale(x,y,z)=(1,1,1)

 ●
 Y軸のみ180度回転させるのは、MayaとUnityで座標系が左右異なるからです
●
 この時点で、カメラの位置と回転に関してはMayaのシーンと同じになります。
UnityのMain Cameraを
MayaCameraオブジェクトの子にする
Y軸周りに180度回転すると、
UnityとMayaのカメラの向きが一致する
MayaCameraにスクリプトをアタッチする
●
 MayaCameraオブジェクトにMayaCameraConverterスクリプトを添付します。
  このスクリプトは、MayaCameraのScale座標に入っている、ニアクリッププレーン、
ファークリッププレーン、FOVの値をUnityのMain Cameraに転送するものです。
using UnityEngine;
using System.Collections;
public class MayaCameraConverter : MonoBehaviour {
Camera _camera;
void Awake ()
{
_camera = GetComponentInChildren<Camera>();
}
void LateUpdate ()
{
	 	 _camera.nearClipPlane = transform.localScale.x;
	 	 _camera.farClipPlane = transform.localScale.y;
	 	 _camera.fieldOfView = transform.localScale.z;
}
}
ご静聴ありがとう
ございました!

Contenu connexe

Tendances

Tendances (20)

UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例  UE4におけるアニメーション制作事例
UE4におけるアニメーション制作事例
 
UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編) UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編)
 
Maya Camera Settings to Unity
Maya Camera Settings to UnityMaya Camera Settings to Unity
Maya Camera Settings to Unity
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
大規模タイトルにおけるエフェクトマテリアル運用 (SQEX大阪: 林武尊様) #UE4DD
 
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DDマテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
マテリアルとマテリアルインスタンスの仕組みと問題点の共有 (Epic Games Japan: 篠山範明) #UE4DD
 
Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
 
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
UE4を用いたTPS制作事例 EDF:IR アニメーション作成事例紹介
 
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
 
猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について猫でも分かる UE4のAnimation Blueprintの運用について
猫でも分かる UE4のAnimation Blueprintの運用について
 
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
 
UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!
 
GUILTY GEAR Xrd開発スタッフが送るスキニングのためのモデリング TIPS
GUILTY GEAR Xrd開発スタッフが送るスキニングのためのモデリング TIPSGUILTY GEAR Xrd開発スタッフが送るスキニングのためのモデリング TIPS
GUILTY GEAR Xrd開発スタッフが送るスキニングのためのモデリング TIPS
 
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
 
猫でも分かるUMG
猫でも分かるUMG猫でも分かるUMG
猫でも分かるUMG
 
絵心がなくてもわかる UE4絵作りのコツ
絵心がなくてもわかるUE4絵作りのコツ絵心がなくてもわかるUE4絵作りのコツ
絵心がなくてもわかる UE4絵作りのコツ
 
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
UE4のシーケンサーをもっともっと使いこなそう!最新情報・Tipsをご紹介!
 

Plus de 小林 信行

ハリウッド流映画脚本講座・特別編 「ゲーム」は「キャラクター」がドライブする 〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜
ハリウッド流映画脚本講座・特別編「ゲーム」は「キャラクター」がドライブする〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜ハリウッド流映画脚本講座・特別編「ゲーム」は「キャラクター」がドライブする〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜
ハリウッド流映画脚本講座・特別編 「ゲーム」は「キャラクター」がドライブする 〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜
小林 信行
 
『天空の城ラピュタ』のエピソード構成表
『天空の城ラピュタ』のエピソード構成表『天空の城ラピュタ』のエピソード構成表
『天空の城ラピュタ』のエピソード構成表
小林 信行
 

Plus de 小林 信行 (20)

攻略リニアカラー改訂版
攻略リニアカラー改訂版攻略リニアカラー改訂版
攻略リニアカラー改訂版
 
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
CEDEC2017 アーティストのためのリアルタイムシェーダー学習法
 
Unite2017 tokyo toonshadermaniax
Unite2017 tokyo toonshadermaniaxUnite2017 tokyo toonshadermaniax
Unite2017 tokyo toonshadermaniax
 
Unity道場aseスペシャル補足資料
Unity道場aseスペシャル補足資料Unity道場aseスペシャル補足資料
Unity道場aseスペシャル補足資料
 
Unity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jpUnity dojo amplifyshadereditor101_jpn-jp
Unity dojo amplifyshadereditor101_jpn-jp
 
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
Unity道場 14 Shader Forge 102 ~ShaderForgeをつかって学ぶシェーダー入門~ カスタムライティング/トゥーンシェーダー編
 
ハリウッド流映画脚本講座・特別編 「ゲーム」は「キャラクター」がドライブする 〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜
ハリウッド流映画脚本講座・特別編「ゲーム」は「キャラクター」がドライブする〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜ハリウッド流映画脚本講座・特別編「ゲーム」は「キャラクター」がドライブする〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜
ハリウッド流映画脚本講座・特別編 「ゲーム」は「キャラクター」がドライブする 〜ヒットする、原作付きキャラクターゲームシナリオの作り方〜
 
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻Unity道場08 Unityとアセットツールで学ぶ「絵づくり」の基礎 ライティング虎の巻
Unity道場08 Unityとアセットツールで学ぶ 「絵づくり」の基礎 ライティング 虎の巻
 
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
Unity道場11 Shader Forge 101 ~ShaderForgeをつかって学ぶシェーダー入門~ 基本操作とよく使われるノード編
 
Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻Unity道場08「絵づくりの基礎」ライティング虎の巻
Unity道場08「絵づくりの基礎」ライティング虎の巻
 
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクトUnityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
Unityとアセットツールで学ぶ「絵づくり」の基礎 ライト、シェーダー、イメージエフェクト
 
ゲームシナリオ構成法 2015版
ゲームシナリオ構成法 2015版ゲームシナリオ構成法 2015版
ゲームシナリオ構成法 2015版
 
Unityを使ったゲームデザイン超入門
Unityを使ったゲームデザイン超入門Unityを使ったゲームデザイン超入門
Unityを使ったゲームデザイン超入門
 
マネタイズセミナー「経験からモデルを導く方法論」
マネタイズセミナー「経験からモデルを導く方法論」マネタイズセミナー「経験からモデルを導く方法論」
マネタイズセミナー「経験からモデルを導く方法論」
 
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
ゲームデザイナーのためのキャラクター表現&コンセプトメイキング:抜粋版
 
『天空の城ラピュタ』のエピソード構成表
『天空の城ラピュタ』のエピソード構成表『天空の城ラピュタ』のエピソード構成表
『天空の城ラピュタ』のエピソード構成表
 
最新Mayaを使ったUnity 5向けキャラクターセットアップセミナー&使いこなしTips
最新Mayaを使ったUnity 5向けキャラクターセットアップセミナー&使いこなしTips最新Mayaを使ったUnity 5向けキャラクターセットアップセミナー&使いこなしTips
最新Mayaを使ったUnity 5向けキャラクターセットアップセミナー&使いこなしTips
 
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
「ユニティちゃんを踊らせよう!」モーションキャプチャーデータのアニメーション演出
 
『THE COMPREHENSIVE PBR GUIDE – Vol. 2: Practical guidelines for creating PBR ...
『THE COMPREHENSIVE PBR GUIDE – Vol. 2: Practical guidelines for creating PBR ...『THE COMPREHENSIVE PBR GUIDE – Vol. 2: Practical guidelines for creating PBR ...
『THE COMPREHENSIVE PBR GUIDE – Vol. 2: Practical guidelines for creating PBR ...
 
『THE COMPREHENSIVE PBR GUIDE Volume 1: The Theory of PBR by Allegorithmic』私家訳版
『THE COMPREHENSIVE PBR GUIDE  Volume 1: The Theory of PBR by Allegorithmic』私家訳版『THE COMPREHENSIVE PBR GUIDE  Volume 1: The Theory of PBR by Allegorithmic』私家訳版
『THE COMPREHENSIVE PBR GUIDE Volume 1: The Theory of PBR by Allegorithmic』私家訳版
 

Mayaカメラデータunityインストール