情報は力ではない

UE4 とか Blender とか。

今年の目標の振り返りと来年の目標

年末なので、今年の目標の振り返りと来年の目標をば。

今年の目標

すごく短いけど、今年のはじめに目標を書いてた。

massa8080.hatenablog.com

  • ゲーム作る。
  • ぷちコンに出る。
  • UE4 もしくは Blender の記事を12本書く。

ゲーム作る。

これはできてないですね。 作業はしてるけど、進捗が芳しくない。プレイ可能な状態でない感じ。 UE4Blender で遊んでたりはするけど、作品が出来上がってないです。 来年にはプレイ可能な状態に持っていきたい。

ぷちコンに出る。

これは達成しました。 ぷちコンというのは、ヒストリアさんが主催している UE4 を使って 「サクッと作ってサクッと応募」をコンセプトに開催されているコンテストです。

historia.co.jp

第7回、第8回に参加させていただきました。

www.youtube.com

www.youtube.com

自分の提出した動画を見直してみると、まだまだ勉強不足だなぁと感じたので 精進せねばという感じです。 次のぷちコンも企画されているそうなので、それまでに勉強を続けねばという感じ。

UE4 もしくは Blender の記事を12本書く。

2017年に書いたブログの数が8本なので、未達成ですね。 Blender 関連が4本、UE4関連が4本といった感じです。 12という数は月に1本くらいのペースで書きたいと思って、その数にしたんですが 全然書けてないですね。来年はペースを上げて書きたい。

来年の目標

  • 自作ゲームの体験版を公開する。
  • ぷちコンに提出したゲームをリリースする。
  • オリジナルキャラのモデルを作成する。
  • UE4Blender の記事を12本書く。

自作ゲームの体験版を公開する。

今年、体験版はおろかゲームと呼べるものを作ることが出来なかったので、来年こそプレイ可能なものにするぞという意気込み。 3D アクションゲームを作ります。

ぷちコンに提出したゲームをリリースする。

リリースといってもそこまで大きなものではなく、パッケージングしてダウンロード可能な状態まで持っていくという感じです。 そこまでやって、ようやくゲーム作りの1サイクルな気がしているので。

オリジナルキャラのモデルを作成する。

今も少しずつ作っていますが、まだまだなので作り直したり修正したりしています。 まだまだ変わると思いますが。 とりあえず来年にはある程度完成させたい。

UE4Blender の記事を12本書く。

今年は12本達成できなかったので、来年も同じ目標をば。 あまり気張らず、ちょっと学んだことでも記事にしていこうと思う。

最後に

今年は、Blender のスカルプトの勉強会やUnreal Fest. にも参加できてよかったです。 自分の人生の中でのゲームの割合をもっと増やしたいと強く思ったので 自主制作の時間を今よりもずっと増やしたいなと思っています。 自分はインプットもアウトプットも少ないので、より頑張らねば。

来年は上記の目標に向かって進んでいこうと思います。

Blender で Rigify を使ってリグ付け、アニメーションを作った(+ UE4 にインポート)

Blender の Rigify を使ってみたかったので、そのメモ。 おまけでアニメーション付けて UE4 に持っていってみた。

Rigify の使い方は dskjal さんのブログに従った。すごくわかりやすい。 dskjal.com

version

Blender: 2.79

リグの生成

オブジェクトモードで、Shift + A を押し、アーマチュアを選択し、Human (Meta-Rig) を選択すると metarig が作成されます。

f:id:masahiro8080:20171202153647p:plain:w300

metarig を選択し、編集モードで作成しているモデルに metarig を合わせていきます。 T キーを押し、オプションから X 軸ミラーを押しておくと左右対称でボーンを編集できます。

顔のボーンを使うつもりがない場合は、ポーズモードで face ボーンを選択し、Rigify Type の Rig type:: を削除しておきます。

f:id:masahiro8080:20171202155028p:plain:w300

