原カバンは鞄のお店ではありません。

Unityを使ったゲーム制作のあれこれを綴っていきます。

【アセット紹介】メッシュを簡単に変形させアニメーションを造れる Lattice Modifer

次世代クリエイター

文化庁やら経済産業省やらの認定する「次世代クリエイター」とやらには年齢制限で足切りされる悲しき旧世代の皆さんこんにちは。世の中のインディゲーム制作者の大半は特に支援されることがなくとも自力で頑張っていると思いますが、こうも公的に線引き指さるとガッカリしますね。モノづくりに年齢制限はないと思いますが

 

Lattice Modifer

偶然X(旧Twitter)での投稿を見掛けて気なったので購入しました

3Dモデルのメッシュを変形させて動かすことが出来るアセットです。どんな機能を持つアセットなのか文章で説明するよりデモの動画を見た方が早いので下に載せます。

メッシュを変更させるアセットはUnity Asset Storeに複数ありますが、このアセットの特徴は3Dモデルの各頂点をそれぞれ移動させるのではなく、モデルにリンクづけられたLattice(格子)の頂点を移動させることでメッシュの変形を行う事にあります。

 

下の動画は黒い立方体で表現されたLattice(格子)の頂点を動かすと、それにリンクづけられた3Dモデル(アヒル)が紐づいて変形する様子になります。

3Dモデルに対して分割等の処理を特に行う必要はないため、非常に簡単にモデルの変形を行うことが出来ます。

 

使い方

Lattice Modifier の使用を開始するには、シーン内に空のゲームオブジェクトを作成してそこに「Lattice」コンポーネントを追加します。

シーン内に黒い立方体が出来ますが、これが変形を行うためのLattice(格子)となります。

 

次に変形させたい3DモデルをLattice(格子)と関連付けさせるため、「Lattice Modifer」コンポーネントを3Dモデルに追加します。
この時、3DモデルにはMesh Rendererが存在する事が必要です。
3DモデルがMesh RendererではなくSkinned Mesh Rendererを使用している場合は「Skinned Lattice Modifer」を追加してください。

 

InspectorのLatices欄に先ほど空オブジェクトに追加した「Lattice」コンポーネントを指定します。これで3DモデルとLattice(格子)がリンクづけられたので、エディタ上でLattice(格子)の頂点を動かすとそれに応じて3Dモデルも変形するようになります。

 

先程のデモ動画の例を見てみるとパイプの入口部分、出口部分にLattice(格子)が作られていてアヒルの3Dモデルが関連付けられていることが分かります。

また、パイプ部分はそれ用にLattice(格子)が作られてパイプが膨らむような変形が設定されています。

 

これをアヒルの動きに合わせてLattice(格子)のアクティブ化(true/false)を切替え、パイプ用のLattice(格子)を形状に沿って動かしてやると上の動画のような動きになります。

 

アニメーション設定

Lattice(格子)の各頂点の位置、角度はAnimationで記録して再生することが出来ます。
Animationウィンドウの録画ボタン押下してLattice(格子)の頂点を動かし記録していくと、モデルが変形するアニメーションを作ることが出来ます

このAnimationを設定して実行モードで動作させるとこんな感じ

 

今回はアニメーションを利用して動かしていますが、スクリプトからでもLattice(格子)の各頂点を動かすことができます
その為のAPIは色々用意されていますが、代表的なものを上げると

/// 現在位置からの移動量を設定して移動
void SetHandleOffset(int x, int y, int z, Vector3 offset);

/// ローカル座標を指定して移動
void SetHandlePosition(int x, int y, int z, Vector3 position);

/// ワールド座標を指定して移動
void SetHandleWorldPosition(int x, int y, int z, Vector3 position);

他にありますが残念ながら各APIに関してはドキュメントが用意されていないので、実際に動かして確認するしかないようです。

 

注意点

このアセット自体はBuilt-in,URP,HDRPどれにも対応していますが、サンプルシーンはURPのみです。
また、通常のImportではサンプルは含まれておらず、パッケージマネージャから必要なサンプルをインポートする必要があります。

  1. パッケージマネージャのPackageからIn Projectを選択
  2. OtherからLattice Modifierを選択
  3. Samplesタブを開いて各サンプルのImportを押す

 

◇プライバシーポリシー

●個人情報の利用目的

当ブログでは、メールでのお問い合わせ、メールマガジンへの登録などの際に、名前(ハンドルネーム)、メールアドレス等の個人情報をご登録いただく場合がございます。

これらの個人情報は質問に対する回答や必要な情報を電子メールなどをでご連絡する場合に利用させていただくものであり、個人情報をご提供いただく際の目的以外では利用いたしません。

●個人情報の第三者への開示

当サイトでは、個人情報は適切に管理し、以下に該当する場合を除いて第三者に開示することはありません。

・本人のご了解がある場合
・法令等への協力のため、開示が必要となる場合

個人情報の開示、訂正、追加、削除、利用停止
ご本人からの個人データの開示、訂正、追加、削除、利用停止のご希望の場合には、ご本人であることを確認させていただいた上、速やかに対応させていただきます。

アクセス解析ツールについて

当サイトでは、Googleによるアクセス解析ツール「Googleアナリティクス」を利用しています。

このGoogleアナリティクスはトラフィックデータの収集のためにCookieを使用しています。このトラフィックデータは匿名で収集されており、個人を特定するものではありません。
この機能はCookieを無効にすることで収集を拒否することが出来ますので、お使いのブラウザの設定をご確認ください。

●免責事項

当サイトからリンクやバナーなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。

当サイトのコンテンツ・情報につきまして、可能な限り正確な情報を掲載するよう努めておりますが、誤情報が入り込んだり、情報が古くなっていることもございます。

当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

●プライバシーポリシーの変更について

当サイトは、個人情報に関して適用される日本の法令を遵守するとともに、本ポリシーの内容を適宜見直しその改善に努めます。

修正された最新のプライバシーポリシーは常に本ページにて開示されます。