ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

bitsummit 4th に行ってきました

京都の平安神宮そば、みやこめっせまで行って参りました。

初の参加でしたが、外人さん含めて人がいっぱいで活気があり、一風変わった面白そうなタイトルが沢山並んでいて非常に刺激的でした。

VRタイトルはどれも気になるものばかりでしたが1時間以上待ちな感じだったので傍から覗いた程度ですが、中でもQ-Gamesの「Dead Hungry」がとても良い味出してました。

VRタイトル以外では会場で遊んだもの・遊んでないものどちらも含め、出展されていて気になったタイトルをざっとメモっておきたいと思いますが、下記リンクの記事で取り上げられているものは省き気味で。

■OKHLOS

http://coffeepoweredmachine.com/okhlos/

カオスな感じがとてもイイ。
動画を観るだけでもすごく楽しげな雰囲気が伝わってきます。

■spirit

http://spirit-thegame.com/

こちらは音楽込みで雰囲気がとても良く印象的でした。

■Aya Blaze

http://www.ayablaze.com/

爽やかなで色鮮やかなグラフィックも好みですが、音楽も相まっての疾走感がとても良い。

■MOMODORA: 月下のレクイエム

http://playism.jp/game/430/momodora-gekka-no-requiem

音楽も良いし良い動きしています。こちら時間を見つけて遊びたい。

■Dot Matrix Hero

https://www.hanaji.com/dot-matrix-hero/

■TonTonPirates

https://www.facebook.com/Drukhigh/

■Bloodstained: Ritual of the Night

Bloodstained: Ritual of the Night by Koji Igarashi — Kickstarter

Bloodstained: Ritual of the Night - YouTube

■Dragon Fin Soup

http://dragonfinsoup.com/

■strange telephon

http://magniflop.com/

■ToU

RiG++ - 立命館大学情報理工学部プロジェクト団体ゲーム&CG部門 :: Home

立命館大学の学生作品。非常に良く出来ていて驚きました。

あと印象に残ったものはと言えば会場でも異彩を放っていた「ボコスカウォーズII」でしょうか。。
PS4/XboxOneで出るのか‥


行きは最寄駅からみやこめっせへ水路沿いに歩きつつ「京都はやっぱりいいなあ」とつくづく思いました。京都最高。

京都に住んでいたときから平安神宮近辺はあまり来ることはなかったですが、久々に来るとまた一段と綺麗になってますね。5年前(!)のSCRAPのイベント「京都迷宮パズル」以来かも。同じ社内の人間で連れだって参加し、3人1組の4チームで戦でゴールへの順位を競い合って楽しかった。ゴールが平安神宮だったんですよね。

この日最後はみやこめっせそばの蔦谷書店&スターバックスで友達と優雅にお茶して帰りましたとさ。

UE4.11からの新機能「Particle Cutout」を使用する方法

 UE4.11から追加された新機能「Particle Cutout」を設定する手順を解説します。

Particle Cutoutとは?


主にSubUVアニメーションを利用するパーティクルで、ビルボードで表示している四辺形ポリゴンをテクスチャの透明部分に合わせてカットしてくれる機能です。
下図はUE4.11リリースノートより引用。

f:id:moko_03_25:20160704020116j:plain

アニメーションさせない1枚絵のパーティクルでも利用可能ですし、マテリアル内でのテクスチャの参照はParticleSubUVノードじゃなくTextureSampleノードでも可能だったりもします(ただしSubUVのブレンド補間が利用できなくなります)。

手順の解説


① まずはテクスチャを作成します。
この時、Opacity用の絵柄を必ずアルファチャンネルに格納しておく必要があります。

f:id:moko_03_25:20160704010109p:plain

② テクスチャをUE4にインポートしてサムネイル上で右クリック「Create SubUV Animation」を選択。
※バージョンアップにより項目が無くなりました
 コンテンツブラウザで 新規追加>その他 の中に「Sub UV Animation」が入っています

f:id:moko_03_25:20160704010110p:plain

③ Sub UVAnimationデータが作成されるので開きます。

f:id:moko_03_25:20160704010111p:plain

「Sub UVTexture」で用意したテクスチャが指定されているのを確認。
「Sub Images Horizontal」と「Vertical」でUとVのパターン数を指定します。
 ここをどちらも1に指定すれば1枚絵の状態でカッティングできるという訳です。
「Bounding Mode」で4頂点でカットするか8頂点でカットするか選べます。4頂点で十分カバーできるシンプルな絵柄なら4頂点を選択した方が若干データサイズが減る感じでしょうか。
UE4.16時点ではAlpha Thresholdは 0 だと機能しない不具合があります
 0.003 など1/256を下回る小さい値を入れましょう

f:id:moko_03_25:20160704010112p:plain

④ マテリアルを作成してBlend ModeをTranslucent、ShadingをUnlitに変更。
そしてアルファ用のテクスチャをOpacityに接続します。
下図がRチャンネルから接続しているのはテクスチャの圧縮タイプをBC4に設定したからです。
そうするとアルファチャンネルはSub UVAnimationデータの作成のみに使用して、でも実際には1チャンネルのグレースケールテクスチャとして扱うことができます。RGBAの4チャンネルのフォーマットしか使えない訳ではありません。

f:id:moko_03_25:20160704010113p:plain

⑤ Particle Systemを作成してRequiredモジュールを選択して詳細パネルでマテリアルを設定。

f:id:moko_03_25:20160704010114p:plain
詳細パネル下の方にある「Sub UV」の項目で通常通りSubUVアニメの設定を行います。

f:id:moko_03_25:20160704010115p:plain

さらに下にスクロールすると「Particle Cutout」という項目があり、ここに作成済みのSub UVAnimationデータを指定します。

⑥ Subimage Indexモジュールを追加してSubUVアニメーションを設定します。

f:id:moko_03_25:20160704010116p:plain

今回のテクスチャは4パターンのアニメーションなので開始は0、終了は3に設定。

⑦ 3Dプレビュー上でAlt + 2を押してワイヤーフレーム表示に変えて確認します。
カッティングされて正方形で無くなっていればうまくいっています。

UE4.16時点では正常にカッティングされない不具合があります
 例えば絵柄の描かれている領域をカットしてしまう場合があります
 また、ループアニメの場合にうまくカット形状が繋がらない場合があります

f:id:moko_03_25:20160704010118p:plainf:id:moko_03_25:20160704012442p:plain

従来だとこちらのように正方形です。元の表示に戻す場合はAlit + 4を押します。

f:id:moko_03_25:20160704012441p:plain

 

SubUVアニメのLinear Blendについて


マテリアル内でテクスチャの参照にParticle SubUVノードを使用して、エミッターのSubUVの設定でブレンド補間を指定すれば、前後のパターンをクロスフェードするようにブレンドできますが、パーティクルカットアウトと併用するとどうなるのか試してみました。
マテリアルは下図のようにParticle SubUVを使用。

f:id:moko_03_25:20160704010119p:plain

エミッターのRequiredの詳細パネルでLinear Blend設定で表示。
するとEmissive Colorはブレンドされているのが分かりますが、いくつかのパーティクルの絵柄がスパっと切り取られたような見た目になってしまっています。
これはパターンが切り替わる途中では前のパターンの形状でカッティングされているからだと思います。

f:id:moko_03_25:20160704010120p:plain

カットアウト情報である頂点自体を今のパターン+次のパターンをカバーするサイズに膨らませたりでもしない限り回避できなさそう(そうするとカッティングのうまみが減る)に思うので、これは仕方ないことかも‥。
ひとまず現状の仕様ではParticle Cutoutを使用する場合はSubUVアニメのブレンドを諦めるということになりますが、ゆっくり再生させたい煙テクスチャなどではブレンドは重宝するためこれは結構ジレンマとなりそうです。

UE4.16では前後のパターンをカバーするサイズでカットしてくれるようになっています
 ただし先にも書いたように綺麗にカットされない不具合があります
 以上を踏まえるとまだパーティクルカットアウトは使用するのが厳しいのが現状です‥

勉強会でHDMIビデオキャプチャーとマイクを使用してみた

勉強会なんかでノートPCで(もちろんデスクトップPCの場合も)アプリケーションを操作しながら解説したり、パワーポイントを流しながら講演するような時に、デスクトップ画面と音声を同時に収録したかったりします。
それも、画面と音声を別撮りして動画編集ソフトでタイミングを合わせて合成する手間を省くためにマイクで拾った音声を動画に直接ミックスして欲しい。

そんな時の方法を2つメモ代わりに書いておきます。

デスクトップキャプチャーとマイクを使用する方法


ノートPCにデスクトップキャプチャーソフトをインストールし(ここではBandicamを使用してテストしてみました)、マイクから入力した音声をミックスする設定にします。

Bandicamの場合、設定方法は公式サイトにありました。

この方法で無事に音声入りでキャプチャーできました。

ただ、ノートPCにHDMIケーブルを挿して液晶ディスプレイに繋げると、Bandicamでキャプチャーした動画にマイク音声がミックスされなくなりました。このあたりはコントロールパネルのサウンド設定あたりで対処できるのですかね?

ただ、自分のノートPCを使う場合は良いのですが勉強会等で他の講演者のノートPCにキャプチャーソフトを入れてもらうという訳にはいかないですし、ノートPCのスペックが十分でないとUE4やらHoudiniやら動かしながら録画もするのはしんどいかも知れないので、こちらの方法は3DCG系の勉強会向きでは無いかも。

逆に言えば、社内の自席のデスクトップPCでチームメンバーに共有するような時に良いと思います。ちなみに試してませんが、Skypeフリーソフトの連携でデスクトップ画面を共有した状態で録画&録音することもできるようです(調べてないです)。

HDMIビデオキャプチャーを使う方法


もうひとつはノートPCからHDMI出力した映像をキャプチャーする方法です。
ビデオキャプチャ」で検索すると、ゲーム録画用途のものが色々と出てきます。
商品ラインナップが充実しているのには、Youtubeニコニコ動画でゲームプレイ映像をアップする文化の影響が大きそうです。

