Mayaのリファレンス機能、
ちゃんと理解して使えば怖くない!
-前編-

この記事はMaya Advent Calendar 2021の21日目の記事です。

はいどーも。C&R TAチームに新しく入りましたMです。 

 

趣味は旅行とギャンブルと洋画鑑賞と洋ドラマ鑑賞、生きがいは即売会で同人誌を大量に買いまくること。
専門分野はリアルタイム系モデリングとリギング、データ解析とかR&Dとか色々です。 

さて今回の主題ですが、「Mayaのリファレンス機能ちゃんと理解して使えば怖くない!」です。 

  何故このテーマにしたか?というと、C&Rに参加するよりずっと昔、
ネットのこのまとめ記事を読んだ当時、リファレンスって言うほど壊れるか・・・・?
という事、「意見が分かれる理由」の項で言及されている通り、各社の技術レベルの差というのは大きいと思ったからです。 

 ただ、技術レベルより根本的な部分で作業者全体の基礎知識があるかないか が大きく差があると思います。 

 

まず、前提として 

  1. 機械やソフトウェアは設計通りにしか動かない。
  2. ”何もしてないのに壊れた” というセリフはこの世で一番信用できない!  

この2つを声を大にして主張させていただきたい。 

 1についてはこのブログを読みに来るくらいにITリテラシーのある貴方には言わずもがなですが、故障していたり外的要因が無い限りは機械もソフトも設計者が設計したとおりにしか動きません。 1+1をしろと言ったら2を返す。それが機械です。田んぼの田とかボケはカマしませんし、0や3を返すというミスは犯しません。(ビット化けや浮動小数値の精度誤差があるやんけ?!というツッコミは今回はナシで!)

 2については機械がニガテな人がPC等を壊した際に凄くよく言うあるあるセリフなのですが、よくよくヒアリングしてみると そりゃ壊れるわ! という扱いをしているケースが9割超です。(本当に何も使用者の扱い方に問題がない故障も勿論世の中には沢山存在しますが、それを遥かに凌駕する数だけ使用者が原因での破損が起きています。)

 

 物事には結果に対して因果関係となる原因が必ず付随します。原則、何もしてないのにデータが壊れるということはなく、 オペレーションミスによりデータを壊した or 扱い方を間違えたため壊れたように見えるような結果が発生している ということが殆どです。 この「壊した」や「壊れたように見える」という結果だけでなく、壊れる過程を理解すれば必然的に予防ができますし、壊れたように見えているだけなら原因さえわかれば自力で直すことができます。

 この前提を元に、本題に入っていきましょう。大事な部分ですからこの前提は忘れないでくださいね? 

 ※:意味不明なバージョン依存のデータの破損や変なDG接続は発生するようですが、今回の趣旨とは外れるのでこの点に関しては言及しません。

  • リファレンス機能とは?

 まずは、リファレンス機能について軽くおさらいしましょう。あくまで軽くなのでちゃんとした解説は公式ドキュメント等を参照してください。 

 リファレンス機能とは、簡単に言うと他のシーンデータ等を参照(リファレンス)という形でリンクさせて仮想的にインポートする仕組みです。貴方がAdobe Illustratorを使う人なら画像の埋め込みと画像のリンクをイメージしてください。前者がMayaで言う所のインポート、後者がリファレンスです。 

 Mayaでの使い方は例えば映像系ではキャラクターをセットアップしたシーン、背景モデルのシーンをアニメーション+レンダリングシーンにリファレンスして読み込みます。(もしくはこの2つは別でレンダリングのほうが下流としてリファレンス等運用は様々ありえますが今回は解説を簡素にするためにアニメーションとレンダリングシーンを一緒として扱います。) 

 もしリファレンスを使ったこと無い人は何故インポートじゃなくてリファレンス?と思うかもしれませんが、個人1人で作業するのであれば極論としてはデータ構造もフローも個人の自由なので好きにすればよいです。 

