• DoRubyとは
  • お問い合わせ
  • Ruby/Rails
  • Web開発
  • Webマーケティング
  • アピリッツ
  • ライフハック
  • ゲーム制作/開発
  • Railsの小技
  • Rubyの小技
  • Gemの紹介
  • ActiveRecord
  • 初心者向け
  • Java/Scalaテク
  • Unixのあれこれ
  • データベース
  • スマホ開発
  • HTML/CSS/JavaScript
  • デザイン製作
  • インフラ
  • クラウド
  • セキュリティ
  • エディタ
  • バージョン管理
  • その他
  • python
  • アクセス解析
  • Googleアナリティクス
  • Googleデータスタジオ
  • Web広告
  • SEO
  • UI/UX
  • ソーシャルメディア
  • EC開発
  • Webシステム開発
  • コンサルティング
  • Webデザイン
  • ブロックチェーン
  • ゲーム紹介
  • アプリ紹介
  • ASP
  • 風景
  • パソコン
  • ツール
  • ガジェット
  • 仕事術
  • 健康
  • 生活
  • 書評
  • Excel(エクセル)
  • PowerPoint(パワーポイント)
  • ゲームプランニング
  • SpriteStudio
  • マスターデータ入力/作成
  • Unity
  • キャラクターデザイン
  • ゲームシナリオ
  • レベルデザイン
  • ゲーム分析
  • 3DCG
  • イラスト制作
  • CG/アニメーション
  1. ホーム
  2. ゲーム制作/開発
  3. 3DCG
  4. コンストレイントでモーション作業を楽にする
  • 2017-10-27
    • カテゴリ:
    • 3DCG
    • タグ:
    • MAYA

コンストレイントでモーション作業を楽にする

この記事は公開から1年以上が経過しています。情報が古い可能性がありますのでご注意ください。

存在は知っているけどコンストレイントって一体どこで使うんじゃという人や、キャラクターに道具を持たせてニメーションさせてあげたいという方に読んでほしい記事です。筆者は毎回「親と子どっち先に選択するんだっけ?」とド忘れしてしまいます。

はじめに

こんにちは。
今回は、難航しているモーション作業を楽にしてくれるかもしれない、シンプルなのに役に立つMayaのコンストレイント機能を紹介したいと思います。

10月に入ってからモーションデザイナーとして3Dアニメーションをメインにやるようになって制作経験のない動きを考え、作る機会が多くなりました。
現場では周りのデザイナーと武器に見立てた小道具を使いながらあーでもないこーでもないとかっこいい動きを考える毎日です。

やり始めていきなり苦労したのが重量のある斧を扱うキャラのモーションです。
斧の回転制御軸がコロコロ変わったり、両手で握ったり、持ちかえたり、肩に担いだり...工夫が必要な場面が多々あります。

モーション作業の面倒な場面

「物を持つ」だけではなく、「物を投げる」「物にぶら下がる」「物に乗る」などの複雑な動きをあまり時間をかけずに作るにはキャラ本体のリグだけでは当然足りません。

3Dでアニメーションを作る際、キャラクターが持つ武器はキャラクター本体の持ち手の骨(ジョイント)にアタッチされており、手の動きに追従して武器も勝手に座標が動くようにセットアップすることが多いと思います。

手を動かせばいいだけなので基本はこの構造がベターです。

しかし、持つ物やモーションによっては支点がアタッチされた手の座標とは違う場所に来る場合もあります。

例として、重量のある大きな斧で攻撃して地面に突き刺さった場合は斧の支点は地面に刺さった部分になります。

enter image description here

通常のリグでは手首の回転が斧の角度に大きな影響を与えてしまいます。
なので斧が地面に刺さった状態で体のアニメーションをつけたいときは手の位置と角度を全く動かさないよう注意しながら作るか、手首の回転と斧の接地面を毎フレーム確認して微調整しなくてはいけなくなります。
はっきり言って面倒で、モーション自体も汚くなりがちです。
こんな時にコンストレイントが役立ちます。

コンストレイントとは

コンストレイントとは
コンストレイントによって、1 つのオブジェクトの位置、方向、スケールを、もう 1 つのオブジェクトのトランスフォーム設定によって駆動できます。

簡単に言うとある物体のtransform、rotate、scaleを別のオブジェクトで制御できるようにする機能です。

mayaにはペアレント、ポイント、方向、スケール、エイム、極ベクトル等があります。
この中でも自分がよく使うのが、
・ペアレントコンストレイント
・ポイントコンストレイント
・方向コンストレイント

の3種類です。

ペアレントコンストレイントはデフォルトではコンストレイント対象のオブジェクトと親子関係を持ち、コンストレイントした時点での位置関係を保った状態で親のオブジェクトを中心点として回転、移動で子オブジェクトの動きを制御できます。

ポイントコンストレイントでは対象オブジェクトのピボット(中心軸)を親オブジェクトのピボット位置に常に来るように親子関係を保ちます。親が回転しても子は回転しません。

方向コンストレイントでは対象オブジェクトの回転値を位置が離れていても親オブジェクトの回転値と同じになるよう親子関係を保ちます。親が移動しても子は移動しません。