その中でもポピュラーなのはAVerMedia製品になるのでしょうか。
種類も多くどれを選べばいいのか最初は悩みました。
ですが4GamerのレビューAmazonの低評価レビューを見ていると自分の用途と合わない要素がどんどん明らかになってきて1つに絞ることができました。

4Gamerのレビューはこちら。

PCレスキャプチャデバイスの進化形「AVT-C285」レビュー。実況動画作成や簡易編集,スマホアプリまでを総チェックしてみた - 4Gamer.net

ゲーマー向けのビデオキャプチャデバイス「AVT-C875」レビュー(前編)。HDMIにも対応したPCレス録画ツールの実力を検証する - 4Gamer.net

約1万3000円で買えるHDMI入力のみのビデオキャプチャデバイス「ER130」がAVerMediaから - 4Gamer.net

遅延を気にせず「ながら録画」できて,「テレビなしの据え置きゲーム機ライフ」も実現。USB 3.0接続のビデオキャプチャデバイス「GC550」を試してみた - 4Gamer.net

AVerMediaのビデオキャプチャデバイス「GC550」再テストレポート。プレビュー表示には4〜5フレーム相当の遅延があった - 4Gamer.net

4Gamerの方では実用面での丁寧なレビューがとても参考になります。
それと、Amazonの低評価レビューについてもざっと目を通した方が良いですね。。
購入者側の見落としや落ち度も多分に含まれていると思うので鵜呑みにしないよう注意が必要ですが、レビュー見ずに購入してたらハマっていたであろう落とし穴についても知ることができました。

◆種類について

勉強会向けに探しているので当然、デスクトップPCに内蔵するキャプチャーボードではなく、自分のPCだけでなく他の人のPCからHDMI出力したものをキャプチャーできる製品が購入ターゲットになります。

その中でも大きく分けて下記のように分類ができます。

① 録画した動画をPCに出力するもの / 動画を本体に繋いだHDDやUSBメモリに保存するもの(PC不要とかアプライアンスタイプと謳われる製品)

HDMIの映像とマイク音声を同時に収録できるもの / できないもの

①に関しては、キャプチャー機器単体で動画を保存できるものの方が良いと思いました。
というのも理由はいくつかあり、PCとUSB接続して利用するタイプではUSB3.0のみ対応(2.0非対応)の製品が目立つので勉強会の現場で使えないことが発覚するケースがありそうというのが1つ。また、PC側の入力ポートが3.0でも相性問題で入力できないというレビューをよく見かけました。
また、この相性問題では最悪の場合HDDの全データの消失に繋がるケースもあるようです。自身のノートPCならともかく、他の講演者のノートPCでそんなことが起きたら大変ですし責任も取れません。
加えて、録画ソフトをインストールする必要があるので他の講演者のPCにインストールしてもらう訳にもいかないですし、PC接続タイプはどのみち対象外ですね。。

②に関しては、HDMIから入力した映像とマイクの3.5mmステレオミニプラグから入力した音声を同時に収録可能な製品は限られます。案外ニーズは少ないのかもですね。
注意しないといけないのは、HDMIコンポーネントケーブル両対応している製品で、コンポーネントケーブル接続時のみマイクの収録が可能なタイプ。
例えばこちらなんかは古い製品で価格も安くAmazonで購入できるものの、HDMI接続時はマイクの音声を合成できないようです。また、低評価レビューを見ると15分しか録画できないとか色々と書かれています。

◆その他の注意点

注意が必要なのは、ビデオキャプチャー機器全般で壊れやすい印象を受けるレビューが多かったことです。小さくて軽いものは雑に扱いがちかも知れませんが、精密機器だと思って慎重に扱った方が良いと思いました。電源ON/OFF周りも説明書の手順通りにした方が良さそう。あと自分の場合は持ち運ぶのでクッションが効く状態で収納することも気を付けたいところです。
加えて言えば、初期不良の場合は面倒がらずに返品・交換依頼することでしょうか。

◆最終的に選んだのは‥

最終的に選んだ製品はAVerMediaの「AVT-C285 ゲームレコーダー HD II」です。

AVT-C285|ゲームレコーダー|AVerMediaアバーメディア

自分の場合には、HDDを内蔵させる要素はいらない・YouTubeアップロード機能いらない・動画編集機能いらない・PCで録画する機能はいらない・本体がでかい‥といったあたりが不満なので、HDD内蔵スペースとLANケーブル入力を削ったもう少し安価でコンパクトな製品があったら嬉しかったのですが。。
コンパクトなものは前述の①②の理由で良いものがありませんでした。
同じAVerMediaの会議用の製品も気になりましたが3万円だったので諦めました。

勉強会用に持ち運ぶ前提なので、6000円程度の120GBのSSDヨドバシカメラで購入して内蔵させました。SSDにしたのは衝撃と熱それぞれの耐性の理由からです。内蔵できなくてコンパクトの方が良いと書いたばかりですが、内蔵しっぱなしだと準備の手間が減るのでこれはこれで良いですね!
AVT-C285へのSSD/HDDの取り付け・取り外しはとても簡単で、SSDを買うついでに2000円ほどのUSB接続のHDDケースを買ったので、他マシンへの動画のコピーも楽でした。

◆使用感

肝心のPC画面の録画&音声収録に関しては、今のところ2台のノートPCで試してどちらも特にトラブル無く綺麗に収録されていました。滑り出し好調です。長く使っていけるのかはまだ分かりませんが、ヨドバシカメラで買って延長保証を申し込むとより安心かも知れないですね。

1点気になったのは購入して自宅でテストした時に、30分程度の稼働の中で5分程度の録画を行っただけで本体がものすごく熱くなったことです。電源をOFFにして本体を触った時には、フタを開けてSSDを触るのは無理だなと思ったくらい熱かったので長時間使用できるのか不安になりました。ビデオキャプチャーに故障や動作不具合のレビューが多い印象なのもこのあたりが関係するのでしょうか。
ただ、勉強会当日では冷房の利いた会議室で3時間稼働してもそこまで熱くなっていなかったので少し安心しましたが、ちょっとモヤっとするものが残ります。
場合によっては保冷対策を練る必要があるのかも‥?

それから作成される動画についてですが、MP4エンコードされた状態になっていて画質は非常に綺麗です。初期設定の最高画質で解像度は1080p、約3時間の収録で10GB程度。120GBのSSDで勉強会10回分は撮り溜めできそうなので十分と思いました。

◆マイクについて

ちなみにマイクはaudio-technicaの無指向性の「AT9920」をAmazonで6000円ほどで購入。

audio-technica ステレオマイクロホン(バウンダリー) AT9920

audio-technica ステレオマイクロホン(バウンダリー) AT9920

 

マイクはほとんど時間をかけて調べてはいませんが、サイズが小さいこと、評価が高く20名くらいの会議でもしっかり録れる等のコメントがあったことからこちらに決めました。実際にファーストインプレッションとしてはそこそこ好感触です。スクール形式で16名ほど収容可能な会議室でマイクは前の方に置き、後ろの方に座っている人の声も聞き取れました。マイクは1000~2000円くらいのものもありますが、安い製品ものだと近距離の声しか拾わなかったりノイズが目立ったりするようです。

「Industory 2016」参加レポート

記事にするのがかなり遅くなってしまいましたが、2016年の3/6に開催されたクリエイティブサミット「Industory 2016」に参加してきました!

映像・CG・イラスト・音楽といった様々なジャンルでのエキスパートな方々による講演と、会場内のブースではスポンサーによる展示や著名な方々によるデモンストレーションが行われていました。

NukeXとMMD使った簡易的なマッチムーブ。Mariの基礎的な使い方。


lunaさんのご講演。
実はこちら寝坊して拝見することができませんでした。
しかし映像が上がっています!ありがたや。。

industory2016 NukeXとMMD使った簡易的なマッチムーブ。Mariの基礎的な使い方。 from industory on Vimeo.

非常にレアな内容の講演ですね‥!
「Industory」のみならず「関西AECGオフ」もそうなのですが、普段なかなかお目にかかれないツールの実演や、面白い切り口の講演が多くあり、そこが魅力的でもあると思います。

Unreal Engine 4でのリアルタイムセルルック3DCGアニメーションでの映像表現について


関西UE4界のプリンス、Alweiさんの講演です。
こちらも講演動画がアップされています!

industory2016 Unreal Engine 4でのリアルタイムセルルック3DCGアニメーションでの映像表現について from industory on Vimeo.

UE4のシーケンサーとレースミクのモデル&アニメーションを使い、セルルックかつ4K/30fpsのPVを作っていく流れの実演でした。
軽くメモっていたものを添えておきます。

昼のライティング、夜のライティングどちらにも対応している
セルルック動画 GTX960 4K 30fps
講演GeFource840
Matineeでカメラを設定 5つのカメラ
Sequencerを表示ShotsとCameraActorを追加
レンダリングして動画出力可能 Render Movie Setting > Chapchure Movie
簡単に映像を作ることができる
連番で出力もできる PNGとか

アウトプットしていきましょう
下田さんのブログにNPRの詳しく解説がある
おぎまふさんのブログも

ノイズ的トランジションを多用し楽曲とシンクロさせた映像制作の一例


村田裕次さんによるAE実演を挟んだMVのメイキング。
ビートマニアの映像やドラマのタイトルバックなどを手掛けられているそうです。
講演動画はこちら!

industory2016 ノイズ的トランジションを多用し楽曲とシンクロさせた映像制作の一例 from industory on Vimeo.

個人的に最も刺激を受けた講演で、AEのレイヤーの量がすごいことになっていました。
以下、メモったものです。

今回はMV「ココロの質量」のメイキング(かめりあ/TORO缶)
作業的な面に絞ってお話しする