ですが、複数人が連携して作業を行う場合ファイルの取り扱い方やワークフローは作業効率に大きく影響が出ます。分野問わず、Mayaのように大規模開発を前提としたソフトではリファレンスのような多人数で作業するための仕組みが存在することが往々にしてあります。 

例えば前述の例を 

キャラクターモデラーA:キャラモデリングからスキニング、リギングまでを担当 
背景モデラーB:背景モデリングを担当 
アニメーターC:アニメーションを担当

※レンダリングやマテリアル設定は詰め済みなのでアニメーションが終わったらあとはバッチ回すだけというとってもラッキーな座組! 

 という分担の作業者三名によってプロジェクトを回したとしましょう。 

それぞれの作業者が各自の仕事をしていくわけですが、リファレンスを使用せず なおかつ共通リグを使っての先行仮アニメーション作業を進める等の手段をとらない場合は キャラモデラーと背景モデラーは同時に並行して作業が進んでいきますがアニメーターはセットアップ済みのキャラモデルが上がってくるまで完全に手すきとなってしまいます。 

 数日が経過し、アニメーターにアニメーションをつけてもらう事がかろうじて出来るキャラモデルと、アタリを取ったレベルの背景モデルが上がってきたとします。 

 この時リファレンスを使わない場合、アニメーターは 、

 ・キャラモデル(仮)のシーンデータ 

・背景モデル(仮)のシーンデータ 

 をアニメーション用シーンデータにインポートし 

 アニメーション(仮)のシーンデータを作成し、アニメーションをつけていきます。 

 
またもや数日経ちキャラモデルのFIX版が完成しました。背景モデルも同じく完成しました。 

 アニメーターは今までのアニメーションを付けていたシーンファイルにキャラモデルと背景モデルをインポートし、古い仮モデルからリターゲット等の方法でアニメーションを転送します。 

 もしくは旧アニメーションシーンからアニメーションデータだけatomなりFBXなりで書き出し、新しいシーンで最新版のモデルデータたちを読み込みアニメーションデータの移植というフローになります。 

 またまた数日経ち、チームに激震が走ります。
FIXとなっていたキャラモデルも背景モデルも版元のちゃぶ台返しでデザインが変更になりました! 

 ・・・・・・幸いJointへの何らかの変更が加わるようなデザイン変更ではありませんでしたが、キャラモデル、背景モデルは大きく改修作業が必要になりました。 
(Jointに変更が何もないとか結構都合の良いケースですが、解説のシンプル化のためにそこはご容赦を!) 

 
やれやれ、また数日経ちキャラモデルが再度FIXとなりました。 

 アニメーターはキャラモデルのインポートし直し、アニメーションの移植作業をして作業の続きをし、なんとか納品にこぎつけました。 

このエピソードを各作業者の作業内容と要点だけに絞って時系列でまとめると 


★スタート (仮で12/1としましょうか。) 

A:キャラ仮モデリング 

B:背景仮モデリング 

C:なにもすることがないので別作業※2 

 ※2:実際には骨位置だけは先行してFIXさせてラフアニメーション作業してもらったりとかするので何もすることがない という状況にはあまり発生しませんがあくまで今回はこの設定。 


★12/6 

A:仮キャラモデル提出、アニメーターにデータ渡し 

B:仮背景モデル提出、アニメーターにデータ渡し 

C:提出された各モデルデータをアニメーションシーンにインポートしてアニメーション作業スタート 


★12/10 

A:キャラモデルFIX、アニメーターにデータ渡し 

B:背景モデルFIX、アニメーターにデータ渡し 

C:仮モデルで付けたアニメーションデータだけをエクスポートし、各FIXモデルデータを読み込んだ本番用シーンを作成、アニメーションの移植+ブラッシュアップスタート 