metarig の調整が終わったら、オブジェクトモードでプロパティのデータにある Rigify Buttons から Generate Rig を押し、リグを生成します。

f:id:masahiro8080:20171202155555p:plain:w300

生成されたリグ。

f:id:masahiro8080:20171202155701p:plain:w300

リグとメッシュの親子づけ

リグと親子づけするメッシュを選択してから、リグを選択し、Ctrl + P でアーマチュア変形から自動のウエイトでを選択すると親子づけされます。自動でウエイト付けされますが、調整が必要だと思うので、そこは手作業でウエイトをつける。

IK と FK

N キーを押し、Rig Layers でコントローラーの表示・非表示ができます。

f:id:masahiro8080:20171202160334p:plain:w300

ポーズモードで hand_ik.L 等の IK を選択し、N キーで表示されるプロパティシェルフから Rig Main Properties で IK/FK の編集をします。 IK_FK を 0 にし IK を有効にします。また、IK_Stretch を 0 にしておきます。0 でないとメッシュが伸びます。

f:id:masahiro8080:20171202161655p:plain:w300

forearm_ik.L 等の FK の場合は IK_FK を 1 にすると FK が有効になります。

あとはポーズモードでポーズを付けたり、アクションを付けたりします。

アニメーション

せっかくなので歩行モーションを作った。

f:id:masahiro8080:20171202161537g:plain:w300

おまけ

Blender からエクスポートし、UE4 にインポートしてみた。

f:id:masahiro8080:20171202161832p:plain:w300

UE4 でインポートするときは、Import animations にチェックを入れておく。

Hit Stopの実装の仕方

自分用にメモ。

Version

Unreal Engine 4.16.3

Sample

U-MA/HitStopSample · GitHub

Content

Hit stopの検証用にプロジェクトを作成。今回はTwin Stick Shooterを選択。

f:id:masahiro8080:20170805130733p:plain

敵となるEnemyPawnを作成。 1M_CubeとBox Collisionを設定した簡素なものです。

f:id:masahiro8080:20170805130750p:plain

ブループリントはこんな感じ。

f:id:masahiro8080:20170805130805p:plain

Hit Stopを実装するには次のような感じにします。
1. setCustomTimeDilationを0にする
2. 一定時間後にsetCustomTimeDilationを1にする

THit Stopがわかりやすい?ようにTickでEnemyPawnを一定の速度で回転させています。

動作は次のような感じ。

youtu.be

エフェクト等がないので、弾が当たると回転がただ止まってるように見えるけど 簡単なHit Stop実装はこんな感じです。

仮で目を作る時のメモ

最近、Autodesk Maya キャラクターモデリング造形力矯正バイブルをやってます。
Mayaの本だけど作り方は参考になると思って読みつつモデリングをしてます。

www.borndigital.co.jp

その中で仮の、眼球のシェーダを作る工程があって
blenderではどうすればできるだろうと思ったのでマテリアルノードの練習にと思ってやってみた。

blender versionは2.78b、Blenderレンダーでやってます。

マテリアルノードは次のような感じ。

f:id:masahiro8080:20170518162532p:plain

ジオメトリノードの生成(英語だとOrco。Original Coordinateの略かな?)から
メッシュの座標を取得して、RGB分離でZ座標の値をカラーランプの係数として使う。
カラーランプのカラーと他のマテリアルのスペキュラーをミックスして出力した。
このマテリアルを目に割り当ててみると次のように見える。

f:id:masahiro8080:20170518161938p:plain

正直なところ、ジオメトリノードの生成が何を返しているのかはよくわかってない。
ドキュメントを見ると

Using the Original Coordinates of the mesh.

と書いてあったのだけれど、よくわからなかった。

Geometry Node — Blender Manual

この辺りもちゃんと勉強しないとなぁ。

Level Designer Quick Startをやった。

ちゃんとUE4を1から学び直さないといけないなぁと思ってラーニングをやってる。

f:id:masahiro8080:20170421234431p:plain

Level Designer Quick Start

