KLabGames Creative Blog

KLabは、多くのスマートフォン向けゲームを開発・提供しています。このブログでは、KLabのクリエイターがスマートフォン向けのゲームを制作・運営していく中で培った様々な技術や挑戦とそのノウハウについて紹介していきます。

はじめに

こんにちは。KLab株式会社クリエイティブR&Dグループ所属のkenと申します。

R&Dグループでは3Dキャラクターアーティストを担当しています。

キャラクターの衣装制作において高品質かつ、より効率的なワークフローを検証・研究するという目的を兼ねて現在Houdiniを勉強しています。

衣装制作はポリゴンによるモデリング、Zbrushによるスカルプト、MarvelousDesignerまたMayaのnClothによるシミュレーションなど様々なアプローチがあると思いますがリアルな自然なシワを作りたい場合はシミュレーション機能を用いたほうが品質という点ではより良い物に近づける事が出来るかと思われます。

会社で導入を進めているHoudiniはシミュレーション+プロシージャルにモデリングする事が可能なので高品質+修正対応やパターン出しなどの効率化が期待出来るのではという事で、今回Houdini17.0から搭載されたシミュレーション機能であるVellumを使用した衣装制作を紹介したいと思います。

私自身、Houdini初心者という事もありソフト自体の概念等をまず理解する為にも同グループ所属のsasaさんによるCreativeBlogの【 R&DG report:2 】ツール紹介 : Houdini編_02 脱初心者編で、ご紹介されている各サイトは大変参考になりますのでHoudiniを勉強されようと考えている方は是非ご覧になる事をお勧めします。

R&Dグループの概要につきましてはこちらをご参照ください。

衣装制作~初心者編~について

今回の衣装制作はBornDigitalサポートの「Houdini17でTシャツを作成する」という記事を大いに参考にしており、それに加えて同じくBornDigitalサポートの「Vellumで作成した洋服に厚みを付ける」「VELLUMクロスルックデブ」という二つの記事の内容も交えつつ作成したものになります。

また、制作の中で初心者目線だと難しいと感じた点なども部分的に補足しています。

その他参考にしたサイト

Houdiniのシミュレーション機能であるVellumの詳細などが、記載されたサイトになります。

SideFX公式チュートリアルのサイトではシーンファイルがダウンロード出来ます。初心者にはやや難解かと思いますが、こちらも大変参考になるかと思います。また二つ目の動画ではSIGGRAPHでのセッションの内容が逐次日本語訳されているので英語が苦手だなという方はこちらも参考になさってください。

Tシャツ制作手順

  1. DrawCurveでカーブを作成する方法もありますが、今回はCurveを使用しました。
    まず正面(T_shirt_front)のパターンを作成していきます。
    カーブを作成する際は後々のグループでの制御を考慮し縫い目となる部分ごとにカーブを分けて作成します。image21

  1. ResampleをしてLengthでポイント数を調節します。image27

  1. Mirrorで反転コピーします。image17


  1. Fuseで離れている各ポイントをSnapDistnceを調整する事でくっつける事が出来ます。今回は最初のcurve作成時に各接合部分を※スナップで合わしているのでノード的には必要はなかったのですが念の為に適用しています。image28
    image8


  1. 基本的な構成は正面(T_shirt_front)のパターンと同様の方法で、エッジを足したい部分(Insert_Seams_Inside)を作成します。
    ※Z軸方向にばらけているポイントをTransformノード(flatten)のScaleZの値を1から0にし平にしています。image22
    image7


  1. 正面(T_shirt_front)のFuseの下でMergeします。image25


  1. Planar Patch from Curvesでカーブを元にプリミティブを作成し、名前をfrontにします。
    ResampleCurvesを有効にしSmoothingをSubdivisionCurvesにします。
    InteriorEdgeLengthでエッジ調整し、SeamGroupとInteriorPointsも有効にします。
    ※SeamGroupとInteriorPointsを有効にした結果はノード情報で確認する事ができます。image23
    image4


  1. Transformで体の前に移動させます。image30


  1. 正面(T_shirt_front)のネットワークボックスを選択した状態でコピー&貼り付け(ペースト)し複製、背面(T_shirt_back)とします。Reverseでノーマルを反転させ、正面と背面をMergeします。image29


  1. 袖(T_shirt_sleeve)を作成します、基本的な構成は正面などとほぼ同じになっています。reverseとmergeの間にgroup renameノードを追加しsleeve_front部分を全てsleeve_backに変更し、こちらも袖の正面と背面をMergeします。
    ※名前をまとめて変更するために最後に*をいれます。image20

    image2
    ネットワークボックスでまとめてある「T_shirt_front + T_shirt_back」と
    「T_shirt_sleeve」をそれぞれクリーンアップのためCleanしておきます。image15


  1. Vellum Configure Clothを作成し、1番目のインプットに布(Tシャツ)のジオメトリ、3番目のインプットに※ObjectMmergeで参照している体のジオメトリを接続します。image24
    image18


  1. VellumDrapeを作成し、SolverとWeldPropertiesの値を調整します。それ以外はデフォルトの設定となっています。image14image12
    ①縫い合わせるグループ同士を設定するためにWeld Additional Seamsを有効にします。Planar PatchFrom CurvesオプションのSeamGroupを有効にし作成したGroupを使用し縫い付けていきます。
    ②正面と背面で同じSeam番号を指定します。Groupにback_seam1とTargetGroupにfront_seam1とすると縫い目が追加されますimage31
    Groupが多い場合、中ボタンを押しながらマウスを動かすと選択しやすいと思います。image11
    各縫い目のGroupを指定すると以下のようになります。image16


  1. アニメーションを再生し、指定したSeamを結合させます。image6
    VellumDrapeのFreeze at Frameを有効にすると固定したいフレームを指定できます。今回は10Fで固定しました。image1

  1. 最初に作成したVellum Configure ClothとVellumDrapeを複製し下記のようにつなぎ、10Fで固定した物に対し袖を縫い付けるGroupの指定をします。image32
    アニメーションを再生し結合させます。こちらは25Fで固定しましたimage5

  1. Vellum Post Processを作成し、メッシュのスムース化・細分化・厚み調整などを行います。image10
    Spatial Blurで滑らかさを調整、SubdivisionをLoopに変更しスムース化、Subdivision Dephで細分化調整します。image9
    Extrude by Thicknessを有効にし、Thickness Scaleで厚みを調整します。image3


  1. 最後にColorノードを追加し色をつけて、ひとまずは完成とします。
    今回のワークフローでは、Houdiniでディテールを持ったハイモデルのみ作成し、Zbrushにてディテールを転写した後にノーマルマップを作成するフローを想定していたのでUV周りに関しては特に触れていません。image26