コンストレイントを使う例

先ほど挙げた、「大きな斧で攻撃して地面に刺さった状態」で柄を握ったままアイドリング動作をして数フレーム後に地面から斧を抜くという一連の流れの中でどう使えるか考えてみます。

地面に突き刺さる直前まで:斧の動きの親となるのは武器を振り回しているキャラクターの手です。
↓
突き刺さった瞬間~斧を抜き取る直前まで:地面と斧の接地点が動きの支点になり、手は常に斧の柄を握っているため逆に手が斧の柄の部分の子になると作りやすいです。
↓
斧をひっこ抜く瞬間:また斧の親が手に移ります。

・斧と地面の接地点にあたる部分
・斧の柄の部分
計2か所に親となるダミーオブジェクトが必要になります。

具体的に説明すると
刺さった瞬間のフレームで斧を、あらかじめ接地点に作ったダミーオブジェクトへのペアレントコンストレイント(コンストレイントA)に切り替え

さらに、キャラクターの手のジョイントを斧の柄の部分にペアレントしていたオブジェクトへのポイントコンストレイント(コンストレイントB)に切り替えます。

こうすることでコンストレイントAで回転制御している斧の持ち手の移動に対して常に手がコンストレイントBのおかげで追従するようになります。これで斧を握った状態でのアイドリング中は手首の回転の調整のみで済みそうです。

コンストレイントの使い方、切り替え方は以下の動画が分かりやすいです。

【第10回アニメーション講座 コンストレインの仕組み】

終わりに

このように一連のモーションの中で物体の動きの中心軸がどう遷移するか常に意識して、重ね掛けしたコンストレイントを切り替えていくことで思った動きに近づけることができます。

またキャラクターのセットアップにもコンストレイントを使うのでもう少し踏み込んで勉強すればアニメーターだけでなく、リガ―も目指せちゃいますね(3D分業の中でも特にMayaの知識が問われるのかもしれませんが)!

こういったMayaのコンストレイント機能を使った「工夫」はアニメーターによって様々であり、決まった正解のないアイデア次第の部分だと感じているのでモーション作業の魅力の一つに感じます。

ただ最初のうちはどう動くかなんてのはやってみないとわからない部分もあるので、とりあえず適当にアタッチしてそれぞれのコンストレイントの出来ること、出来ないことを理解してみると頭の中でもどこで何が使えるか設計できるかと思います。

最後まで目を通してくださりありがとうございました。


  • 1,103 views
    • Tweet
    • このエントリーをはてなブックマークに追加

この記事を書いた人
SY
アピリッツ新卒ゲームデザイナーです。

「いいね!」するとDoRubyの最新記事を受け取ることができます。

Facebook

Twitterから最新記事を受け取るならこちら

Follow @doruby

Feedlyから最新記事を受け取るならこちら

follow us in feedly

おすすめの記事
  • 823 views
  • 2018-06-13
おすすめのAfterEffects無料エフェクトプラグイン紹介
  • 731 views
  • 2018-04-02
Unityのシェーダーについて
  • 2,417 views
  • 2018-01-31
塗りにひと手間加えてイラストの印象を華やかにする【前編】

カテゴリ

Ruby/RailsRailsの小技Rubyの小技Gemの紹介ActiveRecord初心者向けWeb開発Java/ScalaテクUnixのあれこれデータベーススマホ開発HTML/CSS/JavaScriptデザイン製作インフラクラウドセキュリティエディタバージョン管理その他pythonWebマーケティングアクセス解析GoogleアナリティクスGoogleデータスタジオWeb広告SEOUI/UXソーシャルメディアアピリッツEC開発Webシステム開発コンサルティングWebデザインブロックチェーンゲーム紹介アプリ紹介ASP風景ライフハックパソコンツールガジェット仕事術健康生活書評Excel(エクセル)PowerPoint(パワーポイント)ゲーム制作/開発ゲームプランニングSpriteStudioマスターデータ入力/作成Unityキャラクターデザインゲームシナリオレベルデザインゲーム分析3DCGイラスト制作CG/アニメーション

    人気の記事
    最近の記事
    • 4,037 views
    • 2020-04-02
    Kali Linux 2020.2 導入と日本語化
    • 924 views
    • 2020-03-06
    rack-lineprofを改造して管理画面からファイル指定&ログ追跡出来るように
    • 898 views
    • 2020-03-05
    FactoryBot と Gimei を使って架空のユーザを作る
    • 614 views
    • 2020-02-04
    ActionCable実装しようwith webpack
    • 540 views
    • 2020-01-27
    この頃のプルリクに対するレビュー
    Facebook

      サイト情報
      • DoRubyとは
      • 株式会社アピリッツ

      ソーシャルアカウント
      • Facebook
      • Twitter

      企業情報
      • 会社概要
      • 採用情報
      • お問い合わせ
      サービス製品
      • レコメンドASP
      • サイト内検索ASP「Advantage Search」
      • オープンソースECサイト構築パッケージ「エレコマ」
      • 受注・在庫・商品情報一元管理「モールコネクター」
      • セキュリティ診断サービス
      • Googleアナリティクスセミナー

      Copyright © Appirits All Rights Reserved.