KLabGames Creative Blog

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

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を沢山自分の引き出しに入れることで、より良い作品作りに繋がります。こちらの記事が皆様のお役に立てれば幸いです。

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

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

こんにちは、KLabGames 3D背景デザイナー兼RRRグループのnaoieです。

私はとある機会に岩石や植生等の汎用モデルを大量に取得できないかと悩んでおりました。

解決するためには色々な手段があるとは思いますが、その中でフォトスキャンソフトを利用して、工数を削減しつつ素材を取得出来ないかを試す事にしました。

進めるにあたり様々なフォトスキャンソフトにどのような利点や精度があるかも併せて知りたかったため、弊社”どぶろく制度”を利用し行った検証から、それぞれのソフトの仕様の違いや利点を今回まとめましたので、これからフォトスキャンを行うという方がいらしたら、参考にしていただけますと幸いです。

フォトグラメトリとは?

物体を様々な方向から撮影した写真をコンピューターで解析し
3Dモデルを作成する技術です。

フィギュアのような小さなものから建築や都市といった大きなものまで
3Dモデルにすることができます。

フォトグラメトリのソフトウェア

今回試したソフトは、以下の4つです。

手順や計算時間、アウトプットモデルを比べてみました。

1.Autodesk Recap Photo
2.Agisoft PhotoScan
3.RealityCapture
4.Alice Vision Meshroom

使用したカメラ

IPhone X

  • HDR設定で40~60枚撮影
  • 撮影時間はおよそ2~3分

本来なら一眼レフカメラを利用しますが
スマホのカメラでどの程度の精度が出るか試してみました。

HDR設定で黒つぶれや白飛びを防ぐことで、よりよくモデル形状やテクスチャを抽出することが出来ます。

被写体

  • 弊社近くの公園のベンチ
  • 固形である程度大きく光沢の出ない物質として選定しました。

image12

撮影方法

  1. 被写体を中心に、ぐるりと周回するように撮影する
  2. 撮影した写真に被写体がすべて収まっている

撮影する枚数が多ければ多いほど、撮影するアングルの間隔が細かくなればなるほど認識率*の高い写真になりモデルやテクスチャの品質が高まります。

※認識率とは被写体の形状が、それぞれの写真で合致個所が多いことを指します。

▼撮影アングルイメージ                                        ▼撮影された写真 

Autodesk Recap Photo

▼工程

  1. 写真を取り込む
  2. クラウドサーバーが、自動でモデルとテクスチャを生成

▼特徴

  1. クラウドサーバーが、自動でモデルとテクスチャを生成してくれる
  2. 精度は被写体面に垂直に撮影した写真のピントとその枚数

▼計算時間

  • 約2時間 写真60枚ほど

Agisoft PhotoScan

▼工程

  1. 写真を取り込む
  2. カメラ位置検出
  3. ポイントクラウド生成
  4. テクスチャ生成

▼特徴

  1. ポイントクラウドを生成し、品質を調整できる
  2. レーザースキャンなどの高精細なデータも扱える

※ポイントクラウド(点群データ)
XYZの基本的位置情報や色などの情報を持つ3次元データです。
このデータから、ポリゴンとテクスチャを作成することが出来ます。

▼計算時間

  • 約2時間 写真60枚ほど
  • ポイントクラウドデータの作成に時間かかる
  • Pythonでのバッチ処理が可能

RealityCapture

▼工程

  1. 写真を取り込む
  2. カメラ位置の計算
  3. モデル作成
  4. テクスチャ生成

▼特徴

  1. 操作が簡単で精度が良い
  2. 計算時間も他のソフトに比べ、早い

Alice Vision Meshroom

▼工程

  1. 画面下部の任意のノードを右クリック
  2. Computeをクリック

▼特徴

  • 写真を入れた後の工程が全自動
  • 計算時間も今まで紹介したソフトより高速で処理する
  • オープンソースで無料でモデル/テクスチャまで確認できる

もしこれを手作業した場合

誰が行っても、簡単で品質が高くまとめることが出来ればよいですが
制作者によって多少、品質や作業時間に差が出てしまいます。

汎用的なモデルに時間をかけるより、その世界観固有のモデルや
特殊なフィールドの方に制作時間をかけるべきです。

フォトスキャンに向いているオブジェクト

〇向いている

  • 固形
  • 大きい/太い
  • 光を反射しない
  • 光沢が出ない

✖向いていない

  • 半透明/透明
  • 小さい/細い
  • 反射する
  • 光沢が出る

ゲームモデルの利用に向いているオブジェクト

〇向いている

  • 形が歪なもの
    → 手作業だと制作工数が掛かる為
  • たくさん配置できるもの
    → 汎用的な利用価値があるといろんな案件で使用機会が増える

✖向いていない

  • 使用することに許諾や承認が必要な物
    → 意匠や形状にネームバリューのあるものはトラブルの原因になるかも
  • 形状が幾何学的な物
    → 意図的ならよいが、いくらかノイズが載ってしまう
    モデルから作ったほうが、応用しやすいことがある為
  • 現実世界のどこにあるものか、特定できるもの
    → 特定できてしまうと、ゲームの世界観に没入できない為

自然物が無難だと思いますが、上記”向いている”要素が含まれているものであれば
工数削減と利用機会のある良いモデルになるかと思います。

スキャンモデルをゲームモデルにする

スキャンしたモデルのUVは、ゆがみが極力少ない状態を維持している為
UVアイランド多い状態で生成されています。

image11

これだとデータ量が余計に増してしまう為、ゲームモデルとして最適化を行います。


  1. ポリゴン削減
  2. ゲーム用UV展開
  3. ゲーム用UVへフォトスキャンテクスチャをベイクする

ポリゴン削減

任意のDCCでポリゴン削減を行います。

以下はHoudiniの”PolyReduce”を利用したものです。

image10

ゲーム用UVへテクスチャをベイクする

1.UV展開

ポリゴンを削減したモデルのUV展開を行います。

UVの切れ端は出来るだけ鋭角なモデル変化をした個所に設けることで
テクスチャの切れ目を目立たなくさせることが出来ます。

image9

2.テクスチャベイク

作成したゲームUVとフォトスキャンモデルUVをGameDev Simple Bakerに接続し
テクスチャをベイクします。

image1

image2

まとめ

1.写真を上手く撮影すれば品質に差はほとんどない
ソフトによって手順や計算速度が異なる

2.得意なもの
固形物 大きい/太い 反射しない/光沢が出ないもの

3.ポリゴン削減とUV展開をすればゲームモデルに早変わり
自動化できれば量産が可能


今回は触れませんでしたが、Python等で自動処理が可能です。

また、ポリゴン削減の定義なども精度の良いものが出来れば
ゲームモデル化まで量産が可能となります。

出来るだけ汎用モデルの工数を削減しより力を入れるところに
割く時間を捻出出来ればと思います。

参考文献

フォトグラメトリーとプロシージャルを用いた最新ハイエンドゲーム3DCG背景制作手法
~ハイエンドゲーム開発の経験がない会社がいかにしてそれらを生み出したか~

フォトグラメトリ入門 撮影方法~3Dモデル作成

[比較] Reality Capture vs. 3DF Zephyr

人柱系CGモデラーのTipsブログ