おわりに

今回は衣装制作∼初心者編∼ということでシンプルなTシャツの作り方のご紹介でしたが

Vellum自体が機能としてまだ新しく衣装制作に特化したという点では情報自体が少ないのでR&Dという観点からしても今後引き続き検証していく価値は充分にあると思われます。

また一通りの工程を終えてみた上で感じた事は、縫い合わせる箇所の選択がGroupまたはPoint選択になっているので縫い目が増えれば増える程、選択箇所が増えコントロールが難しくなってしまうのが効率化という点において一番の難点だと感じました。

この点に限らず自分でノードをカスタムすれば解決出来る部分は多々あるとは思いますが学習コストを考えるとHoudini初心者にはハードルがやや高いと思いました。

ケースによりますが、総括すると現時点では衣装制作のワークフローにHoudiniを取り込むというのは他の3Dソフトと比べた場合はあまり現実的ではないのかなといった印象です。

上記のような問題がバージョンアップなどで機能が改良され改善された際に応じて、より複雑な衣装の制作の仕方についてもご紹介出来ればと考えています。

以上となります、Houdiniを用いた衣装制作の際などに少しでも今回の記事が参考になれば幸いです。

最後まで読んでいただき、有難うございました。

image5

はじめに

こんにちは、uraです。
アイドルが好きで、二次元アイドルの衣装デザインを担当してきました。
その中で、より魅力的で説得力のある衣装とはどんなものだろう?どうすれば衣装をより魅力的にできるのだろう?と考えたことを共有いたします。

技術的なテクニックというより思考の話になります。
ふんわりとした内容ではありますが、何か参考になる部分があれば嬉しいです。

魅力的な衣装とは?

「魅力的な衣装」と聞いて、どんなものを想像するでしょう?
とにかくかっこいい衣装、かわいい衣装、個性的でユニークな衣装!うんうん。
着ている人に似合ってる衣装、世界観やコンセプトに合っている衣装!うんうん。

みなさん「魅力的な衣装」と聞いたとき、きっと服そのものだけではなく、着る人やシチュエーションも合わせて考えたかと思います。
たとえばフリルやレースたっぷりのふりふりでかわいい服もスポーツの場面には不向きですし、時代や文化、趣味趣向によっても、何が魅力的で相応しいのかは変わってきます。

つまり、衣装の魅力を考えるときには、誰が?どこで?何のために?などといったストーリーも一緒に考えることが必要なのかなと思います。

そして、ストーリーを明確にすることで、それに伴う魅力に関して、より具体的に考えることが可能になるかと思います。

衣装の中のストーリー

では、衣装の中にどのようなストーリーが内包されているのか、内包したいのか、を踏まえてデザインする際、まずどこから考えれば良いでしょうか?

ここで、衣装デザイナーの役割について考えていきます。

衣装デザイナーの役割

まず、衣装デザイナーという仕事は、その世界の衣装を設定する仕事です。
こちらの世界から見ると、架空の世界の出来事を衣装デザインに落とし込んで表現する仕事とも言えます。

image1

このとき、向こうの世界に行ければ、より具体的に衣装の流れを想像できるのではないでしょうか?

例として、アイドルの衣装をデザインすると仮定したとき、向こうの世界での衣装デザイナーの役割がどのようになるのか考えてみました。

image3

おお…こちらの世界の仕事としてはやることは同じでも、向こうの世界ではさまざまな役割を担っていそうです。

