「Maya」カテゴリーアーカイブ

Maya->Unity 2018版

概要

  • Unityに魚のアニメーションを取りこむ準備をする
  • 最初に,MayaのIKアニメーションをベイク(焼き付け)する
  • 次にUnity互換性のあるFBX(FilmBox)形式で書き出す
  • Unityはmaya形式のファイルにも対応しているが,FBXを使う事が多いので今回はFBX形式とする

書き出しの準備

  1. 最も上の階層のボーン(joint1)を選択する
  2. 次に編集>キー>シミュレーションのベイク処理>□を選択
  3. シミュレーションのベイク処理オプションが表示される
  4. 階層は下位を選択,コントロールポイント,シェイプ(今回シェイプアニメーションは使用していませんが,,)にチェックを入れ,適用を押す
  5. タイムラインに沢山のキーフレームが打たれる.IKやコンストレインアニメーションはそのままではUnityで使えないので,全て1フレ毎のキーフレームに変換される

FBX書き出し設定

  1. FBX形式で書き出す設定をする.ファイル>全て書き出し>□ を選択しオプションを表示させる.(通常は選択項目だけ書き出すが,こちらの方が簡単なので)
  2. オプションが表されるので,ファイルタイプをFBX exporterを選択,次にプリセットを編集を押す(FBX exporterが選択できないときはこちらを参考)
  3. プリセットをAutodesk Media & Entertaimentを選択
  4. ニメーションと組み込みメディア(これでMaterialを書き出される)にチェックが入っているか確認
  5. 設定を変えると,プリセットの部分がカスタムに変化するが気にしなくてよい(プリセットをカスタマイズしたからカスタムに変わる)
    閉じるを押し,プリセット編集を終わる
  6. 設定を保存して閉じる
  7. ファイル>全て書き出しを選択しファイル名を決め,ファイルの種類がFBX exporterになっているか確認し,すべて書き出しを押す
  8. コンストレイン系のエラーが出るがコンストレイン系はベイク済みなので気にしない
  9. ファイルが出力されたらひとまず完了

次へ

Maya2018 で Arnold

CGにおけるレンダラー(描画プログラム)は,内蔵のものだけでなく,そうでないものもいくつかある.

Mayaでは,Mayaソフトウェアのレンダラーが標準で,それ以外にもMentalRay(光学現象の再現が得意),RendarMan(Pixarのアニメーションでおなじみ),V-Ray(こちらも光学現象の再現が得意),Arnold(簡単に使用できる)等が使用できる.

以下Maya2018にて説明

  1. Maya2018はArnoldがインストールされている.使用可能にするには,ウィンドウ>設定/プレファレンス>プラグインマネージャを開く
  2. mtoa.bundleの項目2つをチェックし,Mayaを再起動する
  3. 適当なモデルを配置する
  4. タブからArnoldを選択する
  5. こちらにはArnoldレンダリング専用のライトや環境光が用意されている
  6. この中のCreate Physical Skyを選択,大気光のシミュレート球が作成される
  7. マテリアルもArnold用に作成する必要があるので,ウィンドウ>レンダリングエディタ>ハイパーシェードを選択
  8. ArnoldのカテゴリのaiStandardSurfaceを選択し,マテリアルを作成する
  9. 作成したマテリアルのプリセットをプレスすると,予め設定されたマテリアルが使用できる.ここからChrome>置き換え を選択する
  10. Arnoldを使ってレンダリングする

 

Mayaテクスチャマッピング3

魚のテクスチャを作成する

  1. 先週までに制作した魚にアニメーションをつけたファイルを開く
  2. 魚が変形していない場所で再生をとめる
  3. 魚のオブジェクトを選択する
  4. UV>自動(自動でUVを割り当ての意味)を選択
  5. UVが6方向から見た様子に分割されて作成される(操作はありません)
  6. UVエディタを開くと魚がUV展開されているのがわかる
  7. 魚を選択し,スナップショットを書き出す(選択していないと書き出せない)
  8. オリジナルの魚模様を作成してみること
  9. なお,オブジェクト側のフェースを選択するとUVエディタ側もハイライトされる.対応関係が分かるので手がかりにすること.
  10. これは悪い例

Mayaテクスチャマッピング2