まずは動画素材の作成
C4Dで制作 AEでも作れるが 映像素材がたくさん必要
カメラを10個くらい置いてパターンを稼いでいる
グロー トーンカーブでがっつり絞って重ねていく
トラックトランスフォーム作業を快適に使用
LightLinks Macでしか動かないプラグイン ライトリークを作ってくれる
Particlurで 1フレごとに変わるレンズ円環素材をたくさん配置
ActionEssencial 実写素材 金属が擦れている 火花が散る
Lucks トーンカーブ エッジソフト ビネットのっけている

エフェクトについて
エフェクトだけのコンポ
シェイプレイヤーでチェック柄 チェック用 ガイドレイヤーにしておく
エフェクトのテンプレート
控えめに作っておいて、必要に応じて複数重ねる 時間をずらして
感覚でばばーっとタイムラインに並べている
シェイプレイヤー
音が盛り上がる場所で白や、ノイジーな場所で青(信号なしの意味で)をフラッシュさせる
カレイダ(万華鏡)も
ローテーションでカーブをつけている
エフェクトを沢山のせる
いったんここでプリレンダ、VJソフトを使って動画に加える
キーボードにアサインしてエフェクトをかけて録画、AEに戻す
カットが変わるところにエフェクトを挟んで繋ぎを自然にできる
真っ白に飛ばしてからノイズが入り、切り替わる感じ

さいごに
こんな映像作っちゃダメです
合作 個人制作 ネットだけに公開
フラッシュ激しいので放映できないので 忘れてください
‥というのは冗談

Q エフェクトはどんなものがある?
A データブリッジがのっかっている
  映像が前後にぶれる ドクンドクンと脈打つような
  ブラー シェイプレイヤーを上からスライドさせて一瞬拡大して戻る
  オプティカルフレアのレンズテクスチャを使ったり
  コラップストランスフォームよく使う

Q 溶ける表現をどうやっているか
A ディスプレイスメントフィルタで同じマップを選ぶ
  垂直の項目でエクスプレッションを設定

Q イラストにエフェクトをよくかけるが元の絵が崩れるのが怖い
  どう境界をつけているか?
A 真っ白や真っ黒になってしまわないようには気をつけている
  白飛び・黒潰れにはしない

Q ディスプレイスメントを斜めにすることはできないのか?
A プリコンポして斜めにしてエフェクトかけて戻してやるしかないのでは

Q このプラグインは抑えておいたほうが良いというものは?
A 別段変わったプラグインは使ってない Looksはみんな使っていると思うし‥

イラストの描き終わり、からの仕上げ作業


ニリツさんによるSAI、Photoshopの実演を織り交ぜたイラストメイキング。
フットペダル等の愛用されている道具を持ち込まれての実演がとても興味深かったです。
講演動画はこちら!

industory2016 イラストの描き終わり、からの仕上げ作業 from industory on Vimeo.

以下、メモったものです。

アキバ系萌えイラストレータ
ライトノベルカバー カードイラスト 実用書のカバーなど
イラストを描き終わった後のエフェクトなどの作業について紹介
背景は時間があれば説明

・線画と塗りをなじませるための色調整
・空気間を出すためのライティング
・疑似的なピント、奥行き表現のグラデーションぼかし

使用デバイスについて
ペンタブレット
・PowerMate ブラシツールのサイズ調整 USBでつなげる
・フットペダルスイッチ キャンバスの拡大縮小

SAIとPhotoshopを使って解説

スピードを上げないとお仕事にならないので
見た人を世界観に没入させたい 集客に繋がる 目を引く 滞在時間を長くしてもらう
二次元に入り込みたいと思ってもらうため 三次元を疑似的に表現する
現実世界にあるかどうか

肌の影色(AO的な)の色を肌の色に近づけさせる
極力黒い線は無くしたい
やり過ぎると絵がぼける
光源方向からグラデーションで明るい色を付与 スクリーンで合成

各種色調整と光の調整
フィルタ 逆光でやっている 35mmが好き 色は白
そのままでは強いのでソフトライト、薄めて合成
ディフージョンをかける
レベル補正でブラックポイントを右に寄せてハイコントラストに
スクリーンで合成してぼかしガウスをかける
エフェクトは目に見えなくてよい バレない、気づかない程度が良いと思っている
ぼかし 遠近感(DOF)
反対側から青い反射光(環境光)
周辺減光を入れる 視線を真ん中に集めたいときに効果的 ちょっと強めにかける

グラデーションマップレイヤーを作って 紫~赤~黄色にしてソフトライトで影に合成
ある程度の影の統一感を出してくれる
ソシャゲの仕事だとこれで満足してくれるクライアントさんがいるので良いのかなと

Octane Renderの活用法とフォトリアルの考え方


朝倉涼さんのCinema4DとOctane Renderを使った文房具のCMメイキング。
動画はこちら!

industory2016 Octane Renderの活用法とフォトリアルの考え方 from industory on Vimeo.

以下、メモったものです。

株式会社アカリ CGディレクター
SeventhGraphics個人名義で活動 映像制作やVJなど
会社は広告案件や番組タイトルが多い

ドイツの文具メーカーSTAEDTLER(ステッドラー)
Cinema4Dもドイツ生まれ
イラストはokamaさん
使用ソフトはC4D 全カットオクタンレンダーを使用
AE イラレ Photoshop CrazyBump

◆Octane Renderの良いところ
GPUレンダラーなので一般のものよりはるかに速い
PBRを導入している
ロゴが読めないと修正が入る いくらい綺麗にライティングしてもダメ
リアルタイムに質感がチェックできるプレビューが役に立つ

◆C4D
押し出しした後に結合してピラミッド型の表面を作る
ローレット加工
定規で寸法図って再現
実物と見紛うために
PBRとスペキュラリフレクションについて
フィルムは油膜 ほとんど使わない
他にもGPUレンダラー色々
IRay
Arnord

モーションブラーやビネットは本物のカメラのシミュレートで再現

Octane Render無しで標準でやる場合について
オブジェクトでライトを作る
Mayaと比べてどうなのか? R7Dくらいの頃からC4D使っていた
一つ一つの工程がやりやすい 保存中に落ちない(Mayaをやめたのはそれが理由)
個人単位の制作は間違いなくこれ一つでできる
だけど大規模制作には向いてない

習得が楽 設定が少ない
GPUベースで速い 1フレ平均2分 一番長いところで1フレ10分
VRayは設定項目が多くて大変

欠点もある
グラボの性能いかんによっては落ちる
VRAMのメモリ量をオーバーすると絶対にレンダリングしてくれない

       *       *       *       *

‥という訳で非常にバラエティーに富んだ講演の数々でした。
来年も開催予定だそうで、今からとても楽しみです!

「多人数格闘アクションゲームにおけるAIの設計と実装」レポート

関西ゲーム勉強会 2016夏』に参加してきました!
300人規模の勉強会で驚きました。
年に2回ほど開催していて、この冬にも開催予定だそうです。

その中で、サイバーコネクトツーのシニアプログラマーである猪上哲郎さんの講演「多人数格闘アクションゲームにおけるAIの設計と実装」でメモしたものを記事にしておきたいと思います。

 

前置き


月に一度、社内のプログラマー内で講義を行っている
情報共有を行う試み
扱うテーマは様々で、言語仕様・グラフィック・ローカライズゲームエンジン・AIなど
今日は実際にプロジェクトで使ったAIの実装手法について取り上げる
うまくいった部分もある半面、犠牲にした部分もある

AI実装の背景


◆ジャンル
ジャンルは対戦3D アクションゲーム
敵味方が複数存在
ステージは立体的な構成
アイテムやギミックも配置

◆物量
50を超えるキャラ分のAIを実装 難易度を合わせるとx何倍となる
プロジェクトによっては100を超えることも珍しくない

キャラの性能をカテゴライズしそのカテゴリ分のAIを用意することで対応
例えば遠距離キャラ・近距離キャラなど分類
しかし性能がユニークなものが多く通用しそうになかった

◆AI実装人数
PGひとりという状態
他のものも担当するので専任ではない
50超x難易度

◆見積もり
まともにやるとこなせない量 ⇒ 工夫が必要!

◆PG以外のセクションと作業分担
プログラマで部品を作り、ゲームデザイナーに調整込みで組み立ててもらう
どういったツールにしようか

 

ツールのイメージ


◆どんなツールが必要か

① シンプルなものが必要
 スクリプトのように自由度が高いのは複雑なものも組めてしまうので除外した
 できるだけ簡単に扱えるものがいい

② 当時ノードベースのグラフィカルスクリプトが流行っていた
 ツール作成に時間がかかる 工数で折り合いがつかない
 スクリプト同様自由そう ‥という理由から却下

③ 昔のプロジェクトで「コンボテーブル」というものを使ったことがある
 近距離、中距離、遠距離に応じて行動をいくつか登録しておきランダムに選択
 しかしそれよりもゲームが複雑なので拡張が必要だった

◆拡張要望

① 距離以外の条件も扱えるようにしたい
 残体力、標的との間の障害物の有無なども行動の選択する際の条件にしたい
 より細かく行動ごとに実行条件を付けていきたい
 論理演算も使えるようにする

② 実行可能な行動が複数あったときに乱数以外の要素で偏りを入れたい
 キャラの個性にあった行動を選択させたい
 乱数だけだと同じものがずっと続く恐れがある もっと絶対的な偏りを入れたい
 行動に優先度を持たせておき、複数並んだ場合は優先度が高い法を必ず選ぶ

③ 状況が次々と変わる場合に変化に順応していく
 回復アイテムを取りに行く途中で敵を発見、攻撃的なキャラの場合は
 取りに行くのをやめて敵を攻撃してほしい
 何かを実行中に、より望ましい行動ができるようになったらそちらに繊維する
 望ましさの定義に「優先度」を使用する
 優先度が高いと割り込む

◆拡張要望まとめ

優先度の設定ができる条件付き行動テーブル

※ここで実際の表を表示しつつ説明

名前:コマンド1 優先度:1 ビヘイビア:パワーアップ 条件:パワーアップ可能
頻度:100 リキャスト:0
(‥というように各行動に6つの項目があり、いくつも行動が並ぶ)