アイドルの衣装といっても、ライブのときの衣装とグラビア撮影のときの衣装、バラエティ番組の衣装など、趣が異なるものを着ていますよね。
スタイリストさんやライブの衣装デザイナーさん、演出さんなど、さまざまな人の関わりの中で結果的に身につけているのがその衣装となります。

デザイン時に自分がどこの役割を担っているのか考えることで、より存在に説得力のある衣装デザインができるのではないでしょうか。

衣装とキャラクター

さて、それではこれまでの流れを踏まえたうえで、実際に衣装をデザインしていきましょう。

今回衣装デザインの対象になるのは、「普段はボーイッシュだけど、実は女の子らしい・可愛らしい恰好に憧れている乙女チックな一面もある」という設定の架空の女の子アイドルです。

例① 私服

伝えたいもの:キャラクター性、ストーリー
衣装デザイナーの役割:本人

image8 image10 image2

左から A:ボーイッシュな私服(普段着) B:ガーリーな私服 C:ガーリーな私服(比較用)

Aを普段着とすると、Bの衣装に対してどのようなことを想像するでしょうか?
Aと比較してBはガーリーな衣装となっていますが、あまり垢抜けた印象ではありません。

これは「普段おしゃれにあまり興味の無い女の子が初めておしゃれをした」イメージで設定した衣装となります。
たとえばスカートは恥ずかしいのでキュロット、髪の毛を結んだりアレンジするのは難しいからヘアピン、長いスカートは動きにくいから嫌だけど脚が出るのも恥ずかしい…けれどタイツは挑戦できなかった。などなどあえて野暮ったさを残してデザインしています。

隣に並んでいるCと比べてみてください。
先ほどBでは「意図的に野暮ったさを残してデザインした」と説明しましたが、これは「キャラクター性を表現した」と言い換えることが出来るかもしれません。
改めてCを見てみると、特におしゃれに無頓着な様子もなく、むしろこなれたような印象になっていると思います。かわいい衣装なのですが、これだとキャラクター性を表現するには相応しくないかもしれません。

一方で、Cのような衣装で「撮影用の衣装」「誰かに選んでもらった衣装」を表現することも可能です。単純に服装のみを見てかっこいい/かわいい、似合う/似合わないだけでなく、どうしてその服を着ているのか?という点に目を向けると、より「らしさ」のあるデザインができるかと思います。

例② ライブ衣装

伝えたいもの:アイドルとしての魅力、ライブのコンセプト
衣装デザイナーの役割:ライブの衣装デザイナー

image4 image7 image6

左から A:専用衣装 B:メルヘンガーリー C:クリスマス

A

キャラクター本来の魅力を押し出した衣装としています。
スポーティな爽やかさ、溌剌とした印象、動きやすさを重視しました。
持ち曲がタオル曲なので衣装の腰にタオルを提げているという設定です。

B

ガーリーさを引き出した衣装になります。
女の子らしさへの憧れ、フリル、レース、リボンなど、普段はなかなか身につけることのできない要素を叶えています。
アイドルと相談しながら制作しました。

C

クリスマスライブでの衣装です。
ケープは赤/白のリバーシブルになっており、ホワイトクリスマスの演出に合わせて途中で裏返すことで早着替えができます。

簡単にデザインとその意図や設定とを並べてみました。
みなさんどうでしたか?

書いていた内容を感じ取れなかった!違う印象を受けた、などもいらっしゃるかと思います。
創作物は最終的に受け手に委ねられるので然りではあるのですが、作り手として一定意図を持って制作することで、ギャップが生まれた際にも何がそれを生んだのかの判断もつけやすくなります。

また、特に現代日本の二次元アイドルについて、受け手は「生きている」「存在している」ことを求める傾向にあります。彼らの世界で自身が関わっている想定で衣装をデザインすることで、よりアイドルの実在性や手触りを表現できるようになるのではと考えます。

image9

おわりに

いかがでしたか?
何かヒントになるものはあったでしょうか。

今回はアイドルの衣装デザインを軸にお話しましたが、たとえばアバターの衣装であれば着せ替えする人に体験させたいこと、テーマやブランドによる差別化などが重要になるかと思います。また、ファンタジー世界の衣装であれば種族や職業などによる服飾文化、服飾に使われる素材や染料、服飾技術などを考える必要があります。

どれにしても、まずどうやって衣装が成り立っているのかを考える、何を魅力として提供したいかを考えることが、より魅力的で説得力のある衣装へ繋がってくるかと思います。

正解はありませんが、正解が無いからこそ、常に考えながら制作を続けることが必要だと感じています。
これから先、よりアイドルを輝かせることのできる衣装を生み出していきたいです。
この記事で少しでも心に残るものがあれば嬉しいです!

この記事は KLab Creative Advent Calendar 2019 の 8日目の記事になります。

はじめまして、こんにちは。
クリエイティブ部でSHOTGUN整備を担当しているエリヒラと申します。

はじめに

SHOTGUN、すでにご存知の方が多いと思うので、ツール概要は省きます。
日本語化してより編集しやすく、格段に導入しやすくなりました。

ただやはり…便利で多機能な分、どうしても手数が増えてしまいますね
制作者向けのマニュアル作りに苦戦されてるマネージャーの方も多いと思います。

