154 Views
October 22, 25
スライド概要
ASWアカデミーへようこそ 私たちアークシステムワークスは、長年にわたり対戦格闘ゲームの分野で革新的な映像表現に挑戦し続けてきました。特に『ギルティギア』シリーズで確立した3Dセルルック(アニメ調)CG技術や、日本の伝統的なアニメーション表現は世界中のプレイヤーやクリエイターから高い評価をいただいています。 「ASWアカデミー」は、私たちが培ってきたこれらの貴重な知識や技術を、惜しみなく公開する動画プロジェクトです。 なぜ、あのキャラクターはあんなにも生き生きと動くのか? 心を揺さぶる映像は、いかにして生み出されるのか? 開発に携わったスタッフ自身の言葉で、その設計思想から具体的なテクニックまでを深く、そして分かりやすく解説します。 次代を担うクリエイターにとっての新たな発見や学びの場となり、ゲーム開発のさらなる可能性を共に切り拓く一助となれば幸いです。
本日の講演について
講演概要 命題:リグを覚えたいけどどこから手を付ければいいの? これまで、GGXrdのキャラクターを題材として、モデリング、スキニング、ボーン配置について 複数回にわたって社内、社外でセミナーを行ってきました。 一つの締めくくりとして、今回はリギングについて解説してみたいと思います。 リグの作成は一見すると難解で、(実際高度なことをやろうとすると難解なのですが) とくに初心者にはどこから手を付けていいか分からないものです。 しかし、キャラクターを魅力的に動かして見せるにはリギングは避けて通れません。 なにも最初から高度なことをする必要はないのです。まずは簡単なことから。 ということで、今回は基本に立ち返って、初心者でも挑戦しやすく、同時に応用によって 大きく表現力を向上させられる「コンストレイント」を使ったリグ構造について主に紹介します。 想定受講者: ・リグに興味はあるがいまひとつとっかかりがつかめないリグ初心者 ・3Dキャラクターの関節表現を向上させたいリギング中級者
講演者プロフィール 本村・C・純也 アークシステムワークス株式会社 リードモデラー / テクニカルアーティスト / 他いろいろ モデラー出身でシェーダーを書きたくてテクニカルアーティストに。 モデリング・リギング・シェーダー作成、講演とかいろいろ。 現在はテクニカルアート面のサポートおよびR&Dを担当。 代表作: GUILTY GEAR Xrdシリーズ リードモデラー/テクニカルアーティスト DRAGON BALL FighterZ(バンダイナムコエンターテインメント) ディレクター/モデリング監修/テクニカルアーティスト DNF Duel(ネクソン) シェーダー、リグ基礎開発/モデリング監修
講演の流れ PART0: そもそもリグってなんだっけ? PART1: GGシリーズの汎用リグ構造を軽く紹介 PART2: 初心者向けコンストレイントの基礎 PART3: コンストレイントの応用による関節表現リグ
最初に リグ初心者~中級者向けの内容です 本講演はリギングの初歩的な知識と、その応用を中心とした内容になります。 高度な機能を活用した本格的なリギングの話は出てきません。 特定の3Dソフトに依存しない汎用的なTIPSの話をします リグ関連の機能は、3Dソフトによってそれぞれ特色ある機能が用意されていたりしますが、 今回の講演では、おおよそどの3Dソフトにも搭載されている汎用的な機能をベースに話をします。 題材としてギルティギアシリーズのキャラクターモデルを使用するため、たまにSoftimageの画面が 出ることがありますが、紹介するのはおおよそどの3Dソフトでも再現可能なやり方です。 リグの専門家による解説ではありません 講演者はリグの専門家ではなく、必要に駆られて自己流でリグの技法を研究開発してきたものです。 そのため、一般的なリグの構造の定石とはずれていることがあるかもしれません。 また、特にMAYA、3dsMAXについてはすべての機能を使いこなしているとは言えません。 必ずしもベストなリギング、解説になっていない可能性がありますので、その点ご容赦いただければと思います。 あくまでも、アークの格闘ゲームという限定的な舞台で上手くいった事例をもとにした紹介になります。
Part0 そもそもリグってなんだっけ?
そもそもリグってなんだっけ? キャラクターのメッシュを作成し、ボーンを配置し、スキニングを行ったとしても、それだけでキャラク ターにアニメーションをつけるのは困難です。ゲームで使用されるキャラクターモデルは数十~数百 本のボーンを使うことが珍しくありません。一つポーズをとらせるだけでも多数のボーンを一つ一つ手 で操作していく必要があり、ボーン数に比例して作業工数が増えていきます。ましてや、複数の ポーズをつなげてアニメーションをつくろうと思えば、その作業はフレーム数に応じてさらに倍々に増 えていきます。 では、すべてのボーンをいじらなくても、意図した通りにポーズを作成でき、さらにそれを複数フレー ムに渡って連動させて、アニメーションを作るのを補助するような仕組みがあったらどうでしょうか? それが「リグ」です。 「リグ」の語源: リグ(RIG)とは、英語で「装具」を意味する単語です。 すなわち、何等かの目的を達成するためにとりつける、 機能を持った道具/仕掛けです。転じて、CG業界では 複数のボーンを制御してアニメーションをつけるのを補助 するための仕組み全般を指すようになったようです。
この講演での各要素の呼称について リグに関連する用語は、各3Dソフトによって呼称が違ってしまっています。 そのため、この講演内で使用する呼称について、あらかじめ定義しておきたいと思います。 メッシュ: キャラクターなどのモデルを構成する頂点とポリゴンの集合体 ボーン: キャラクターの各関節を動かすための軸となる媒体。動かしたい部位に合わせて配置する スキニング: メッシュの各頂点がどのボーンの影響を受けて動くかを指定すること コントローラー: すべてのボーンを直接さわらないで済むように、複数のボーンをまとめて操作するための媒体 リグ: コントローラーとボーンで構成された、アニメーションのための仕組み全体の集合体
メッシュ、ボーン、コントローラーの関係 ゲーム用のリグの多くは、コントローラー→ボーン→メッシュの3段階構造でキャラクターを制御す る仕組みをとっています。ゲームにエクスポートされるのはメッシュとボーンだけで、コントローラーはあ くまでも3Dソフトでモーションを作成するときにだけ使用します。 最終的にゲームに表示 メッシュ 多くの場合、リグと呼ばれる部分 ボーン スキニング ゲームにエクスポートされる部分 コントローラー リグ制御 3Dソフトでモーション作業
Part1 GGシリーズの汎用リグ構造
ボーンやコントローラーの構成 基本ボーン 基本コントローラー その他様々なコントローラー アークのリグでは、「カーブ」で作成されたオブジェ クトでボーンやコントローラーを作っています。 (注:Softimageでは、カーブオブジェクトを ボーンの代わりとして使用できるため) カーブは自由な形に作成することができるので、 各オブジェクトの「軸」を把握しやすく、また任意の 形状、サイズに調整できるため、選択がしやすくな るという利点があります。 これだと軸が わかりにくい 必ずしもカーブではなく、ヌル オブジェクトなどでも良いので すが、それだとぱっと見で軸が 判断しづらい、選択しづらい という問題が出てきます。
GGシリーズの汎用リグ構造 アークの最近の格闘ゲームでは、ギルティギアXrdで確立したリグの基本構造をベースに、タイトル 毎に改善、改良を加えています。最新作「GUILTY GEAR -STRIVE-」でも同様です。 また、他社IPのタイトルでもMAYA、3dsMAX上で同様の基本構造のリグを使用しています。 メッシュ ボーン コントローラー
パラメータで基本骨格の体格差を指定する 人体の基本的な骨格構造は共通ですが、四肢や胴の長さ、肩、腰の幅など、各パーツの比率の バランスはパラメータで指定する形になっています。 各関節の比率は違うが 構造そのものは同一 前腕と上腕の比率や、太ももと スネの比率などもパラメータで 指定する。
手付け前提、動きそうな所は全部動かせる アニメ作画のような表現力を実現する ために、キャラクターには数百本のボーン が入っていることが珍しくありません。 髪の毛や表情はもちろん、衣服のエリや スソ、あちこちの金具など、「動きそうな 所」はおおよそすべて動かせるようにボー ンを配置、スキニングされています。 登場演出や必殺技カットシーンではこ れらを駆使して1コマ1コマ動きをつけて リッチなビジュアルを構成しています。 これらの細かいボーンは共通化できな いため、共通リグとは別にキャラクター毎 に個別に作成されます。そのため、リグを 介さずにアニメーターが直接FKで操作 する形になっていることがほとんどです。
リアリティよりも表現力重視 通常時 湾曲 格闘ゲームでは、いかに強く印象に残るような、かっこい い、あるいは面白い動きを作れるか、が非常に重要です。 そのため、アークの格闘ゲーム用のリグでは、リアリティよ りも表現力を重視し、本物の人体ではできないような手 足の伸縮や拡大縮小、手足の湾曲や比率の変化をア ニメーションに組み込めるように作られています。 左図ほど極端な形で使用されることは稀ですが、一瞬 だけパースを誇張したり、わずかに手足をしならせて勢い を表現したりなど、様々な形で活用されています。 拡大縮小、比率変更
スケールアニメーションを前提にした構造 ●スケール問題が起きやすい直列の親子構造 ●スケール問題を回避しやすい並列の親子構造 ※見やすいように位置をずらしています 手足が太くなったり細くなったり、拳が大きくなったりなどといった表現には、ボーンのスケールを変化さ せる処理が必要になります。しかし、スケールアニメーションはゲームで扱うには非常にデリケートで、処 理方法の違いなどによって3Dソフトとゲームエンジン上で結果に差異がでてしまう恐れがあります。 そのため、アークではリグの構造に工夫をした上で、「スケールアニメーションは均等スケール、もしくは 末端ボーンのみ可」というルールの下で、スケールアニメーションを運用しています。
ギルティギアのリグ構造まとめ 上の図はかなり懐かしいXrdのころのものですが、スケールアニメーションを活用できる構造や、伸縮 が可能な四肢など、様々なリグ機能をつかって表現できる事の一例です。 このように、リグの機能を活用することで、表現の幅は大きく広がります。そして、これらのリグ構造を 作るための重要な要素の一つが「コンストレイント」です。 次のページから、コンストレイントの基礎的な知識について、紹介します。
Part2 初心者向けコンストレイントの基礎
初心者向けコンストレイントの基礎 「リグ」は、アニメーション作業を補助する仕組み、構造と 考えるとそれほど外れないかと思います。 そのリグを構成する 重要な要素の一つが「コンストレイント」です。 コンストレイント(constraint)は英語で「制約」とか「拘束」 といった意味を持つ単語です。 つまりは、「一定のルールに従わせる」「強制する」くらいの意 味にとらえておけばいいでしょう。 例えば、「あなたは絶対にここを動かない!」というルール であったり、「あなたは必ず私と同じ方向を向く!」というルー ルであったりします。 このコンストレイントによる動きの「強制」は、各オブジェクト が持っている親子関係よりも優先されるため、デフォルトの親 子関係だけを用いたアニメーションでは表現しづらい動きの作 成に役立ちます。
親子関係とFK、IK コンストレイントの話をする前に、まずは親子関係の話をしなくてはなりません。キャラクターモデルを構成す るボーンやコントローラーは必ず何らかの親子関係を持ちます。親が動けば、それに伴って子供も一緒に動 く、というのがすべての大前提になります。例えば、太ももを上げれば、ヒザから下も一緒に上がり、ヒザを曲 げれば足首もつられて動きます。親子関係の階層構造があるからこそ、人体の形状を保ったままキャラク ターに動きがつけられるわけです。これがFK(フォワードキネマティクス)です。 親から順に動かしていくFKとは逆に、IK (インバースキネマティクス)は、身体の末端を 選んで動かせば、その中間の関節の変形を自動 で計算してくれる仕組みです。 この、IKもまた、コンストレイントの一種です。 親子関係による動きよりも「先端位置から逆算 していい感じに曲がれ!」という「制約」を優先し ているのです。 実際のリグでは、このIKとFKを時々によって切 り替え、使い分けながらモーションを作成していく ことが一般的です。 ※ IK/FKの切り替えは今回の主旨から外れるので詳細は各自で調べてください ①まず 太もも 上げて… IKの場合 ②次に ヒザ 曲げて… 足先をヒョイ! ③さらに足首… … FKの場合
なぜ今コンストレイント? コンストレイントの歴史は古く、ゲームに3Dが本格的に取り入れられるようになったころにはすでに 3Dソフトの機能として取り入れられていました。(例:Softimage3D 1991年) そのころから考えるとだいぶ時間が経っていますが、いまだにコンストレイントはなくてはならない機能 の一つとして存在し続けています。 基本的な機能であるが故に、リギング初心者はまずこのコンストレイントを理解して活用できるよ うになることが重要になります。しかし、機能だけを説明されても、どう使ったらいいのか、想像がつき にくいこともあるかと思います。今回は、機能について軽く説明をした後で、「応用するとこんなことも できるよ!」という例を提示して、その可能性の幅の広さを理解してもらえればと思います。 もうひとつ、昨今3Dゲームエンジンの機能向上に伴い、エンジン内で直接リギングやコンス トレイント設定ができるようになってきています。 Unityの「Animation Rigging」や、Unreal Engineの「コントロールリグ」などもゲー ム中でリアルタイムに機能するコンストレイントをデフォルトでサポートしています。 その意味でも、コンストレイントの基礎と応用の可能性を把握しておくことは、今後も大いに 有用であると言えます。この講演がその助けになればと考えています。
コンストレイント3種の神器:位置、回転、向き 今回解説するのは、最も多く使われているこの3つのコンストレイントについてです。 位置、回転、向きのコンストレイントは、現行のおおよそどの3Dソフトにも標準搭載されている汎 用的なコンストレイントです。(名称は3Dソフト毎に異なりますが) それもそのはず、この3種類のコンストレイントは、とにかく使い勝手が良く、多くのケースでリギング の根幹を担っているので、無いと困ってしまうのです。 実際、アークの格闘ゲーム用リグの機能の大半はなんらかの形でこれらのコンストレイントを使っ ています。 位置 アイツと同じ位置にいろ! 回転 向き アイツと同じ方向を向け! アイツのほうを向け!
位置コンストレイント 位置 位置コンストレイントとは、つまり 「お前はアイツと同じ場所に居ろ!」 ということを強制する機能です。 シンプルでわかりやすいですね。 「位置」だけを制御するので、回転などの他の動きは自 由に動かせるのがポイントです。 アイツと同じ位置にいろ! (左図では見やすくするためにちょっとずらしていますが、本当は全 く同じ座標上にくるため、ぴったり重なることになります) ●3Dソフト毎の名称(英語) ●3Dソフト毎の名称(日本語) MAYA: Point Constraint 3dsMAX: Position Constraint Softimage: Position Constraint MAYA: ポイントコンストレイント 3dsMAX: 位置コンストレイント Softimage: 位置コンストレイント
回転コンストレイント 回転 回転コンストレイントは、 「お前はアイツと同じ方向を向け!」 ということを強制する機能です。 いわば「位置」コンストレイントの回転版です。 ターゲットと同じ方向を向くように、回転値を制御します。 制御するのは回転値だけなので、位置には影響を与え ません。 アイツと同じ方向を向け! ●3Dソフト毎の名称(英語) ●3Dソフト毎の名称(日本語) MAYA: Orient Constraint 3dsMAX: Orientation Constraint Softimage: Orientation Constraint MAYA: 方向コンストレイント 3dsMAX: 方向コンストレイント Softimage: 向き(回転)コンストレイント
「位置」と「回転」でくっつける 今紹介したこの「位置」と「回転」のコンストレイントは、よくセットで使用されます。 例えば、手に何かアイテムを持たせたりするときも、手をターゲットとして、アイテムに「位置」と「回 転」の両方のコンストレイントをつけることで、ターゲットにぴったり追従させることが出来ます。 このように、一つのオブジェクトに対して、複数のコンストレイントをかけることが可能です。 右手の子供であるターゲットに対して 「位置」と「回転」のコンストレイントを設定 ターゲット 「位置」 「回転」 右手の位置と回転に常にアイテムが追随するようになった!
コンストレイントの切り替え しかし、アイテムを手に持たせたいだけなら親子関係の形で最初から手の子供としてアイテムを 持たせておけばいいじゃない、と思うかもしれません。 実は、そこがコンストレイントの強さ、面白さになります。 コンストレイントは、アニメーションの中で自由にON・OFFを切り替えたり、影響の度合いを上げ たり下げたりというのを切り替えられるのが強みなのです。 Frame:0 Frame:10 Frame:20 右手へのコンストレイント:0% 左手へのコンストレイント:0% 右手へのコンストレイント:100% 左手へのコンストレイント:0% 右手へのコンストレイント:0% 左手へのコンストレイント:100%
向きコンストレイント 向き 向きコンストレイントは、 「お前はアイツのほうを向け!」 ということを強制する機能です。 アイツのほうを向け! 「回転」コンストレイントと同じく回転値を制御する機 能なのでややこしいですが、別の機能を持ちます。 それは、「任意の軸をターゲットに向ける」という機能で す。必ずしも前を向ける必要はなく、場合によっては横 や後ろがターゲットを向くようにすることもできます。 ●3Dソフト毎の名称(英語) ●3Dソフト毎の名称(日本語) MAYA: Aim Constraint 3dsMAX: LookAt Constraint Softimage: Direction Constraint MAYA: エイムコンストレイント 3dsMAX: ルックアットコンストレイント Softimage: 方向コンストレイント
「アップベクター」について① 「向き」コンストレイントは、今回紹介する3種のコンス トレイントの中で一番ややこしいコンストレイントです。 なのでもう少し踏み込んで解説します。 実は、「向く先のターゲット」を一つ指定しただけでは、 最終的な回転の結果を確定させることが出来ません。 そこで登場するのが「アップベクター」です。 一つ実験をしてみましょう。 両手を前に出し、左拳を右手の人差し指で指さ したまま、いろいろ動かしてみましょう。 どう動かしても、人差し指が左拳を指さすようにす ると、おおよそ「向き」コンストレイントの動きになりま す。しかし… GIF
「アップベクター」について② GIF しかし、ここで問題に気づきます。 「人差し指を左拳に向ける」という指示だけでは、ひねりの回転、つまり右手の「親指側はどっちに 向ければいいの?」という部分があいまいになったままなのです。 これでは回転を完全に制御するには不都合です。
「アップベクター」について③ そこで登場するのが「アップベクター」です。同じ動きを、 今度は右手の親指側が必ず自分の顔を向くようにして みてください。親指側の向きが自分の顔によって決まるた め、向きだけではなく、「ひねり」の回転も指定することが 出来るようになります。 このように、「向き」を基準に回転結果を完全に制御しようと すると、「向き」だけではなく「ひねり」の回転も指定す必要が あります。 アップベクター GIF 「向き」コンストレイントは、この「ひねり」の回転について「できるだけアップベクターのターゲットの ほうを向く」という制限をつけることで、オブジェクトの回転結果を完全に制御出来るようになっていま す。主要な向きはメインのターゲットを向かせ、ひねりについてはアップベクターをターゲットにする、とい うように、二つのターゲットによって最終的な回転結果を指定しているわけですね。 (ちなみに、アップベクターは必須ではなく、あえて設定しないで運用するケースもあります)
Part3 コンストレイントの応用による 関節表現リグ
コンストレイントの応用による関節表現リグ ここまで紹介した汎用的なコンストレイントを組み合わせ、応用することで様々なリグ機能を作 成することができます。その一つの大きな役割が「関節の表現」です。 キャラクターにいくらかっこいいポーズをとらせても、関節の変形が不自然だと説得力が下がりクオ リティが低く見えてしまいます。もちろん、変形結果を補助するためのボーンを増やして手作業で補 助ボーンを動かして形状を整えるというアプローチもあるにはありますが、作業量が膨大になり、現 実的ではありません。 関節をきれいに曲げるには、適切なメッシュの構造、適切なスキニング、および適切なボーンの 配置が必須になりますが、それだけでどんな姿勢でも関節がきれいに変形するようにするのは困難 です。 メッシュ構造、スキニング、ボーン配置に加えて、さらに適切なリギングによって各ボーンを連動さ せることで、そのままだと破綻してしまうような関節の変形も、きれいな形に整えることができます。 次ページから、コンストレイントを使ってこれらの変形を補助するためのボーンを制御する方法の 例をいくつか紹介します。
コンストレイント応用リギング 関節の「やせ」を回避する半回転ボーン
関節の「痩せ」を回避する半回転ボーン アクションポーズをとらせようとすると、キャ ラクターの関節を90度以上曲げるような ポーズが頻出します。そんな時、良く発生 するのが「関節が痩せてしまう」という問 題です。 左側の図がその例で、足を高く上げた 結果、お尻のボリュームが減ってしまって います。この痩せは、2本のボ-ンだけで スキニングを行った場合、スキニングの仕 様上避けられません。 (詳しくは過去のスキニングの講演参照) しかし、この痩せはリギングで比較的簡 単に解決できます。ボーンを一本追加し、 コンストレイント設定とスキニングの調整を するだけです。 GIF GIF 腰と太ももの2本のボーンだけ でスキニングすると、急角度に 曲げたときに「痩せ」が発生。 これはスキニングをどう調整しても 避けられない ボーンを一本追加し、適切なリ ギングとスキニングを行うことで、 急角度に曲げてもボリュームが 減らない構造が可能に
「回転」コンストレイントのブレンドで痩せ回避 腰 90度 回転 回転 50% 太もも 半回転 ボーン 「回転」コンストレイントのブレンド によって、腰ボーンと太ももボーン の中間の回転をする「半回転ボー ン」を追加 45度 回転 これで、太ももの回転に半分だけ 追従するボーンができます。 このボーンにスキニングした頂点は 「痩せ」ない! 「痩せ」回避のボーンのコンストレイント 設定は簡単で、腰と太ももの両ボーンに 回転コンストレイントをかけた「半回転」 ボーンを用意するだけです。腰と太ももの 回転を50%ずつブレンドすることで、 太ももの回転に半分だけ追従するボー ンができます。 仮に太もものボーン180度回転したとし ても、この半回転ボーンは90度しか回転 しません。そのため、「急角度に曲げた関 節が痩せる」という問題が起きません。 お尻部分のスキニングをするときに、「痩 せ」が発生してしまう部位にこの半回転 ボーンのウェイトを振ってあげることで、 痩せてしまっていた部位が盛り上がり、 「痩せ」を回避することができます。
「回転」のブレンドの注意点 「回転」コンストレイントを二つ以上ブレンドするときに、注意すべき点があります。 それは3次元回転をしたときの意図しない「フリップ」です。 1軸だけの回転のブレンドでは問題は起きにくいのですが、3次元回転は計算方法によっては「中間 の回転値」の結果が変わって意図した結果にならず、特定の角度で急に逆方向に回転してしまう、 いわゆる「フリップ」が発生してしまいます。 これを避けるための手法は3Dソフトによって異なります。 SOFTIMAGE MAYA 3DSMAX ? 「Orientation」コンストレイントで はなく、「Pose」コンストレイントの 回転部分を使用するとフリップを 回避できる 「Orient」コンストレイントの 「InterpType」(補完タイプ)を 「Shortest」(最短距離)に設 定する 残念ながら3DSMAXの 「Orientation」コンストレイントで はブレンド時のフリップを回避でき ないので別の工夫が必要
コンストレイント応用リギング コンストレイントによるツイストボーン
コンストレイントによるツイストボーン キャラクターに説得力のある動きをとらせようと 思うと、手足の「ひねり」の動作の再現は避けて 通れません。 例えば、前腕をひねる時、突然手首から先だ けが回転するということはなく、ひじから手首まで の節全体が上から下に徐々にねじれていくように 動きます。 GIF ツイストボーンなしだと 手首からいきなり曲がる GIF ツイストボーンによって 回転を分散 リギングでは、上腕や前腕などの各部位に数 本のボーンを配置して、それぞれ異なった配分で 回転をさせることで、このねじり(ツイスト)の動 作を再現することが多いです。 これらのツイストの動きは、先に紹介した基本 的なコンストレイントでも作成することができます。
ツイストボーンのつくり方:ステップ1「向きコンストレイント」 ①基本構造 ②パーツ配置 ③コンストレイント設定 子 手 子 子 A A ツイスト1 前腕 アップベクター 子 向き 手の子供としてターゲットAを配 置。 前腕の子供として、ツイスト1 を配置 ひねりは できるだけ Aに向く ツイスト1 ヒジ 前腕と手、ヒジが配置されてい る所からスタート ここまでの結果 ツイスト1の先端を「向き」コン ストレイントでヒジに向け、アッ プベクターをAに向ける 向きは常に ヒジを向く ヒジ これで、ツイスト1は、常にその 先端をヒジの方向に向けつつ、 Aの位置を基準にヒネリ回転だ け手首に追従するように この手法では「向き」コンストレイントを活用します。まず手首に配置したツイスト用のボーンを「向き」コンストレイント を使ってヒジの方向に向けます。ポイントになるのはアップベクターです。手のボーンの子供として、手の甲の親指側に ターゲットオブジェクトを配置し、前述の「向き」コンストレイントのアップベクターをこれに設定します。 これによって、ツイストボーンは常にヒジの方向を向きながら、ひねり回転のみ、手のボーンに追随するようになります。 アップベクターを親指側に配置するのは、手首の構造上、そこが一番動きが少なく、結果が安定するからです。
ツイストボーンのつくり方:ステップ2「回転コンストレイント」 ④ツイストボーン追加 子 ⑤回転のブレンド 完成! ⑥回転のブレンド 回転 50% ツイスト1 回転 20% ツイスト1 回転 50% 前腕 回転 80% 前腕 ツイスト2 ツイスト3 子 GIF 前腕の子供として、ツイスト2 とツイスト3を追加 ツイスト2は、ツイスト1と前 腕の両方に回転コンストレイン トをかけ、二つの回転の中間に なるようにブレンド配分を設定 ツイスト3も同じように、手首ツ イストと前腕の両方に回転コン ストレイントをかけ、前腕のほう のブレンド配分を多めにしておく ブレンド配分の違いによって、ツ イスト1~3がそれぞれ違う度 合いで手首の回転に連動し、 自然なねじれ表現が実現 「向き」コンストレイントによって、ツイストのためのひねり回転を得ることができました。あとは、このひねり回転を他のツイ ストボーンに異なる比率で分配してあげれば、少しずつねじれていく構造が作れます。これには、「回転」コンストレイン トを使います。回転コンストレイントを2重にかけ、ツイストボーンのひねり回転と、前腕の回転をブレンドするようにしま す。肘に近づくにつれて回転が少なくなるようにブレンド率を設定すれば完成です。 プロジェクトに応じて適切なツイストボーンの数や、ブレンド分配の勾配は異なるので、いろいろ応用しましょう。
コンストレイントによるツイストボーン ツイストの動作は手足の動きを自然に見せる ためには必須と言ってもいい機能です。この仕組 みをリグに組み込むには、手首などの「ひねり」の 回転だけを取り出して、各ツイストボーンに分 散して徐々にねじっていく動きを作る必要があり ます。 この、「ヒネリの回転」というのは、じつは「向き」 コンストレイントのアップベクターを利用すれば、 安定した結果を得ることが出来ます。 そして、その結果を「回転」コンストレイントの ブレンドで各ボーンに分配すればいいわけです。 GIF
コンストレイント応用リギング 開脚時の腰のへこみを回避する特殊ボーン
開脚時の腰のへこみを回避する特殊ボーン よくある問題 開脚すると腰がへこむ!
開脚時の腰のへこみを回避する特殊ボーン よくある問題 GIF 開脚すると腰がへこむ!
開脚時の腰のへこみを回避する特殊ボーン スキニングのウェイト割り振りを変えてみる 腰 腰 100% 50% 50% 太もも 腰と太ももにそれぞれ50%のウェ イトを振った場合。へこむ 100% 太もも 太ももに100%のウェイトを振っ た場合。腰にめりこむ どれもだめ! 腰に100%のウェイトを振った場 合。ふとももにめりこむ
開脚時の腰のへこみを回避する特殊ボーン 頂点を削除してみる このように二つのボーンの間にあ る頂点は、50%ずつのウェイトを 振るとへこんでしまうということが 往々にしてあります。 一つの解決策は、その頂点を削 除することでボリュームの低下を避 けるという方法ですが、都合上そう もいかないということもあります。 ボリューム低下を避けるために あえて頂点を削除という手もある でもやっぱり、デザイン上の理由 とかでそこに頂点は欲しい! デザイン的にそこに何かディティー ルが入っていたり、衣服のシワを表 現したいなど、どうしてもそこに頂点 が欲しいということがあります。 ならばリグで何とかするしかない!
開脚時の腰のへこみを回避する特殊ボーン リグ調整あり リグ調整なし まずリグ調整後の結果を見てみ ましょう。 ご覧の通り、右側のリグ調整後 のケースでは腰がへこむ現象を回 避してスムーズに曲げることができ ています。 これも、基本的なコンストレイント の組み合わせで作ったリグ構造に よるものです。 GIF 腰回りがへこんでいるのがわかる GIF 腰回りのボリュームを保持したま まスムーズに曲がる
へこみ回避ボーンのつくり方 まず、リグの機能として何を実現したいのかを はっきりさせます。 「足を上げたときにへこんでしまう部分 について、逆方向に押し出してボリューム 減少を避けたい」 これをコンストレイントを使って実現する 方法を考えます。 足が上がるにつれて、このへこんでいる部分を逆 向きに押し出して相殺したい
へこみ回避ボーンのつくり方①:パーツの配置 A 腰 子 A A 位置 50% 等距離 子 補助ボーン 補助ボーン 補助ボーン 等距離 B 子 位置 50% B B この時、ターゲットA、Bは、 補助ボーンを上下に挟み 込むように、等距離になる ように配置する 補助ボーンからAとBに「位 置」コンストレイントを50% ずつの割合でかけ、常に中 間地点に来るように設定 太もも 太ももが腰の子供になって いる構造からスタート。 そして補助ボーンを腰の子 供として、太もものボーン と同じ位置に配置 さらに腰の子供として、ター ゲットA、太ももの子供とし てターゲットBを配置
へこみ回避ボーンのつくり方②:コンストレイント A A 回転 50% 回転 50% 補助ボーン B 「位置」コンストレイントの効 果で、補助ボーンが常にAと Bの中間の位置をとるため、 足を上げると補助ボーンが 斜め上に動くように B さらに、「回転」コンストレイン トをAとBに50%ずつかけて 補助ボーンに中間の回転 値が入るように設定 へこんでしまう頂点について、 補助ボーンにスキニングを割 り当てる。いい具合に押し 出されるようにウェイトを調 整する 完成!
へこみ回避ボーンの効果 開脚したときだけでなく、太ももを前に上げたときの足の付け根のへこ み解消にも効果的 このように、スキニングやボーン配置の調整だけではどうにもな らない問題も、簡単なコンストレイントを組み合わせたリギング で解決できることがあります。 このへんがリギングの面白さですね。 GIF
コンストレイント応用紹介のまとめ 今回紹介したコンストレイントの応用による補助ボーンの例は、実際にギルティギアシリーズをはじめ とするアークの格闘ゲームのリグで使用されている手法です。 格闘ゲームではとくに極端なポージングが必要で、関節部が破綻せず常にきれいな変形結果にな ることが求められます。そのため、今回紹介したような工夫を他にも随所に凝らしています。 いうまでもありませんが、コンストレイントの使い方は紹介した例以外にも無数にあります。機能の組 み合わせ次第で、本当に様々なことが可能になっていくのがリギングの面白いところです。 一つ、気に留めておいてほしいのが、リギングに絶対の正解は無い、ということです。今回紹介した 手法も、無数の可能性のうちの一つの例にすぎません。コンストレイント以外の手段で、同様の効 果を得る方法も無数にあります。(エクスプレッション、ドリブンキー、etc) 目的とする用途や、さまざまな制限、あるいはソフトウェアの仕様の違いなど、前提条件によって最 適な手法は千差万別です。また、今後あらたにもっといい方法が発見される、ということもあり得ます。 今回紹介したやり方は、あくまでも一例として、各個でさらなる応用や別手法の模索をしていっても らえればと思います。 今回紹介した基本や応用例が、リギング初心者や中級者にとって良い刺激になれば幸いです。
最後に
最後に まとめ: メッシュのモデリング、ボーン配置、そしてスキニング。ポーズを取らせるだけならそれである程度こなせる かもしれませんが、本格的にアニメーションまでさせようと思うとどうしてもリギングは必要になってきます。 また、ポージングをさせるだけでも、関節部をきれいに変形させて説得力のある形状にしたいと思えば、 その用途でもリギングは重要となります。 そんなリギングのなかで大きな役割を果たすのが今回基礎と応用を紹介した「コンストレイント」です。 コンストレイント一つ一つが持つ機能はきわめてシンプルですが、組み合わせて使うことにより、様々な動 作を実現できるということがお判りいただけたのではないでしょうか。 リグの作成は、今回紹介したもの以外にも様々な機能、手法があり、また各3Dソフトによってもそれ ぞれ違った特色や機能があったりします。 リグ初心者の方は、本講演で紹介した内容を足がかりに、少しずつでいいので他の機能にも手を伸ば して、できることの幅を増やしていってもらえればと考えています。 今回のセッションがリギングの理解において少しでも参考になったなら幸いです。
お知らせ アークシステムワークスでは 開発規模拡大につき 積極採用中です! 興味のある方は下記の QRコードもしくはURLから 採用ページをチェック! https://www.arcsystemworks.jp/official/company/whatisarc/