補足
・優先度:高いものが上にいくようソート
・条件:行動を行うための条件
・頻度:複数の選択肢が出てきた場合にひとつを選ぶための指標
 (くじ引きのあたりの数)
・リキャスト:行動完了後しばらく行えなくなる時間 単位はフレーム

① 優先度が高く、かつ条件を満たしているものがあるものから実行する
② 一度実行したものはしばらくの間実行できなくなる(リキャスト)
③ 何かを実行中にに、より優先度が高い行動が行えるようになったらキャンセルする
④ 同じ優先度のものが複数候補に挙がった場合は頻度に従って選択する(頻度)

・優先度が高いほうから順に実行可能なものを探す
・同じ条件のものが複数ある場合、頻度に従ってどちらかを選ぶ
 コマンド5は頻度100、コマンド6は頻度80の場合‥
 計算式は 100/(100+80)*100=56%
 コマンド5が選ばれてパートナーに近づくという行動を実行
・キャンセルして割り込みができるのは優先度が高いものだけ
‥これを繰り返す

◆やりたいことを追加
とある条件を満たしたときに、行動内容を「がらっと」変えたい

例:体力が一定割合いかになった後は強烈な技を連発してくる ボスキャラなど
   ⇒ テーブルを複数所持できて、切り替えられるようにする
    (条件追加もできないことはなかったがやると複雑になるので)

例:体力2割以上はテーブルA 2割未満はテーブルB

プログラマーの実装


プログラマは何を実装したのか?

◆PGが作る部品

主に以下の5つ(量産対象は2つ)
① 行動(ビヘイビアクラス) 量産対象
② 条件(コンディションクラス)量産対象
③ 選択アルゴリズムセレクタ)コア
④ コントローラクラス
 体を動かすためのインターフェース
 ツールからは見えてこない部分
⑤ センサークラ
 AI内外の状態を監視し、更新する部分 ツールからは見えてこない部分

◆①行動

1選択肢につき1クラス

◆1選択肢につき1クラスを対応させる目的

・他の選択肢との依存性をなくすため
 どういった流れで行動が開始されても不都合なくつながるように

・行動をきれいに終了させるため
 投擲物を拾って投げる行動の場合、持ったまま行動を終了してしまうと
 投擲物を本来扱わない行動側で投擲物の後始末をしないといけなくなる
 終了時に使い切ってから終わる(キャンセルの場合も同様)

◆②条件

 1選択肢につき1クラス

◆③選択アルゴリズム

ルール通りのアルゴリズムを組むだけなので割愛

◆④コントローラークラス

体を動かすインターフェース
対戦キャラクターゲームの場合操作の方法は大きく二つ ゲームパッドとAI
二つの操作方法を別々の実装にすると片方はできるが片方はできなくなることがある

◆⑤センサークラ

AIの内部状態の更新と外部の把握を行うクラス
最も負荷になる部分なので「負荷対策」を行った
 ⇒ 情報の更新頻度を細かく調整できるようにしている
例えば自分の周りの壁の状況を確認 四方八方にレイを飛ばすのは負荷が高い
1フレ-ムに5個までというような制限をかけて、残りは別のフレームに分散する
負荷の分散をセンサークラスで担っていた

結果


作業分担をした結果

◆目標に対しての成果

 50超のAIを少ないPGでこなすという目標は達成
 五月雨式の量産が行えた
 ゲームデザイナーもすぐに使い方を理解してくれて実装、調整を行えた

◆良かったこと

行動、条件が細かくカプセルかされたことに伴い、不具合の追跡が簡単だった
未完成のキャラも完成している部分だけを先行して作業できた

◆うまくいかなかったこと行動の独立性が高く、複数の講道館のつながりが乏しかった

例:特定の行動を行った後に条件次第で追撃させたい
  行動履歴を条件下することで可能ではあったが、直前の行動を条件として
  続いてやってほしいことを優先度が高いところに配置するしかなく、
  テーブルの見た目的にどうリンクしているかが見えなかった
 ⇒ 解決案:
   行動の後に「サブテーブル」へジャンプ、一時的にそのテーブル内で行動させる
   おおもとのルールを変えることなく適応させられる

例:場同じ条件で複数の行動を登録したい
  条件を複製し、登録したい行動に張り付けていけば可能だったが
  内容を変更したくなった場合にすべてを修正する必要があった
  また、発動条件を持つものは「リキャストを共有」させたかった

まとめ


・作業分担して量産を行える 部具合も追跡しやすい

・タイトルに依存しないので別ジャンルのゲームにも応用が利く

・出来上がったAIの動きとしては反省点も多かった
 複数の行動間のつながりが弱かった
 後から出る要望や試行に対応しにくい

・ツールorプログラム?
 適材適所
 用途に合わせて使い分けるのが良い
 ボスはユニークな制御が多い
 例えば、印象的なボスはプログラムで作り、ザコはツールで量産など

最後に


弊社のAI実装は、各プロジェクト内の担当たちが試行錯誤して実装する形をとっており、研究・リサーチされた成果が各プロジェクトとに還元されるということはできていないので‥
このような機会に交流、勉強したい

 

Q&A


◆Q.ツール作成の工数は?

 A.ツール作成コストは1カ月くらい
  ツールプログラマに任せたので思ったより少ない工数

◆Q.AIの難易度に関して難易度別への対応は個別にテーブルを用意したのか

 A.そうなる
  1つの難易度ごとにファイルが分かれている 完全に別のテーブルで制御

「VR×ロボ×美少女! UE4におけるVR向けの絵作りと最適化」レポート

UNREAL FEST OSAKA 2016』のメモ公開2つめ。

ヒストリアさんによる、UE4で制作されたVRコンテンツ「アーガイルシフト」の開発事例。

はじめに


原龍さん エンジニア / TechResearch 元家庭用・スマフォ向けゲーム開発
原伸吾さん アーティスト / TA 元映像業界
ハラハラコンビ

◆アーガイルシフトについて

ダイバーシティ東京プラザ VR ZONE
ヒストリアは開発協力
アイネというキャラクターのナビゲーション
テストパイロットとして有人兵器ルシファーに搭乗
「サマーレッスン」の原田さん監修

バンダイナムコ
 クオリティコントロール、アウトゲーム、実機の揺れやサウンドアセットの作成

SOLA DIGITAL ARTS
 Matineeを使った全体的な演出を作成
 キャラクター、背景などのアセット作成
 荒牧伸志監督

・ヒストリア
 UE4内のシェーダー、ライティング、ポストプロセス、エフェクト作成
 インタラクティブパートのプログラミング、サウンドの組み込み
 最適化

ワークフローの中心はUE4のMatinee(マチネ)
シーケンサーは現状は懸念が大きかったのでMatineeを選択
SOLAさんにMatineeを触ってもらう

VRでの没入感を高めるために ~演出強化~


◆背景はPBRで描画しつつ、キャラクターはアニメ的なシェーディングで描画したい!

疑似ライティングあり/なし(比較画像)
光源の角度と法線から疑似的に光の影響を表現
か0分アセットを用いて光源の角度や光の色を時間経過により変動させる仕組みづくり

キャラクターマテリアル
肌や髪は標準のライティングはしていない ライトベクトルから色を決めている
服や靴などは標準の物理ベースシェーディングを使用
最終的にハイブリッドな構成になった
全てUnlitにしてみたりすべてリアルにしてみたい色んな検証を行った

◆キャラクターがそこに存在している感じにしたい
◆プレイヤーを目で追うようにしたい

目線追従が無いとただそこにいるだけになり認識している感じが出ない
これが入ると没入感に繋がる
Two Borne IKを使った Look at Tableを利用
ただし常時こちらを見ているというのは不自然
演出に合わせてブレンド率を切り替えることにより自然な目線を実現

◆画面中央のレティクル(照準)に動きが無く視認性が悪くて機能していない
レティクルの追従にわずかなディレイを入れた 画面の真ん中にずっといる訳ではない
これにより視認性がぐっと上がった

◆自機の前進速度が速すぎて撃った弾がまっすぐ飛んでいかないように見える
 ⇒ うまく敵に当てることができない!
演出の都合上とても速く敵も自機も動く
かなりの距離を移動してしまう 弾が曲がって見える 弾が当たらない
計測してみたら時速400kmになっていた
位置補正を入れることで操作感が向上
ロックオンと重なったものは気づかない程度にホーミングを入れた
Projectile Movemnt Componentを使用
物理的に正しい挙動ではなくとも、見た目や操作感を重視

◆飛んでくるミサイルに対して頭を左右に動かすという操作が難しい
 だが単純にミサイルの速度を下げると危機感が無い

ミサイルが近づいた際にスローモーションを入れた
視界全体の色も変えて危険を知らせ、回避を促す(画面がやや赤くなる)
Set Global Time Dirationノードを使用
UE4では簡単にゲーム全体の時間経過速度を変更可能

良い演出を余すことなく伝える ~最適化~


ついに演出がFIX! しかし全体的に40fps Viveでは90fpsが理想
しかもVRではさらに2パスある
最適化して改善を目指す
マスターアップ直前で最適化作業に取り掛かれる状況になった
今回は演出にとことんこだわりたい案件だったのでギリギリのスケジューリングだった
それまでにどこを直そうという目算は立てていた 急ピッチで進めた

◆最適化に対しての方針

1「可能な限り、最適化前の演出や描画品質を落とさない」
最適化で描画品質を下げたり要素を削ることでコンテンツのクオリティを下げるのは本末転倒

2「最高のVR体験のために90fpsは厳守」
 TimeWorkという機能でフレーム間が補間される機能がViveにある
 しかし実際に体験すると一瞬でも90FPSを下回ると違和感があった
 全てのシーン、カメラ位置で90fpsを知ら回らないようにする

◆Stat Unitでボトルネックを調査

Gameスレッド(CPU)がボトルネック
GPUも同じくらいだったがGameスレッドを待つためにストールしているだけなので実際はそこまでかかっていない

◆CPUプロファイラ