本記事ではマネージャーもアーティストも、少しだけラクになる小技を紹介させて頂きます。
参考になりましたら幸いです。
image21

いいからとにかくクエリーだ!

クエリーフィールド、活用していますか?

条件を入力すると計算してくれるフィールドで、簡単なレポート作成に向いています。
…と、数字のイメージが強いですが計算して終わりではありません。
その数字は参照元のリンクとして機能するため、ページの遷移数を減らす事に活用できます。
また数字以外のデータの参照もでき、様々な情報を望んだ場所に表示することが可能となります。

①タスク一覧からバージョンを登録

タスクに新しいバージョンを登録する際、

image16

タスクをいちいち押して開いて、

image9

「新しいバージョンを作成」ボタン、押してますか。
面倒ですよね、タスク開くの。

更に、バージョン投稿後にタスクステータスを更新する運用形式が多いと思います。
そして次工程に着手するため、次タスクのステータスも変更するでしょう。
それってつまり、バージョン投稿する度にステータス更新のためいちいちタスク詳細からタスク一覧に戻る…?

image14

ここでクエリーフィールドの登場です。

image22

画像のような設定で、クエリータイプで新規タスクフィールドを作成します。
フィールド名は任意のもので構いません。ここでは仮に「VersionList」と設定します。
①表示させたいエンティティとして、バージョンを選択
②照会する条件を入力
③「バージョンの数」選択によって、そのタスクに含まれるバージョンの合計数を計算

image20

タスク一覧画面で、作成したVersionListの数字をクリックすると…!

image12

ウィンドウがポップアップします。

そう、タスクを開かずともこちらから「新しいバージョンを作成」ができるのです。
作成したバージョンをこのウィンドウから参照することもできます。

タスク一覧画面はそのままなので、スムーズに他タスクの編集が可能です。
画面遷移が少なくシンプルで分かりやすいため、アーティストの負担も少ないと思います。

image11
SHOTGUNに不慣れな方がバージョン投稿する際、陥りがちなのが「自分が今開いているのがアセットなのか、タスクなのか分からないままバージョン投稿」です。
アセットにもバージョン投稿は可能ですし、アセット一覧にパイプラインでタスク表示orタスク一覧にアセットリンクを表示しているフィールド構成だと特に頻発しやすい問題です。
VersionListフィールドを作ってあげると、そのような事故も減らせますよ。

②アセット一覧にショットの情報を表示する

次に、他エンティティのフィールド参照方法をご紹介します。
以下、最もよく使われるショット~アセットを例にしますが各種エンティティで利用可能な方法なので、ご希望に沿ったエンティティでご活用ください。

ショットの使い方は制作する物によって大きく変わってくるかと思いますが
どんな使い方でも、ショットの情報をアセット一覧で参照できたら…と思う場面はあるのではないでしょうか。

ショットリンクはデフォルトで用意されていますが、ショットのいちフィールド情報を参照できるアセットフィールドは存在していません。
これも、クエリーフィールドを利用すれば引っ張ってくることができます!

image13

ショットの「shot_text」フィールドをアセット一覧に表示させたいとします。

image17

アセットフィールド新規作成から、このような設定で新しいフィールドを作成します。

ここではフィールド名を「ShotComment」と仮で設定しています。
①表示させたいエンティティとして、ショットを選択
②照会する条件を入力
③今回は数計算ではなく、フィールドを参照したいため「1つのショット」を選択
④参照したいフィールドである「shot_text」を選択

image14

フィールド名には日本語も設定できるけど、日本語だとフィールドコードがフィールドタイプに沿ったもので自動的に割り振られるから、意図しないコードが設定されてしまう可能性がありますよ。半角英数ならばフィールド名はそのままフィールドコードに反映されます。

これでアセット一覧で作成したShotCommentフィールドを見てみると…

image2

このように、アセット一覧画面でそれに紐づくショットの情報を参照することができました!

勿論shot_textフィールドの内容を更新すると、こちらのShotCommentフィールドも自動で更新されます。
ショットの詳細情報を確認しながらアセットを見たい時に便利です。

③任意のサムネイルを表示させる

クエリーフィールドに関して、最後のご紹介です。
こちらはSHOTGUNをデータベースとして利用したい際に特に有効的なフィールドです。

アセットのサムネイル、最新or最古のバージョンを自動でサムネイル化して表示する便利な仕様ですが
マネージャーの方、一度は「任意のバージョンをサムネイルに設定したい」と思ったのではないでしょうか。データベースとして表を作りたい時は尚更ですよね。
それも可能とするのがクエリーフィールドです。

ただしこのやり方はクエリーフィールドだけでなく、カスタムエンティティも専用に用意する必要があります。
具体的な説明の前に、簡単に図解します。

image7

カスタムエンティティとアセットをリンクさせた状態で、クエリーフィールドを介することで、任意のサムネイルが表示可能となります。

バージョン投稿用にカスタムエンティティを一つ用意します。

image4

カスタムエンティティを新たに作成し、そこにアセット側に表示させたい画像をサムネイル設定しておきましょう。

次に、カスタムエンティティで以下のようなフィールドを新規作成します。