マテリアルを作成しオブジェクトに割り当てる

  1. 椅子の木目を作成したことを思い出しながら,新しいマテリアルを作成する(参考
  2. 作成したマテリアルのカラーの右にあるチェッカーマークをクリック
  3. ファイルを選択する
  4. ファイルアトリビュートが開かれるので,フォルダボタンをクリックし,ファイルの場所を指定する
  5. 作成されたマテリアルを立方体にアサインする
  6. ビューのマテリアル表示モードをONにし,パースビューでテクスチャが反映される
  7. レンダリングするとこのようになる

 

(次へ

 

Mayaテクスチャマッピング1

Mayaで作成したオブジェクトにテクスチャ画像を貼り付ける,テクスチャマッピングを実習する.

  1. まず,簡単なサイコロを作成する.作成>ポリゴンプリミティブ>立方体>□ で1×1×1サイズで分割もそれぞれ1にする.
  2. この立方体を選択したまま,メニューバーのUV>UVエディタを選択
  3. UVエディタの画面が開く
  4. UVエディタのポリゴン>UVのスナップショットを選択
  5. UVのスナップショットの設定を,サイズをそれぞれ512に,イメージフォーマットはPNGかJPEGにし,OKをクリック
  6. 保存した場所を覚えておくこと.次にAdobePhotoShopを開きます
  7. UVの枠が画像として保存されている.この枠線を頼りにサイコロの模様を描く
  8. 概ねサイコロはこのような模様です
  9. 完成した画像を保存するときは,UVの枠線を無い状態で保存すること

 

次へ

Maya復習ーその2

ここではMayaのマテリアル設定の復習をします.1年次では実習していないプロシージャルテクスチャ(計算で生成したテクスチャ)を,木目で使用します.

マテリアル設定やレンダリングの設定について忘れてしまった方は,少し古いレジュメになりますがこちらを参考に.

 

  1. ウィンドウ>レンダリングエディタ>ハイパーシェード を表示させる
  2. ハイパーシェードの 作成>マテリアル>Phongシェーダを選択 これでPhongのマテリアルが作成される
  3. 作成されたPhongマテリアル(Phong1など)を選択し,アトリビュートエディタのカラーの右にあるチェック模様のボタンを押す
  4. レンダーノードの作成 ウィンドウが現れるので,木目を選択
  5. アトリビュートエディタが木目のプロパティ画面になるので以下のように設定
  6. もしも,木目のプロパティ画面に移行できなかった場合,作成したPhongを選び,チェック模様だったところが右向き三角になっているのでそこをクリックすると木目編集画面へ移行する
  7. 次に作成したPhongを選択し,アトリビュートエディタのスペキュラーシェーデイングの項目を調整する
  8. このPhongマテリアルを座面にアサインする(マウス中ボタン+ドロップ)
  9. もしも木目がビューに表示されていない場合は,各ビューのテクスチャ表示をONにする
  10. 次にパイプのマテリアルを設定をする.ハイパーシェードの 作成>マテリアル>Phong を選択
  11. 新しくPhongマテリアルが作成されました.スペキュラを調整し,グレーのペンキが塗られた脚にする
  12. 本来は脚の先端が黒いのですが,そこは割愛
  13. レンダリングして完成(アンビエントライト,エリアライトを使用)
  14. レンダリングした画像を保存し,提出のこと.画像の保存方法は,レンダービューファイル>イメージの保存の,,
  15. ファイルの種類JPEGか,PNGを選択し,ファイル名を入力して保存を押す.
  16. なお保存した場所を覚えておくこと.通常はプロジェクトファイルのImagseなどに保存される.

Maya復習ーその1

Mayaの復習

Mayaの復習をしましょう.以前のレジュメも参考にしましょう.

【2019年度変更箇所】

デフォルトのレンダラーはArnoldになっていますが,Mayaソフトウェアでかまいません.

—-

ここではアトリエにありそうな丸椅子を作ります.

プロジェクトを作成しましょう.次に,ポリゴンの円柱を作成します.正確なサイズで入力したい場合には,を選びプロパティを表示させる習慣をつけましょう.

Mayaはデフォルトで1ユニット1mと換算します.Unity等で読み込む場合は,このスケールが反映されます.

椅子の作成

  1. 作成>ポリゴンプリミティブ>円柱□
  2. 作成したい椅子の座面の直径を300mm(r=150),厚みを30mmに設定します(下図参照)
  3. 作成を押します
  4. 次に,脚の円柱を作成します.直径は25mm長さは450mm
  5. 床面に設置する部分を丸めてみましょう.円柱最下部のエッジを選択(エッジ選択はこのページの17番参考)し,メッシュの編集>ベベル>□ を選択します
  6. ベベルの設定を下図のようにしてベベルをクリック
  7. アトリビュートエディタをひらき.脚を10度だけ傾けます(作例ではZ軸を-10度傾けています)
  8. 座面を上(Y軸方向)に移動します(作例ではY軸0.45の位置に).脚もY軸方向に移動(作例では0.228)
  9. 脚を外側に移動させます(作例ではX軸-0.12
  10. ピボットの▲をクリックして展開し,回転ピボットを表示チェックを入れ,ワールド回転ピボットのXの値を0にします(上図).これで原点のY軸を中心に回転させることができます
  11. もう3本の脚は特殊な複製を用いて作成しましょう.この脚を原点のY軸を中心にコピーさせながら回転させます編集>特殊な複製□ を選択し
  12. 90度回転させながら3回コピーするよう設定(下図)し,特殊な複製を押します
  13. 脚が4本になりました
  14. 次に脚乗せをトーラスを使って作成しましょう.作成>ポリゴンプリミティブ>トーラス を選択します
  15. 半径0.12,断面の半径0.005,軸の分割数40,高さの分割数20にし,作成を押します
  16. 作成されたドーナツをY軸で0.15の位置に移動させます
  17. 座面を選択し,マウスをプレスしエッジモードにします
  18. 角のエッジをダブルクリックで選択し,エッジループを選択します
  19. スケールをかけて,面取りをおこないます
  20. 中心の頂点を選択して高さ調整などもしてみましょう
  21. 座面を親にして,他の要素を親子付けをしましょう
  22. その他,気になる部分があれば頂点,エッジ,ポリゴンを移動などして修正したり,ベベルなどをつけてみましょう

 

MayaでPython(3)

繰り返し処理

以下のコードを新しく作成したファイルに記述し,test2.py で保存せよ

import maya.cmds as mc
for i in range(5):
 mc.polyCube(w=0.5, h=0.5, d=0.5, sx=1, sy=1, sz=1)
 mc.move( i, 0, 0 )

 

ブロック

Pythonの場合,ブロックはインデント(行頭からの空白)で判定する.スペースやタブを使うとよい

import maya.cmds as mc
for i in range(5):
 mc.polyCube(w=0.5, h=0.5, d=0.5, sx=1, sy=1, sz=1)
 mc.move( i, 0, 0 )
 print("for")
print("not for")

実行結果は

for

for

for

for

for

not for となる


実験1

以下のスクリプトを実行してみること.

import maya.cmds as mc
for i in range(10):
 for n in range(10):
  mc.polyCube(w=0.5, h=0.5, d=0.5, sx=1, sy=1, sz=1)
  mc.move( i, 0, n )

in変数である

各Cube間の間隔を広げる場合は, 4行目と5行目の間に i = i +1 を書き足すこと.ブロックの(空白の下図)は前後と同じにすること

ミニ課題

10個×10個×10個のCube又はSphereを生成するスクリプトを作成せよ(下図参考)

 

ミニ課題

1000個のCubeが少しずつ傾いているスクリプトを作成せよ(下図参考)

レンダリング例

戻る

MayaでPython(2)

移動

作成したオブジェクトを移動する

作成したオブジェクトを一旦削除し,スクリプトの最後の行に

mc.move( 3, 3, 3 )

を追加し実行する.

 

その他のコマンド

ポリゴン球を作成

mc.polySphere(r=2 ,sx=10, sy=10)

rは半径

ポリゴン円錐を作成

mc.polyCone(r=1, h=3, sx=10, sy=10, sz=10)

hは高さ

ポリゴン円柱を作成

mc.polyCylinder(r=0.3, h=6, sx=6, sy=6, sz=2)

 

回転

mc.rotate( 45, 10, 20)

または

mc.rotate( '45deg', 0, 0)

 

もどる)(つぎへ

MayaでPython(1)

スクリプト

Mayaにはスクリプトでコントロールできるシステムがある.

主にMELスクリプトとPythonスクリプトの2種が使用できる.MELは以前から使用されてきたため情報は豊富である.一方でPythonは汎用性が高く記述もシンプルなため,近年人気が高まっている.YoutubeやInstagramなどに使用されているほか,ディープラーニングなどにも応用されている.

今回は汎用性の高いPythonを用いて簡単なコーディングを体験してもらう.

ワークフロー

スクリプトをメモ帳などに記述し,保存.このファイルをMayaのスクリプトエディタで開き実行する


作成1

テキストエディタ(メモ帳などで可)の1行目に

import maya.cmds as mc

と記入し,ファイル名を test1.py (※今回は拡張子を書き換えてかまわない)と保存する.

mcという名前でmayaのシステムを読み込む の意味

実行

Mayaに戻り,右下のスクリプトエディタボタンをクリックし,スクリプトエディタを開く.

このファイルを実行する

スクリプトエディタを開き,ファイル>スクリプトのロード>(保存したファイルを選び)開く を選択

スクリプトを実行ボタンをクリックする

今回は何も起こらないので次に進む


コメント

コメントは行頭に#をつける

import maya.cmds as mc
#mcという名前でmayaのシステムを読み込む

コメント行はプログラム実行時に無視される

 

ポリゴンのcubeを作成する

import maya.cmds as mc
#mcという名前でmayaのシステムを読み込む
mc.polyCube()

デフォルト設定のCubeが作成される

 

数値を指定して作成する

作成したCubeを削除する

3行目を

mc.polyCube(w=1, h=1, d=1, sx=2, sy=2, sz=2)

に変更する.変化の違いを確認する.

w,h,dは幅(width),高さ(height).奥行き(depth)の値

sxはsubdivide のx方向の意味で,sy,szも同様

 

練習

幅3,高さ5,奥行き2,x方向の分割2,y方向の分割4,z方向の分割1のCubeを作成せよ

次へ