C++、ブループリントともに細かく処理時間を確認することが可能

「突然ですが、ここで問題です」
どちらが軽いでしょうか? Make Array 純粋関数かそうでないか
純粋関数とは?
実行ピンを繋ぐ必要がない関数 いつでも切り替えられる
ノードの見た目がとてもすっきりする

それぞれ一万回実行したところ、非純粋関数の方が早くなった
300msと400ms 同じ処理にも関わらず大きな差が!
こちらに関しては二つの要因が含まれている

(ForEachLoopマクロの中身を出しながら‥)
① ループ回数判定のための評価(実行)
② ループ実行の引数のための評価(実行)
一度のループのために二回以上のArrayの評価が入ってしまう
10回のループのために21回の評価が入る
入力に渡された配列をキャッシュせずループするたびに最新のArrayを取得する
ループ実行中に配列の中身やサイズを変更すると思わぬバグを生む可能性がある

純粋関数の特徴
実行ピンにつながなくて良いため見た目がすっきりする
 バグを未然に防ぎやすい、作用内容を把握しやすい
繋がれている非純粋ノードが実装されるときに実行される
先ほどの例で使用したMakeArrayを非純粋関数に置き換えたら?
純粋じゃない関数はもう一度実行ピンを通過するまでキャッシュを残す

このため純粋関数はgetterのような単純な処理に限定すべき
何度も実行されると問題があるような処理は避ける

こういった処理の最適化やロジックの見直し、不要処理の削除を行った結果
エディタ上でGameスレッドが11ms以下になった!
Standalone時はエディタの処理が無くなり7ms
GC/ガベージコレクションが入っても問題なし)
デフォルト設定だと60fpsごとにGC起こる CPU負荷が上がる

◆ほとんど効果がなかった負荷対策

ベクトル長の比較時にLengthSquaredを使用する
10万回実行してもほとんど差が見られなかった
やっておくにこしたことは無い程度 ノード複雑化するくらいならやる必要なし
引数を参照にする事によりコピーコストの削減
値渡しとの一万回実行速度比較をしてもほぼ変わらず

ちなみにこれらはBPの話 C++では違ってくるかもなのでそちらは計測してみて
CPUに関しては約3日かけて最適化 これで50fpsになった

GPUプロファイラ

スナップショットをとって瞬間的なGPU処理時間を出力できるので対策の足がかりになる
Shader Complexity(シェーダー複雑度)の表示
シェーダー命令数を視覚化 単純に負荷に直結するものではない
半透明オブジェクトの重なりなど大まかなボトルネックの目安になる

◆具体的な最適化内

1「距離とカメラが向いている方向を利用した自前の軽量化リング」

半谷のアクターは表示やアニメーションの計算などを切る!
標準は各アセットに設定したボリュームでオクージョンカリングする
アセットにそこまで手を入れてなかった・表示だけじゃなくてもっと切りたいものもあったので自前実装
カメラからの距離、角度をプロパティで設定できるようにしてある
Z軸方向の回転角 アクターからカメラまでのベクトルを使って求めている
そのままアタッチするだけで使える

2「プリレンダ向けメッシュのリダクション」

とても効果があった
アセットの最適化の話になる
主なスケルタルメッシュの頂点数のリダクション
・輸送機 80万超x6
・味方機 35万超x11
・敵気 20万超x沢山
 とてもヘビー級‥
まずこれを何とかしようとしてリダクション
味方機は35万 ⇒ 15万に(約6割減)ビューポートで見た目上ほとんど変わらない
輸送機は80万 ⇒ 8万に
敵機は20万 ⇒ 6万に
にぎやかしとして遠くに多数配置した味方機のアクターはビルボードに変更
これで1シーンで数百万ポリゴンの削減
しかも言わないと誰も気づかなかった
余談だが一昨日スライドを佐々木代表に見てもらったら驚かれて良いリアクションをもらった

アニメションの計算負荷を抑える
アニメーションが無いメッシュはスタティックメッシュに変更
アニメーションするメッシュも必要部分だけスケルタルにしてスタティックと併用
演出上、絶対に見えない部分のメッシュは削除

3「マテリアルのブレンドモード最適化」

UE4はディファードレンダリング
半透明オブジェクトとは描画パスの都合上、相性が悪い

不必要に半透明マテリアルとして設定されているものはOpaque、Maskedに変えている
大きく効果はあったが気の重なりが多くMaskでも重い!
木は不透明のものにするとfpsの落ち込みが無くなったので不透明にできるか検討
形状で木を表現 ポリゴン数は増えてしまう
フォリッジはインスタンスドスタティックメッシュなので負荷が増えなかった

4「ダイナミックシャドウの調整」

キャストシャドウするアクターの数を抑えた
思っていた以上に有効だった
近くで目立つアクターのみON 遠くのアクターはOFF
負荷と見た目を見ながら調整していった

地道にやった結果ついに90fps達成!
思った以上の最適化効果があったので描画解像度を110パーセントに上げた
ある特定の演出の時にHUDが重なることがありそれだけはどうしようもなかった
こちらは良い演出だったので削れなかった

全てBPで実装した
プロジェクトの都合上ではあったがC++を使わずとも90fps実現可能という良い例になった
C++ならもっと最適化できたかも知れないが、BPでもいけるという指標になった

VR開発のまとめ


作ってみないと分からないことが多い
演出の確認をする場合はHMDでの確認を徹底する
視差による相性の悪さから、使えなかった表現もある
 キャラの輪郭線を描いていない 左右でレンダリングするのでブレて見える
 ブルームを抑えたり 片目だけ画面内に入っていると違和感が出るので
演出も最適化も妥協すると途端に没入感を失う

Instanced Stereo RenderngがUE4.11から入る
両画面を同時にレンダリングすることによる速度改善 1パスにまとめられる
CPU GPUともに処理コスト削減
一度検討してみると良いかも知れない


togetterのまとめ。こなべさん毎回ありがとうございます!

「Technical Art of STREET FIGHTER V」レポート

UNREAL FEST OSAKA 2016』に参加してきました!
非常に充実した講演内容でした。

講演の中から、資料等が公開されないっぽい(?)2つのセッションについてメモしたものを記事にしておきたいと思います。
まずはストVの講演から。

Technical Art of STREET FIGHTER V


講演者:亀井敏征さん
ゲーム業界16年 TA/ArtDirector

◆はじめに

TAとUE4はとても相性が良い
3年から4年いかないくらいの期間、業務で使っている
目標・イメージからゲームを開発する ‥がゲームに落とし込めないことがよくある
仕様が決定していなくてもやもやしていることが沢山ある
目標となるイメージ ⇒ もやもや ⇒ インゲームのイメージ
このもやもやを取り払うことができた

もやもやを取り除くのがTAの役割り
実現手法の提案 こういう技術がある シェーダーはこう組んだ方が良い
アセットのパイプラインの提案など 具体的に提示

UE4はTAだけで問題解決できたり実現手法の提示ができる TAと相性が良い


アジェンダ 3部構成

TAに興味あるアーティスト向け

1「目標」
 高い視認性
 個性的な絵作り

2「実現手段」
 キャラ
 背景
 カメラ
 ライティング
 ポストエフェクト

3「まとめ」

1「目標」


2つのキーワード

「高い視認性」
ハッキリしたシルエット 筋肉もりもり
大げさな表情 大笑い、すごく痛そう 意図的にやっている

「個性的な画作り」
速いゲームスピードの中でいかに情報を分かりやすくユーザーに与えるか
画面写真を見ただけで「あ、ストVの絵作りや」と思ってもらえるようにする
差別化 独自の絵作り


◆高い視認性

キャラクター ⇒ 状況をフィードバックするため記号として存在する
最速の攻撃 3/60フレームでもわかるシルエット ちょっとくらい大げさな方が良い
ゲームから状況のフィードバック ⇒ 脳みそで判断してコントローラーで入力 ⇒ ゲームに反映‥の繰り返し
格闘ゲームのビジュアルは数フレームでの攻防の分かりやすさ
高い視認性は格闘ゲームとしてはマスト 必須条件 非常に大事

◆個性的な絵作り

世界中のフォトリアルな絵作りのタイトルとは差別化する 埋もれないためのNPR
そこについて一瞬でチーム内で納得した
NPR選択の理由はもう一つ
タイトルの系譜 歴代のアート(あきまんさん西村キヌさんなど)を大事にする

 

2「UE4を使っての実現手法」


UE4の使用バージョンは4.7.6

◆キャラクター

キャラアートについて NPR 油彩+リッチなライティング
60fpsでも落とし込めるもの

ライトベクトルとポリゴン法線の内積 DotProduct 一般的な手法 ‥に一工夫
この一工夫で独自の絵作りになる
境界を分けて二値化する
UE4はディファードなのでライトベクトル使っていない
BP使って疑似的にライトベクトルを割り出してマテリアルで利用する方法
うまくいったが それぞれのライトからベクトルを出すと嘘だと分かってしまう
ライトプローブの要素も考えると破たんする
これはお蔵入りになった

結論:マテリアルでは複雑なことをしない

(以下は実際にUE4上で中国ステージを表示しながら解説)
switchパラメータで機能を切り替えているだけ
ノーマルもそのまま繋がっているだけ
アルファマスク、スペキュラもそのまま
フェードはキャラの点滅などに使う
いくつかカラーを設定できる キャラのカラーカスタマイズができるようにしている 4色 色の乗算で設定
カラーマスクテクスチャで領域を分けている
シンプル 何か特別なことはやっていない

NPRについて 絵画やイラストを見直してみて要素を切り出した
1 タッチ
2 エッジ・色境界の協調
3 色・彩度のコントロール