image6

こちらも仮でフィールド名を「AssetLink」と設定しています。
このAssetLinkフィールドによって、任意のカスタムエンティティとアセットを紐づけることができます。

image15

AssetLinkフィールドを作成後、サムネイル表示させたいアセットを指定しリンク設定してください。

最後に、アセット側でクエリーフィールドを新規作成しましょう。

image18

①表示させたいエンティティとして、カスタムエンティティを選択
②「AssetLink」が現在のアセットと一致するよう設定
③フィールドを参照したいため「1つのカスタムエンティティ」を選択
④参照したいフィールドである「サムネイル」を選択

このように作成してみると…

image3

カスタムエンティティのサムネイルが、アセット一覧に表示できました!
アセットのサムネイルとは別のフィールドになるため、画像のように通常のサムネイルも同時に表示可能です。

image13

このフィールドのデメリットとして、カスタムエンティティ作成~アセットリンク設定~サムネイル登録 と手間がかかるため、運用にはやや不向きな仕様です。
データベースに持ってこいではありますので、有効的な活用場面を探してみてください。

おすすめデフォルトフィールド情報

デフォルトで用意されているフィールドで、特に便利と思えるものをご紹介します。

ノート一覧の数

image5

先述したVersionListフィールドのノート版です。
VersionListと同じように、ノートの投稿・参照が可能です。アセット/タスク両方のフィールドに用意されています。

アップロードしたムービー

image1

こちらはバージョン一覧に表示できるフィールドです。
表示すると投稿したデータ名が記載されており、クリックすることでデータをダウンロードできます。

バージョンビューを開かずともダウンロードできるとても便利なフィールドですので、標準的に表示しておくことをオススメします。

image8

アップされているデータがPNGやJPEGなど画像データの場合、クリックするとダウンロードではなくブラウザ上で画像が表示されてしまいます。
画像データをこのフィールドからダウンロードしたい場合は、
「アップロードしたムービー」上のリンクを右クリック
→「名前を付けてリンク先を保存」を選択
この手順でダウンロードできますよ。

最後に

SHOTGUN公式サポートページに記載されている文章を引用します。

増やすより、減らすことに努める

Shotgun でできることが多岐にわたるため、ページに多くの情報を盛り込みたくなります。しかし、これはお勧めできません。シンプルなページであるほど、ユーザはより短時間で有効に活用できるものです。

引用元:SHOTGUNサポート/ベストプラクティス

SHOTGUN、シンプルにもできるし、情報を沢山入れる事もできます。
マネージャーは闇雲にアセットを量産するのではなく、どのように使っていくのかの運用方針を固め、実際に構築の際はそのページの利用者は主に誰なのか、誰のためのページなのかをしっかりと考えた上で、構築を進めていくとブレなくて良いと思います。
SHOTGUNユーザーの方々に本記事が少しでも参考になりましたら幸いです。

ここまでお読み頂き、本当にありがとうございました。

この記事はKLab Creative Advent Calendar 2019の7日目の記事になります。

こんにちは!
KLabでCGデザイナーをしているaoと申します。

少し前まで2Dアニメーション系の業務を担当しておりましたが、
今年に入ってからUnityやmayaを使用した業務を頂く機会がありまして、
現在は3Dアクションゲームのエフェクト制作業務に携わらせて頂いています。

今回は

  • Adobe AfterEffect
  • MAYA
  • Unity

を使って、簡単に作れる突進エフェクトの作り方を紹介します。

Unity歴、maya歴共に1年未満の私が教えるエフェクトの作り方なので、
難しいことはしません!安心してくださいね。

というわけでこんな感じのエフェクトを作ります↓

image13

1.テクスチャの準備(AfterEffect)

まずはテクスチャを用意しましょう。
今回用意したテクスチャがこちら。
(テクスチャサイズは256×128で作成しています。)

image15

突進エフェクトなので、キャラクターが動いたときに出る『衝撃波』をイメージして平面のパスを切って描いていきます。
トゲの大きさがバラバラな方がそれっぽい気がします。

後々円形のメッシュに貼ることになるので、つなぎ目が目立たないようテクスチャがループするようにしておきましょう。

モデルに貼ってみたら、ちょっとイメージと違うわね…ということが良くあるので、とりあえずこんな感じかな?というところで終わりにしておきます。
何かあったら後で修正すればよいのです。

2.モデルの準備(MAYA)

テクスチャが出来たら次はmayaでモデルを作ります。

作り方

①シリンダーを用意します。
image21

②大きさや分割数をいじったら、上下のキャップと下半分を削除します。image22

③上下の頂点をそれぞれ動かして、おわん型のモデルが出来たら完成です!image23

先ほど作成したテクスチャをメッシュに貼り付けて見え方を確認します。

トゲの間隔を調整したい場合は、下の画像のようにUVの間隔を伸縮させてお好みの間隔に調整してください。

今回はUVを伸ばして配置した状態のメッシュを使用しました。

image24
image25

3.エフェクトを作る(Unity)

particleの形状を決める

テクスチャとモデルがそろったのでいよいよUnityでの作業に移ります。