★12/15(ちゃぶ台返し発動! 

A:キャラモデル修正作業スタート 

B:背景モデル修正作業スタート 

C:とりあえずアニメーションに影響が無さそうなので引き続き一旦のFIXモデルデータでアニメーション続行 


★12/20 

A:修正版キャラモデル提出、アニメーターにデータ渡し 

B:修正版背景モデル提出、アニメーターにデータ渡し 

C:12/10と同じくアニメーションデータだけエクスポートし、各データを読み込んだ本番シーンの作成、アニメーションの移植+修正やブラッシュアップ等の作業 


★??/?? (年を超える前に納品できたのか それは神のみぞ知る・・・・)

納品 


 とこのように進んでいくとしましょう。 
もしワークフローでリファレンスを使っているケースでは上記から主にココが変わってきます。 

 ・12/6の時点で Cはインポートではなくリファレンス機能を使ってキャラモデルシーン、背景モデルシーンを読み込み
・12/10ではリファレンスデータの更新のみで即差し替え完了
・12/20でも同じくリファレンスデータの更新だけで差し替えが完了

 と、このようにリファレンス機能を使うことで差し替え対応工数を大幅にカットすることが出来ます。

 

差し替えに伴い何らかのデータの不整合が発生さえしなければという前提にはなりますが、リファレンス先のシーンデータの開き直し、もしくは

更新したいリファレンス元データシーン名を選択し、リファレンスのリロードボタンをポチーするだけで差し替えが簡単に完了します。 

え?この程度なら大した差し替えじゃない? この差し替えが1カットのアニメーションだけなら確かに大したことは無いかもしれませんね?差し替えもこのケースでは2モデルだけですし・・・・。

 でもこれが100カットあったら愚直にインポートして差し替え作業しますか?キャラクターが10体とか読み込まれてるシーンでも?? 筆者は面倒くさくてやりたくないです。(スクリプトを組めば自動化出来ますが処理走らせる時間も勿体ない。)
 例えば手作業で1回の差し替え作業に1分かかったとして100カットで100分ですよ!?仮眠出来ちゃいます。

 さて、ここまではあくまでリファレンス機能は便利ですよー という至極初歩的な話でした。

ガンガン続きを載せたいところですが、長くなってしまったので今回は一旦ココまで!

続く後編ではディープな話題に突入します。(12/24公開予定)

——————————————————————————–

COYOTE 3DCG STUDIO

公式HP:https://3d.crdg.jp/

COYOTE 3DCG STUDIOはクリーク・アンド・リバー社が運営するゲーム専門3DCG制作集団です。 キャラモデル、背景モデル、3Dアニメーション、テクニカルアーティストによるツール開発などを得意としています。 新規立ち上げにおけるコンサルティングから量産制作まで幅広く対応可能な体制を保有しており、出向にも柔軟に対応しております。

——————————————————————————–

M

COYOTE 3DCG STUDIO データ解析・モデリング・リグ・パイプライン系TA。
3DCG、2Dソフト、プラグインオタクです。趣味のデータ解析と設計がそのまま仕事になるのでモデラーからTAになりました。
洋ドラと映画と肉とギャンブルが生きる糧、コミケのためだけに生きている。

投稿者記事

  1. Mayaのリファレンス機能、 ちゃんと理解して使えば怖くない! -中編-

    2023-12-22

  2. 処理負荷検証の話

    2022-12-14

  3. SI WeightEditor改修記!

    2022-07-27

関連記事

  1. スクリプトでAnimCurveをフィルタリング!

    2023-12-14

  2. マトリクスを使ったポーズ・モーションの左右反転

    2019-10-29

  3. melでのvector活用術 ~その3~ RotatePlaneIKを作ってみる③

    2020-07-30

  4. SI WeightEditor改修記!

    2022-07-27

スキルレーダーチャート

テクニカルアーティスト専用
スキルレーダーチャート
どなたでも無料でご利用いただけます。

ABOUT

TECH COYOTE​

テクニカルアーティストの為のまとめサイトです。​
本サイトでは、ツール開発、業務効率化等について情報発信をしていきます。

COYOTE 3DCG STUDIO

C&R Creative Studios

RECENT TWEET

ページ上部へ戻る