筆のタッチ
ノーマルマップへのタッチ追加
ライトの当たっているところ、当たっていないところにタッチが出にくい
でこぼこしているところにタッチが出やすい
実はスト4でもやっていた
ノーマルマップに対してPhotoshopのちりめんじわをかけていた
すると陰影にタッチが乗る
実は問題が1つある
スト4 ⇒ 5でテクスチャサイズが大きくなったことでフィルタが乗らなくなり解決が必要に
ノーマルマップをTangent SpaceからObject Spaceに一旦変換
するとグラデーションが出るのでフィルタがかかりやすくなる
その後さらにTangentに戻してUE4で確認
油彩や水彩フィルタはサードパーティ製「SnapArt4」を導入

豊富なフィルタと自由度 キャンペーン中だと安い 1万円以下
細かいものから粗いものまでいくつかのパターンを用意
それを体の部位によって使い分けている
 一番細かいのは顔だけ
 ちょっと粗いのは体
 さらに粗いのは服
 一番粗いのはアクセサリ系

合成ルールは絵的に見えるのを重視 イラスト 顔は密度が高く繊細
顔から離れるほど粗く描くことが多い 視線誘導している
リュウの顔や腕 見せたい場所が細かい
ノーマルもそうした 顔に視線誘導させるのも狙っている

◆背景(ステージ)

ドット絵時代の絵作りを参考にしている
一番分かりやすいのはストゼロの背景 奥行きがあるように見せるために色の管理をしていた
キャラはすごく明るい 彩度高い 背景は色を落として雰囲気重視 キャラが分かりやすい
(キャラと背景のヒストグラムを表示して解説)
背景は色のレンジが狭い 背景は真っ黒真っ白は全く使っていない
ドット時代は厳密にルール化されていた
副産物としてキャラの周りの彩度が落ちることで、対比でさらにキャラの彩度が上がって見える
ヒストグラム調整のためUE4のカラーグレーディングを改良
Multi Color Grading ON
OFFだとライティング的には正しいが数フレームを争う格闘ゲームでは視認性が低い
Lookup Table(LUT)
ステージの前後左右で4つのLUTを使い分けが可能
ステージ左右での屋内、屋外の違いにも対応可能
UE4でもその様子を紹介
マテリアルの紹介 近景用のLUTブレンドを3つまでブレンド
遠景用も3つまでブレンド それをさらにLerpでブレンド
実はSwitchでLUT3つ使うかどうか切り替えられる
ただしフルで使うと若干処理負荷が上がる
0.2msなどだが60fpsには大きいので背景ごとに使うか選べる

◆カメラ(画角)

キャラクターが画面端に立つと画角の影響で歪んで見える
そうすると見た目とコリジョンが一致せず分かりにくくなり、遊びで言えば迷い易くなる
画角に合わせてキャラの頂点を疑似的に画角と逆に補正を入れている
Fix Projection 最大限までかけると画角の影響が消える 0~1の範囲で指定
0は補正無し 1だと立体感が無くなる
立体感が完全に無くなると3Dのゲームでは勿体ない
結果、製品版では0.5でいこうとなった
立体感とコリジョンの分かりやすさの両立ができた
Fix Projectionマテリアルを設定したキャラだけに影響がある
キャラを真上から見ると四角が台形になるイメージ 並行投影みたいに見える
当初マテリアルファンクションでアーティストが模索
台形補正のみのマテリアルファンクション
当たりが見やすくなるというのが試してすぐ分かったのでプログラマに渡して実装してもらった

◆エッジの強調

RGBの差が大きいところに色を載せる「Edge Filter」
全く同じ絵で左右に任意のピクセルをズラしたものを二枚
Aは n pixelズラしてBは -n pixelズラしたもの
Bは-1乗算して反転 AとBを加算すると差分が取れる つまり輪郭検出ができる
左右にズラしたものだけでなく上下にズラしたものも用意 これをさらに加算する
出来上がった絵に対して任意のカラーを乗算(ここでは赤くした)
結果にOneMinusをかけて反転(緑になる)
それを元の絵(シーン)に対して減算することで赤いエッジが載る
「SS Subtract」
エッジ専用のマテリアル(実際にマテリアルの中を見せながら解説)
かなりシンプル 最後のDotProductは線をはっきりさせるためにかけている
最後にシーンバッファに対してsubtractで載せる
ぼかしを入れられるようにもなっている
色のにじみやかすれも表現できる
単に輪郭を取得したいだけでなくノーマルのタッチと合わせてさらに絵的な表現を目指す意味合いがある

◆ライティング

間接光 色彩豊かな絵的な表現になる イラストを例に
・背景ライト(Sky Light / Stati Light)
・キャラライト(Stationary Light)
 キャラの立体感を出す
 メインとフィル 胥吏が許せばバウンスとリムを入れる 基本的には2、3灯
・間接ライト(Indirect Lighting Cachr/Enlighten)
 自動で生成をそのまま利用 調整はすべてEnlightenで行っている

ライティングは非常に重要な要素になっている
絵的にかっこ良い、色鮮やかになるようライトを配置
ステージの場所場所でどうするかライティングアーティストとかなり密に連携して行った
リアルタイムGIのミドルウェア「Enlighten」の導入は成功
アーティストが思うままに意図的な色を関節光として当てたい‥
ただしその都度ライトビルドすることは極力さけたい
Enlightenでは「プリコンピュート」という機能を行っておけばある程度触り放題になる
Enlighten Onlyのチェックを入れることで確認できる
中国ステージはEnlighten Onlyで2灯使っている(実際に表示しながら解説)
間接光をその場で自由に変えつつチェックできる Enlightenの強み
プローブの表示も実演しつつ解説

3「まとめ」


UE4では思い描くビジュアルを実現するハードルは下がった
常識外れな使い方で「考えてなかったわ」とプログラマから言われるも実現できた
アーティストが無茶苦茶しても受け入れてもらえる アーティストにとっては良いこと
ウェブに情報が沢山あるのも良い 自社エンジンはぐぐっても何も出てこない
もやもやを取り払うのにとても良かった
UE4に改善して欲しいところも山のようにある このあたりはEpicさんに聞いてもらいたいと思う

質疑応答

Q:Fix Projectionは頂点の位置をズラすとコリジョンともズレると思うがそこはプログラマが良い感じに?
A:格闘ゲームは特殊でそもそもコリジョンとキャラモデルは結びついてない
 格闘ゲームのアタリは2Dで持つのでズレは問題にならない

Q:カラーグレーディングはどのレンダリングのタイミングで行われる?
A:マテリアルの設定はBefore Translucency
 LDRの時にやってしまうので調整が難しい
 そこはPhotoshopのアクションを組むことで最終結果に近くなるものを用意
 実機で確認してダメだったらPhotoshopで調整する

Q:BPかコードかの判断は?
A:FixProjectionはコードで実装
 判断理由としてはUE4がまだ若いバージョンの頃だったため
 マテリアルファンクションでやるとなぜか処理が重くなった
 そこでプログラマがコードで試しに組んでもらって採用に

Q:UE4を使ってネックになった部分は?
A:いっぱいあるが一つに絞れない
 言うなれば物理が弱い その辺はかなり試行錯誤した印象はある
 物理はスト4の方が綺麗
 骨のリミットが決められるがUE4はぶっとばす コリジョン置いているのにめり込む
 ディンプスさんの自社エンジンでは軽くて性能の良い物理エンジンだった

Q:エフェクトの液体表現はどんな工夫が?
A:流体計算したメッシュをMaya上で骨に入れて、Nullアニメーションに追従させている

 

ストVのエフェクトについては「CGWORLD 2016年 6月号」で特集されてます!必見です!

togetterでのまとめ。こなべさん毎回ありがとうございます!

UE4 Osaka Meetup! レポート

レポートというよりも議事録ですが。。

 

GDCアップデート情報 by ロブさん


まずはEpicJapanのロブ(Rob Gray)さんの自己紹介
日本のサポートチームは4人 主にライセンシーのサポートを行っている

今日はGDCのUE4に関する情報の発表について動画を交えながら紹介
GDC Sizzle Reel」の紹介

日本のタイトルもたくさんあって喜ばしい
UE4は150万ユーザー

「DevGrants(デヴグランツ)」70万ドル配って開発をサポートする試み

「VR Editor」VR内でゲームのエディットが可能

「Photoreal Live Chapture Performance」アクターの演技をリアルタイムで反映

「Sequencer」シネマティックカットシーンツール 4.11で利用可能 4.12で機能追加
 ビデオ編集のようなワークフロー ParagonのトレーラーはSequencerで作成された
 UE4大阪で詳しく解説予定
 MatineeはUE3のままあまり変わっていなかった

「Bullet Train」VRコンテンツ

NASA」トレーニングで活用 スペースシャトルとか UE4とVRの併用

TOYOTA」車のPRに 一週間でプロトタイプ
マクラーレン」頑張っても頑張っても買えない車 バーチャルで見るしかない

スターウォーズのテーマパーク」PRコンテンツ ディズニーとルーカスフィルム

 

UE4ディスカッション


司会:alweiさん
参加者:ロブさん おかずさん com04さん ずしさん とあるグラフィッカーさん

今回はディスカッション用のGoogleスプレッドシートが用意されました。
勉強会中に参加者が自由に記入することができ、それを議題に含めたりしていました。

これはガタケさん発案で自分のクローズドな勉強会でも行っている方法で、勉強会しながらみんなで議事録を取っていけたり感想を書けたりして非常に良いのでオススメです!

という訳で以下、ざっくりとした議事録です。発言者の敬称を略しています。
こうして記事に上げてみると非常に膨大なものになりました。
ロブさんの裏話も挟まれたりと、大変面白い内容でした。

 

■ 1.コミュニティについて

日本では「ぷちコン」が活発に行われている(alwei)

最初の開催から確か1年くらいしか経ってないと思うが、みんなすごく面白いものを作っているし、Epic内でもクオリティにびっくりしている(ロブ)
勉強会をよくやっているのもすごい

公式・非公式ともにUE4のイベントが増えてきた(おかず)

茄子さんの背景勉強会が最初の参加 勉強会の質も高い UE4の勉強会は東京に負けてない(ずしさん)
逆にHoudiniが情報が少なくて習得に苦労している
なかなかコミュニティがなくて、あるとないとで習得速度も10倍くらい違うのでは