1と2で作成したテクスチャ素材とメッシュ素材を取り込みます。
Project上にフォルダを作成し、そこに必要な素材をまとめておきましょう。
image16

次にMaterialを作成します。
image19 Project上で右クリック>Create>Materialをクリックで作成できます。

作成したMaterialのshaderを設定します。
今回は発光感のあるエフェクトにしたいので、Additiveを使用しました。
image2

Hierarchy上にParticle systemを作成します。
image18 Hierarchy上で右クリック>Effect>Particle systemをクリックで作成できます。

続いてInspector上で作業していきます。
RendererにmeshとMaterialをそれぞれの箇所に入れます。image8

・Render modeを『Mesh』に変更し、先ほど作成したメッシュを入れる
・Materialも同様に先ほど作成したMaterialを入れる

このときRendererAlignmentをviewからworldに変更しておきましょう。
デフォルトで設定されているviewのままだと、どの角度から見てもメッシュの形状が一定の見え方になってしまうためです。
image3


ParticleをZ方向に向かって衝撃波が広がるように動かしたいので、Particleの向きを画像のように設定します。
image26


ここまでの工程で横向きの衝撃波が発生するように設定できていればOKです!
image4

Particleの動きを付ける

Emitterの形状を決める

今回のエフェクトでは中央の1点から発生させたいので、デフォルトでOnになっているshapeのチェックは外しておきましょう。
image12

※Radiusの値を限りなく0に近い値に設定することでも同じような結果を得られますが、
 簡単なのでこちらの方法がおすすめです!

今回は同じ衝撃波を一度に4つ連続で発生させたいため、EmittionのBurstを使用します。
※Burst:一度にParticleを発生させたい場合に使用します。
image5


・Time:Particleを再生してから何秒後に発生し始めるか
・Count:発生させるParticleの数
・Cycle:何回発生させるか
・Interval:発生させる間隔

一度に4つの衝撃波が発生するようになりました!
image11

Particleの進む方向を決める

キャラクターが前に進む際に衝撃波が後ろに流れるようにしたいので、
『Velocity Over Lifetime』を以下のように設定します。
image9


Zにマイナス値を入れることで、発生した粒が後ろに進むようになります。
image1

Particleの動きに緩急をつける

勢いよく発生し、余韻を残すような動きにしたいので、今回はスケールのアニメーションを使って表現していきます。

Particleの発生時の大きさを設定します。

『Start Size』『Size Over Lifetime』を以下のように設定します。image17

image20

デフォルトのLifetimeが5秒に設定されているので、今回はもう少し勢いを付けるために0.2秒に設定します。

image10

これで一旦衝撃波が出来上がりました!
動きの緩急や大きさを調整する前と調整した後を比較するとこんな感じです。

(左:調整前、右:調整後)

モーションの長さやキャラクターの動きに合わせて衝撃波の発生タイミングや個数を調整してください。

Particleの色を付ける

徐々に消える動きを付けたいので、
『Color Over Lifetime』を使って時間経過と共に薄くなるように設定します。
image6

4.完成!!

これで突進エフェクトの完成です!
image13

ーーーーーーーーー

いかがでしたでしょうか?
かなりざっくりな説明になってしまいましたが、作ってみようかな?と思ってくれる方がいらっしゃると嬉しいです。

エフェクトに関してまだまだ未熟な私ですが、KLabには技術力の高い先輩がたくさんいるので、今はいろんな方にお世話になりつつ自分ももっと成長して行きたいなと思っています。
もしまたこんな機会があれば、次はもう少しレベルアップした内容の記事が書けるようにしたいですね!

最後まで読んでいただきありがとうございました!

image4

はじめに

この記事は KLab Creative Advent Calendar 2019 の 6日目の記事になります。

こんにちは。クリエイティブR&Dグループ所属のsasaと申します。

セクション内では主にVFXを担当しており、現在はHoudiniというツールの技術検証・研鑽・実践を行っています。

「R&Dグループってなんぞや?」という方はコチラ↓

当クリエイティブブログでは今までHoudiniのイントロダクションHoudiniの基礎チュートリアルHoudiniのPyro基礎チュートリアルを寄稿してきましたが、今回は11月16日に開かれたプロシージャル祭というイベントで私が展開した表題のエフェクトTipsをご紹介したいと思います。

※プロシージャル祭とは

プロシージャル祭とは、プロシージャルや非破壊な作業フローを紹介し合う集いのことです。とはいってもガチガチのお堅い会というわけではなく、「自分の気に入ってる大体非破壊的でフットワークの軽いフローを紹介する場」位の感覚です。

私が今回紹介する内容も、手癖でよくやる大体非破壊でフットワークの軽いフローの紹介という感じです。

今回の内容

下記画像が今回Tipsとして紹介するパーティクルワイプ等の画像や作業フローのスチルになります。

image2

image3

image1

ベースのテキストやパスのディテールや動きはAfterEffcetsとそのプラグインのElement3Dで作成し、そのメッシュを書き出してHoudiniやRealFlowでエフェクトを付けていきます。元のテキストやパスを差し替えても、各段階の中間データを出し直すだけで他はほぼ調整しなくても大丈夫な作業フローとなっています。