docs.unrealengine.com

ちっちゃな部屋を作りながら操作の仕方やアセットの配置の仕方、マテリアルの設定の仕方を学べる。
ここでちゃんと知ったことはLightmass Importance Volumeの意味とDirectional Lightで太陽を動かせること。

Lightmass Importance Volume

docs.unrealengine.com

Lightmass Importance Volumeについてはここでざっくりと学んだ。
これを設定することで必要な部分だけ品質の高いライティングをすることができる。 また、これを設定することでこの設定範囲内だけ詳細にライティングを計算すれば良いのでビルドが早くなるはず。

Directional Light

f:id:masahiro8080:20170421234314p:plain

平行光源。Atmosphere Sun Lightにチェックを入れ、Directional Lightを回転させることで 太陽を動かすことができる。太陽を動かすことで夜明けや夕焼け、夜を表現できる。
Atmosphere Fog(じゃなくていいかもだけど)で全体を明るくしておかないと太陽見れないので注意。

所感

この辺りの話は極め本でやったようなきがするのだけど、全く忘れてた。 やっぱりちゃんと毎日UE4に触れて作業をすることが大事だなと改めて思った。

Blender勉強会 Step 3に行ってきた。

Blender勉強会に行ってきた。

https://togebu.doorkeeper.jp/events/57339

今までスカルプトはとっつきづらいと思ってやってこなかったので 良い機会だなと思って参加した。東ゲ部、初参加でした。

@kurosaurusさんによるスカルプト講座

www.slideshare.net

ブラシのショートカットやDyntopo、Multiresolutionの使い方を学んだ。 スカルプトとは関係ないけど、「ビュー>レンズ」で画角を弄れるの知らなかったので学びだった。

@tomB_saikayaさんの講座

即興でskinモディファイアから手を作る方法やZBrushのtrimブラシ?っぽいブラシを作成する方法について解説していただいた。

skinモディファイアから手を作る方法では、頂点を枝分かれさせるときにメッシュが思った通りにならない場合があるけど、その場合はその枝分かれしている頂点を「ルーズとしてマーク」してあげるといいみたい。

f:id:masahiro8080:20170304232017p:plain

trimブラシっぽいブラシを作成する方法はScrape/Peaksを複製して「エリア平面」を「ビュー平面」に変更し、左のロックをオンにすると良い。

もくもくで作ったもの

スカルプト解説の際に作ってた何か。

f:id:masahiro8080:20170304231201p:plain:w300

skinモディファイアから手を作る方法を解説している際に作ってた手。

f:id:masahiro8080:20170304231000p:plain:w300

犬。

f:id:masahiro8080:20170304230518p:plain:w300

感想

初めてBlenderというかCG関係の勉強会に来たけど非常に学びになったし、刺激になった。 スカルプトは今まで使ってこなかったけど、少し慣れたので使えるところでは積極的に使っていきたいと思う。 東ゲ部Blender勉強会に参加して良かったし、非常に楽しかった。 講師の@kurosaurusさん、即興で解説していただいた@tomB_saikayaさん、スタッフのみなさんありがとうございました!

武器をアタッチする方法

武器をActorにアタッチする方法について少し調べたのでメモ。

アタッチする方法

端的に言うとattachToComponentを使えば良い。

f:id:masahiro8080:20170122123531p:plain:w200

これを使うことでParentSocket NameTargetのActorをアタッチすることができる。

docs.unrealengine.com

Targetへの値の渡し方は次の2種類あると思う(他にもあるのかな)。

  1. Add static mesh componentの戻り値を使う
  2. Spawn Actorの戻り値を使う

1.の方法はもんしょの巣穴blog [UE4] 武器切り替えで解説している方法。2.の方法はHow do I attach an Actor Blueprint to a socket in a Character Blueprint? - UE4 AnswerHub で解説している方法。

どちらがどういうメリット・デメリットがあるのかはまだわかってない。あまり違いはないのかもしれない。

短いけど、今日はこれで。