情報を発信している人も多いが、その方々が次々と本を出している 発刊ペースも早くて驚く(とある)

アメリカはあまり本を出していない 本を出すのは日本の文化(ロブ)
それから日本はFacebookの「UE4ユーザー助け合い所」が活用されているが、公式のフォーラムが全然活用されていない
アメリカだとメーリングリストでサポートしていたりする
SQEXに在籍していた時はユーザー側の立場でUnreal Engineの文化を体験した
フォーラムではEpicのサポートチームよりも早く他社の人が回答していたり
開発者がシェーダーをアップしていたり、助け合いが行われている文化が良いなと思った

コミュニティは助け合い 学習やモチベーションの持続面で重要 継続してやっていきたい(alwei)


■ 2.VRについて

(まず最近のVRタイトルをまとめた動画を流して‥)
GDCではVRがメインと言っていいほどの印象だった(alwei)

ゲームだけではない 「OptiTrack」が印象的 バスケットボールにマーカー仕込んで投げたり(おかず)

ここのところではVR Editorが一番でかいトピックだった UnityやCryEngineも公開している
実際に試してみた レーザーハイドラというすでにあるトラッキングデバイスを利用
結構良かった
ゲーム空間でものを配置するのが新鮮で面白かった
VR Editor上でBPを変更してチェックしたりもできて良い
まずは企画やアーティストに使ってみて欲しい

メニュー系がまだ使いづらい(ロブ)
ものを配置したりはすごい自然だった ジェスチャーで拡大したりとか
宣伝になっちゃうが‥
VRで面白いのはまだまだ新しいから 何がうまくいくかは分かっていない
みんなで学んでいる最中
一年前のほとんどのコンテンツがゲロ吐きそうなものだった
実験的なプロジェクトが沢山ある
サマーレッスンとかBulletTrainとか ToyBoxは二人で遊ぶ
プロトタイプにUE4は強い メリット高いと思う

VR Editorでテキスト入力はどうするのか?(alwei)
ボイスでやる機能があるらしいがそれでやるのか?

どうするんだろうね?(ロブ)
バーチャルキーボードはだるい

Viveにもデフォルトでキーボードがある コントローラーからレイを飛ばすタイプとViveのタッチパッドのタイプと選択できるが後者は使いづらい(おかず)

値段が高いという意見があるがみなさんどうか?(alwei)
※挙手により高いというイメージの人は多い様子
興味あるという人は?
※多くの人が挙手していた
僕たちが頑張ってユーザーに遊びたいと思ってもらえるコンテンツを作らないと!

シミュレータとかの方が最初の実績になっていくのでは(ロブ)

まだまだ体験したことがない人が多いのでは(おかず)
今後イベントが増えて色んな人が体験してゆけると良いなと思う

今後競合のVR製品が淘汰されていくことに不安を抱える開発者もいると思う(ロブ)
でもUE4は製品間のフォローアップをエンジン側で行える コントローラーの差とかも吸収できる

GearVRの開発は?(alwei)

困る部分はほとんどなかった 普通のAndroid開発と変わらない(おかず)
チェックに実機がいるというのが面倒 Oculusと同じような感じで作れば移植はできる

自分も触ったりはしている 研究は常にやっている 学生に見せたり
今も何か作ろうかなと思っている(alwei)

開発をしていたりはする(com04)
SDKの差分を見ていかないといけないのがUE4が対応してくれていて楽
VRで表示するのが面倒とよく言われているがUE4はノード一個・ボタン一個でできる

4.11 NVIDIAの「VRWorks
【佐藤カフジのVR GAMING TODAY!】VRパフォーマンスを大幅に引き上げるGPU技術<br>NVIDIA「GameWorks VR」とは? - GAME Watch

二つの画面を同時にレンダリング 速くなるらしい(alwei)
インスタンスステレオレンダリング
エンジン側にはどんどん最適化が入っている 最適化されていくのは間違いない

SteamがUnityに渡した「Fixed Foveated Rendering」がUE4に欲しい(おかず)

「Bullet Train」のGDCのセッションが印象的だった(alwei)

映り込みを逆さにしたモデルを置いてフェイクでやっていたり(ロブ)
影をフェイクにしたりとか 古い技術を活用したトリッキーなことをしていたりしていて90fps出たりしていた
まだ英語情報しかないが、そのあたりを日本のみんなにシェアできるかも


■ 3.日本語環境について

日本では9割が日本語UI環境で使われているらしい(alwei)
気になる点はある カタカナの翻訳が雑に感じる 配列をアレイと書いていたり
みなさんはどうか?

翻訳者が何人かいて 他のスタッフを交えてミーティングしたり うちでも喧嘩になっていたり(ロブ)
他のソフト(MayaとかPhotoshopとか)を見たりするが、みんな表記がバラバラで難しい問題
使っている人がどんどんフィードバックしてくれるとやりやすい

今はTwitterかフォーラムしかないが、フィードバックしやすい環境が欲しい(alwei)

考えます!その通りだと思う 今井君と相談している(ロブ)

今はポップアップのヘルプの日本語化が進んでいてめちゃくちゃありがたい(ずし)
以前は英語だったが今はほぼ日本語で使っている
バージョンアップでコリジョンのプロパティがなくなっていたりして、そういうのは困った

不思議 なぜ起こるのか原因が分かっていない(ロブ)
トゥルーステップ(?) 翻訳者に伝えておく すごい苦労していると思う
エンジニア側の文言では分かりにくい場合がある 意見が欲しい
関数名を訳せないことがある すごく悩むところ
BPのリストが英語やカタカナが入り混じっているのがすごく気になる
プログラマが英語ベースなので日本語に訳すとコミュニケーション時に混乱したりする

マテリアルのコメントが日本語で入力できる場所とできない場所があるので修正して欲しい(とある)

ドキュメントの日本語化のスピードが速い(おかず)

現状では気付いた点はぜひフォーラムで報告してください(alwei)


■ 4.こんな機能が欲しい

フォーラムなどどこかにフォードバックしてくれると嬉しい(ロブ)
日本でみんなが欲しがる機能がある 例えばスケールアニメーション 日本や韓国で多い
沢山要望があれば本社にプッシュして入れてもらうことができる
アメリカだとあまり使われないので優先度が低かった
欲しいものがある場合はどんどん言ってください

セルルックとかNPRシェーダー かなりプッシュしているが採用されない(alwei)

キーコンフィグが欲しい 今月マーケットプレイスで出てきた(com04)
DirectInputに対応して欲しい ストVでも話題になった
列挙体にコメントが書けない Enumration 初期値だけ設定できて日本語書けない

グラデーションを作成するツールがマテリアルエディタにあると嬉しい(ずし)
いわゆるPhotoshopやグラフィックツールでよくあるグラデーションランプ

配列のソートが、できればC#みたいな感じで欲しい(おかず)
Print Stringsで文字を出す VRだと全く見えない
コンソールコマンドはVR対応されているが普通のPrintは画面左上に出る
なんとか左上を目で見るしかない

コンテンツブラザのアセットに内容説明コメントを付与できたら便利(とある)
これは何のマテリアルなのかとか、何のパーティクルなのかとか

BPならコメントを入れることができる(ロブ)

他には、サムネイルの画像を自由に指定できると嬉しい 特にマテリアル(とある)
歪み用など透明なマテリアルはサムネイルに何も表示されなかったりする

レベルを開かずにレベルBPをいじりたい 巨大なものを開くのにすごい時間かかる(会場の方)

サブレベルならできるが直接何もなしにいじるのはできないかも(おかず)

できなかったと思う(alwei)

モバイル用に出力すると結構ファイルサイズが大きいので小さくならないか?(会場の方)

iOSなら50MBになったりする(alwei)

50MB だと大きい‥(会場の方)

下げるための方法はある UDNに書かれているやり方がAnswerHubに転載されている(alwei)
100MB以下に抑える方法ならある

シェーダーコンパイルGPUでできないか? CPUの性能が低いので‥(会場の方)

CPUのコア数を増やすのが良い お金で解決が一番早いかも
GPUでのコンパイルは技術的には難しいと思う(alwei)


■ 5.映像業界での活用について

建築とか車とかNASAとかGDCでも色々な活用がされている(alwei)
最近はゲーム業界よりも映像業界で使いたいという声が多い
Sequencerが明らかに映像業界を意識している印象

UE4はアメリカだと映像によく使われている 増えている
静止画のために使うこともある プレビズで使ったりもしている(ロブ)
スタートレック」の映画で使われていたり 2~3年前? 本社でもプッシュしている
VRとかゲームとか映像が色々と重なってきている

日本では「デスノート」が唯一、映像での商業での採用例(alwei)
あとマーザさんが試験的に映像を作ったり、東映さんが使える人を募集していたり

「ヘンリー」Oculus ハリネズミのVR+映像作品 元ピクサーの人?(おかず)

パスごとにレンダリングができるようになった G-Bufferを全て出力したりできるのか?(ずし)

あまり触ってないのでそのあたりは分からない(ロブ)
良い感じの印象
UMGとか触っているならシーケンサーの機能が部分的に入っている
ブログでGDCのレポート シーケンサー紹介の動画があって見ると面白い
動画見た感じすごく使いやすい 映像の人たちのフィードバックが多い

4.11と4.12でGUIも機能もかなり進化した(alwei)
ビューポートを二分割して最終的なカメラと編集用のカメラを表示できるのがとても良い


■ 6.他エンジンとの比較について

GDC情報を見て思ったのはVR EditorをEpicが発表したらUnityとCryEngineの追随があったりが面白い(alwei)
今はUE4が先を行っているのではないかと思う
おかずさんがUnityに詳しいので色々話が聞けそう

どちらも物理ベースで中身もレンダリング手法もUE4と同じだとは思うが(おかず)
ノードベースのエフェクトツールが入ったりなどで強みがあるのでは
UE4を触り始めた時にはすごくとっつきやすかった
Unityもアセットストアで買えばUE4のような機能が使えたりする