動画Tipsになりますので、ブログ上では下記テキストで要点等の捕捉を行いたいと思います。

ProcedualPaticleWipeFX:Houdini,AE&Other

こちらが今回の完成形及びTips動画となります。各チャプターへのショートカットは動画の説明欄に記載しています。


今回は基礎的なチュートリアルではないので動画内で細かくツールや機能を説明していないので、主に使うツールを下記に記載します。

MainTools

  • AfterEffects

    • コンポジットや、プラグインのElement3Dを使ってテキストを3D化→その3D化したテキストのアニメーション作りに主に用います。

  • Houdini

    • メインとなるワイプのパーティクルエフェクトの作成~レンダリングまで及び、流体メッシュのレンダリングに用います。

  • RealFlow

    • 流体メッシュやサブのパーティクル素材作成に用います。

  • Krakatoa

    • サブパーティクルのレンダリングや更に追加のパーティクル素材の操作・管理・レンダリングに用います。3dsmaxのプラグイン版を使用しています。

Tipsの補足

プロシージャル祭での個人の持ち時間が20分弱だったので、動画はタイトな構成になっています。ですので、追加で別途説明をした方が良さそうだと感じた箇所を下記に文章でまとめました。

Tips動画を鑑賞中、必要に応じて適宜ご確認いただければ幸いです。

CreateBaseObject

この動画を発表したプロシージャル祭自体が、自分の好きな非破壊フローやツールを発表する会ですので、上述していますがサードパーティープラグインや様々なツールを普通に使用しています。

HoudiniとAfterEffects以外の主な有償ツールは、AfterEffectsプラグインのElement3D、流体ツールのRealFlow、粒子管理に特化した3dsmaxプラグインのKrakatoaやフルイドプラグインのFumeFXです。

今回のフローは、サードパーティープラグインのElement3Dが肝になっています。このプラグインは、AfterEffectsのメジャーなプラグインなのでAfterEffectsユーザーの多くが既知・使用しているものかと思います。実務で遭遇・使用する機会の多いプラグインですので、非AfterEffectsユーザーの方でも知識として知っておくと、有用な場面があるかと思われます。

Element3Dを使用する際は、同じ会社が販売している実戦レベルのマテリアルプリセットの「ProShader2」、高画質IBL用テクスチャ集である「BackLight」を一緒に購入する事をオススメします。

Element3Dは仕様上、フェース毎にscatterできるようにジオメトリが構成されているため、3DCGツールで書き出したOBJファイルを読み込むと頂点結合がされていなかったり、法線やUVが疎らだったりと、大概の3DCGツールでは少し扱い辛い形で読み込まれます。場合によっては、書き出したOBJファイルをリダクションしてから実際の作業に移ると良いでしょう。

CreateWipeParticle

ブーリアンの範囲を厳密にジオメトリの範囲等で指定してはいませんが、Element3Dで作成される標準スケールは大体決まっているので、今回のような場合ではそこまで問題になりません。

ブーリアンでジオメトリをカットして、断面のみ抽出してそこからパーティクルを出すというのは、シンプルですが手堅いフローです。シンプルな作業フローというのは大概、強固で確実で汎用性が高いので、それで充分な速度と結果が得られる場合は私は重宝しています。

Fluid & SubParticle

この工程もHoudiniでやっても良いのですが、動画の後半でも解説している通りRealFlowはこの手の小規模流体の作成が非常に得意なので使用しています。

今回のケースでは、シミュレーションの軽さもRealFlowの利点ですが、この手の流体に付き物のメッシュのピクつきがほぼ起こらず、試行錯誤で先の読めない状態には滅多にならないので、小規模流体制作で確実に頼れるツールとして私はRealFlowを重宝しています。

RenderingSubParticle

Krakatoaは、パーティクルの操作・管理・レンダリングに特化しているツールです。ニッチなツールだけあって、億単位のパーティクルを軽々と扱えます。RealFlowで作成したパーティクルの再利用もKrakatoaなら容易なので使用しています。

CreateExtraParticle

上述した通り、Krakatoaは億単位のパーティクルを軽々と扱えるのでこの手のイメージエフェクトを手早く確実に作成できます。紹介しているFumeFXとの連携は昔から強力なフローです。とはいえ、この工程もHoudiniでも行えます。Krakatoaを使用している理由は、今回のケースだと特化ツール故の速さと確実性が有用だと判断したからです。

RenderingFluid

Houdiniでアセットを仕込むとデータ管理や再利用が圧倒的に楽なので、Houdiniに読み込んでレンダリングしていますが、別にレンダリングするだけなら他のツールでも大丈夫ですし何ならRealFlowからOBJ連番で書き出して、Element3DにOBJ連番を読み込んでAfterEffectsで直に調整することも可能です。どのツールや手法を使うかは、状況や環境で適宜選択すると良いでしょう。

Composite & Finish

動画内でも説明していますが、コンポジットでは割と一般的な調整しかしていません。

テキストの消し込みも、パーティクルに合わせて大雑把にマスクを切っているだけです。消し込み用のパーティクル素材の質と量が十分ならこのようなマスク処理だけでもビジュアルの整合性が取れるので、作業時間や無駄な手間を削減できます。

BonusTrack

プロシージャル祭での個人の持ち時間が20分弱なのと、こちらは発表内容とは別物なので、HUDやモーショングラフィックスの解説はボーナストラック扱いで切り分けています。この手の表現や手法はそれこそ星の数ほどあって、何が正解かというのは難しい話なのですが、共通して言えることは、主たる要素を決めて、見る人の視線をしっかりと誘導するようにデザインや構図・アニメーションを作る、と良いといった所でしょうか。これは、イラストや映像でも言える事なので、ジャンル関係なく普遍的に気にすべき要素と言えるでしょう。

終わりに

お疲れさまでした。如何だったでしょうか? 少しでも皆様の様々なツールの勉強・発見のお役に立てたのなら幸いです。

プロシージャルや非破壊というと、Houdiniの代名詞のように思われがちですが、こういった考え方は他のツールでも作業の高速化や作業サイクルの効率化に有用です。

作業を効率化するということは、その分浮いた時間を、クオリティアップや、試行回数を増やしてクオリティを詰める機会に繋げることができるということです。

本Tipsをご自身の作業の効率化や高速化、何かしらのヒントや知見として活用して頂けますと幸甚に存じます。

また、「こういう事を知りたい」「こういう内容を記事に取り上げてほしい」といった要望も募集中です。何かございましたらコメントフォームの方へ書き込みをお願いいたします。

最後までお目通し頂きありがとうございました。

はじめに

この記事はKLab Creative Advent Calendar 2019 の 5日目の記事になります。

こんにちは。クリエイティブ部所属のUchiと申します。

主に3Dキャラクターや背景プロップ等のモデリングを行っています。

今回はMaya2018に付属しているArnoldレンダラーを使い、既存のモデルをアレンジして、簡単にそれっぽい作品を作るTipsを紹介したいと思います。

私自身そこまでハイエンドなモデルを作る機会がないため、記事を読んでくださる方の中には目に余る部分があるかと思いますが、その点ご容赦いただけたらと思います。またMayaの基礎操作を習得している方向けに記事を作成しており、細かな説明は飛ばしております。

今回の内容

今回はチューブ状にレンダリングしたカーブをモデル形状に合わせて作成し、30分でそれっぽいものを作成します。本日扱うのはこちらのモデルです。

image5
それっぽい作品を

image3

弊社のモバイルオンラインRPG『禍つヴァールハイト』で使用しているラコという名前の、3000ポリゴン程度のローモデルです。こちらをベースにアレンジしてみたいと思います。

モデルのトポロジーを変更する

それでは早速やってみましょう。まず適当なポーズをつけ、元のモデルをハイメッシュのモデルに変更します。今回は静止画を制作するのでウェイトは外しました。

image6

この段階でのメッシュの流れは汚くて構いません。あくまでベースとして使うので、後々の作業にあまり影響しないためです。

その後一度3dsMaxにモデルを持っていき、トポロジツールを使ってメッシュの分割を好きな形に整えます。3dsmaxのトポロジツールはオブジェクトのメッシュのサブディビジョンを手続き的に生成されたパターンに作り直すツールです。

image2

これで大体の形状を保ったままトポロジーを変更することが出来ます。

少し重そうなので、ポリゴン数をプロオプティマイザーモディファイヤで削減したり、メッシュの調整を手動で行います。大体1万以下くらいのポリゴン数で、できるだけガチャガチャした不揃いなメッシュ形状にします。今回は約6500ほどに調整しました。

こちらのモデルをMayaに戻します。作例では中身はありませんが、表面に蔦が這っているような表現にしたいなぁと思ったので、各フェースを分離し個別にスケールをかけます。これで図のような穴の空いたモデルが出来ます。

image4

こちらからエッジを抽出しArnordでレンダリングしたいのですが、普通にエッジ抽出するとMayaが強制終了してしまう危険性があります。そこでトゥーンシェーダを割り当て、ペイントエフェクトからカーブを抽出します。

作成したカーブをセット化し、以下のアトリビュートを追加します。

  • aiCurveShader

    • カーブ自体のシェーダになります。

  • aiCurveWidth

    • レンダリングするカーブの太さを設定します。

  • aiMode

    • レンダリング時の形状を設定します。

  • aiRenderCurve

    • レンダリングの有無になります。

image1

追加すると画像のように追加のアトリビュートの箇所に追加されるかと思います。

ここまでで約15分程度、あとの15分は好きなマテリアル設定およびライティングでレンダリングすれば完成です。今回の作例では30分以内が目標でしたので簡単な金属のマテリアルにスタジオ照明のようなライティングにしましたが、埃(ダスト)を追加したり、もっとライティングに凝ると面白いものが出来るかと思います。

image7

終わりに

いかがでしたでしょうか。元がローポリゴンのモデル、しかも30分足らずのアレンジでも情報量を足してやることでちょっとそれっぽいものに見えます。

ちょっとしたTipsを沢山自分の引き出しに入れることで、より良い作品作りに繋がります。こちらの記事が皆様のお役に立てれば幸いです。

最後まで読んでいただきありがとうございました。