UE4の学習はどうしたか?(alwei)

作品を作ってみるのが一番良い(おかず)
ぷちこんとか ゲームジャムとか 締め切り駆動型開発なら作品が完成するので

今は”三種の神器”(UE4の書籍)があるので読んでおいたら(おかず・ずし)

StingrayとCryEngine5を触りはした(com04)
CryEngineにはFlowGraphというものがあった
整数型のOutputがあるがその二つのエンジンには無かった
UE4のBPは良くできている 検索性も高い

Stingrayを触ってみたがBPと比べるとノードが出しにくい、繋ぎにくい(alwei)
同じノードベースでなぜこんなに違うのか
BPは使いやすい、検索しやすい、ノードを繋ぎやすい
今後まだまだ進化するのか?

常に改善しているので良くなっていくと思う(ロブ)
UE3のKismetも良かったが、今BPと比べるとすごく進化した
大きなチームでみんなで作業する面でもBPは適している

StingrayだとMaya上でStingrayと同じシェーダーが使えるプラグインがあるのが強み(com04)
つまりMaya上でStingrayと同じビジュアルにできる
Maya上でオブジェクトを設置して反映できる アーティスト的に強みなのでは

UE4を初めて触るとXYZの軸が違うのに戸惑う そこは統一されていって欲しい(とある)
Niagaraが登場した後にCascadeが残るのか、Niagaraがどこまでできるのかが気になる
BISHAMONと比べるとUE4では日本らしい複雑なエフェクトが作りにくい

Sequencerももっと早くリリースしたかったが中途半端な状態で出さないために今になった(ロブ)
Niagaraもそんな感じなので、もうしばらく待って欲しい
それから「Unity引越ガイド」もぜひ見てみてください
ZアップYアップ ニックに何でZアップなのか聞いたことがあるが、結構適当だったみたい
色々なところに影響が出るので直すのは難しい このままになると思う

Pivot Painterとか3dsmax向けのプラグインのサポートが多い(ずし)
Zアップもそうだけど、3dsmaxが使われていたのが理由?

海外は3dsmaxが多かった 今はEpicはMayaになってきている(ロブ)
「Fortnite」建物を作っていくシステムがある システムを作った人が3dsmaxユーザー
作った人が趣味で作ったような感じなのでMayaへの移植は難しいかも‥

そう言えばMayaに移植している人をフォーラム?で見かけた(ずし)

MayaのオートリギングツールのLT版が欲しい(alwei)


■ 7.UE4オススメ勉強法について

「BPが楽しそうだけど難しそう」ってよく言われるが、いつも言うのは「最初に簡単なことから始めるのがオススメ」(ロブ)
マテリアルを変えるとか そこからどんどん複雑にしていくのが勉強になる
テンプレート自体の中身を見たり キャラクターのBPを開いて見たり
日本語のチュートリアル動画もどんどん増やしたりしようとしている
時間がなかなか無いけど‥
日本語に訳して字幕を付けるとUE4を触りながら見るのは大変なのではと思うけどどう?

問題ない 情報があるだけで嬉しい(alwei)

バージョンが変わると過去に作った情報が使えなくなってしまう(ロブ)
エンドレスランナーシリーズの動画を作った時には人気もあったが、使えなくなってしまった
チュートリアルをバージョンアップに対応していくのは大変なので
ハンズオンのイベントも参加してもらえたらと思う

ハンズオンは今後もやっていくのでぜひ参加してください(alwei)

アーティストは絵が出るのが長いと心が折れる(ずし)
クオリティが高いものは画面に出た瞬間感動する Epicさんのサンプルが一番すごい
無限関数 マテリアル関数を開いても開いても関数が続く
サンプル読むのがテンション上がる

詳しい人に教えてもらうのが一番手っ取り早い サンプルを読む会をやったりすると良さそう(とある)

Twitterで終わる情報が多いのでハッシュタグをチェックすると良い #UE4Study(おかず)

Twichでライブノーディングされていたりして勉強にとても良い(ずし)

上級者向けの勉強法としては、フォーラムを見てひたすら解析するという方法がある(alwei)
英語を読む めちゃくちゃ高度なことをやっている 上級者向け


■ 8.会場からの質問

・3Dマウス対応されている?
 ⇒ 対応されていたような‥ 試してみてください

・アセット頼りなのでは
 ⇒ アセットが便利なのは間違いない Unityもアセットストアが強力

Json対応
 ⇒ 個人でプラグインを公開されていたような
 ⇒ どのレベルの話なのか BPで使用したいとか?

・マスコット対応は?(アンリアルツインズ)
 ⇒ 言えること言えないことが分からない 最近聞いたのはもうすぐ出るみたいな話
 ⇒ キムヒョンテさん原案の3Dモデルがリリースされる予定

メモリリークについて
 ⇒ ランチャーともども改善されてきた
   4.11で大分改善された GCガベージコレクション)周りとか

・マルチGPU対応の進展
 ⇒ VR SLIは4.11から入るはず 二つのGPUを使ってVRをレンダリングする

・PSVRは個人で開発したい場合は?
 ⇒ PLAYIZMさんに問い合わせしてみてください
   実績なしでいきなりは難しいと聞いている
   まずOculusで作って持っていくと良さそう 公式ではないので鵜呑みにしないで

・UE4を教育に使うとしたらどうなるのか?
 ⇒ 今学生向けに教えているが出来上がるもののクオリティが高いので
   学生のモチベーションが高くなっているのがとても良い
   ゲーム作りの楽しさを教えることができている 力を入れてやっている
   三つの学校で教えている UE4の出せるクオリティが高い
   実際に就職に繋がっているケースも出ている
   学校への導入については今井さんに相談すればすぐに飛んでいってくれる

Google Cardboardの対応は?
 ⇒ 動かすだけならいける
   CardboardSDKには対応していない iOSに対応していない
   ドリフトが厳しい SDKが無くて厳しい部分がある
   GoogleがUnity以外のエンジンに対応する気がない感じ

・AnswerHubはみんなどれくらい見ている?
 ⇒ 毎日見てる(alwei)
   「UE4AnswerHub新着質問bot」というTwitterアカウントがあるので利用してみては

・ランチャーのCPU使用率の改善は?
 ⇒ 今は改善されている

・Eyeシェーダーとかクロスシェーダーとヘアシェーダーの情報が欲しい
 ⇒ 多分今用意していると思う
 ⇒ GDCでParagonでの活用について色々と発表していたと思う
   何か配れるようなドキュメントがあるのではと思うので聞いてみる
 ⇒ サンプルもあるといいな 髪の毛生えたブルーマンとか

MELでらせんモデルのエッジをカーブにする

MELでらせんモデルを作成してエッジからカーブを作成する方法についてメモ。

まず、らせんモデルの作成は以下のように記述してみます。

//らせんモデルを作成(断面を三角形に設定しておく)
polyHelix -c 2 -h 10 -w 10 -r 0.5 -sa 3 -sco 64 -sc 0 -d 1 -ax 0 1 0 -rcp 0 -cuv 3 -ch 1;

//オブジェクト名を取得してモデルの底辺が0の高さになるよう移動
string $name[] = `ls -sl`;
for( $n in $name)
{
setAttr($n + ".translateY") 5;
}


結果はこのような感じ。

f:id:moko_03_25:20160130021905p:plain

次に頂点番号2と5を選択します。エッジを選択する前準備です。
(このために断面を三角形にしています)

f:id:moko_03_25:20160130021907p:plain

//エッジ編集モードにして頂点番号2と5を選択
hilite ($n) ;
select -r ($n + ".vtx[2]") ;
select -add ($n + ".vtx[5]") ;
}


結果はうまくいきました。

f:id:moko_03_25:20160130021906p:plain

最後は選択した頂点をエッジ選択に変換してエッジループ選択を実行、カーブへ変換。

ConvertSelectionToContainedEdges;
SelectEdgeLoopSp;
polyToCurve -form 0 -degree 3;


無事にできました。

f:id:moko_03_25:20160130021908p:plain

エッジ取るのにもっと良い方法が色々あるのだろうなと想像しますが。。
モデル単体を作成して移動するのにリストに代入してたりとか、モデルの高さの半分の移動値にするように組んでなかったりとかは宿題ということで‥。

ここから先は、元のらせんモデルにラティスを適用して変形するなり、カーブのインスタンスを複製してロフトするなり、カーブに沿って別のカーブを押し出すなりすれば良いと思います。

MELのウインドウ作成について

ウインドウ作成についての備忘録。

MELを始めて最初に作ったツールは以下のような感じにしました。

//グローバルプロシージャ「ツール名」を定義
global proc vfxModelingTool()
{

//同じウインドウがある場合削除します
if(`window -ex vfxModelingTool` == true )deleteUI vfxModelingTool;

//サイズ変更不可・最小化と最大化ボタンなしでウインドウを作成
window -sizeable false -mnb false -mxb false -title "ウインドウ名" vfxModelingTool;

//カラムを作成
columnLayout -adjustableColumn true;

//具体的にボタンを配置してコマンドを割り当ててヘルプを用意
frameLayout -label "フレームのタイトル" -labelAlign "top";;
 columnLayout;
 gridLayout -numberOfColumns 2 -cellWidth 100 -cellHeight 40;
 button -label "ボタン名" -command "命令○○" -ann "Help:\n ○○します\n";
 button -label "ボタン名" -command "命令○○" -ann "Help:\n ○○します\n";
 setParent ..;
setParent ..;
}

//ウインドウ「vfxModelingTool」を表示
showWindow vfxModelingTool;
}


ボタンに割り当てる命令がシンプルな場合はそのまま記述しますが、何行にも渡る場合にはプロシージャを定義して関数化しました。大まかな構成はこちらの記事に書いてます。
単にシンプルな命令を2つ続けて書きたい時は「;(セミコロン)」で区切ればOKです。

ヘルプを書いておくとマニュアルの用意が省けて良いかも。
ボタンにカーソルを乗せて少し経つとポップアップ表示されます。