糖分が足りない

HTC Vive、UE4、blenderあたりのネタを書いていきます?

第8回ぷちコン参加の備忘録

ぷちコン2回目参加です!

 

こちらが今回制作したゲームです!

youtu.be
VR作品です!

ルール説明

2ステージ構成、それぞれ60秒の持ち時間となっています。

基本操作は、何も持っていない手でトリガーを引くと敵を引き寄せ、トリガーを離すと攻撃の弾となり飛んでいきます。

 

1ステージ目は60秒以内にたくさんの敵を倒し、シンクロ率(スコア)を稼ぎます。

敵は時間を吸収する技を使い、時間の進行速度を上昇させます。

 

2ステージ目は60秒以内にボスを倒すことが目的です。

シンクロ率が高ければ高いほど、時間の進行速度が遅くなります。(50%で2倍速、100%で等速、200%で0.5倍速)

ボスの攻撃を受けるとシンクロ率が下がります。

ボスの攻撃を奪い取って、攻撃を防ぎつつ、隙を見てダメージを与えていきます。

 

敵の行動は、音とエフェクトから分かる様になっています。

60秒をなるべく長く維持していきましょう!

(時間は手元、周りの時計、背景の演出、あと1秒毎に鳴るカウントでわかります)

(ボスは残りHPで発言と行動パターンが変わります)

まとめると、引き寄せて撃ち放つゲームです!

 

撮影用に難易度をだいぶ落としていますが、本気を出すとなかなか凄いです!

 

前回は背景の配置がけっこう大変だったので、今回はブロックでも置いておこうと思ったのですが、これはこれで大変でした…

背景はこのように変化しています。

youtu.be

こっちの動画のほうが画質良くなってて辛い

次回はもっと動画のエンコード時間が取れるよう、余裕を持たせたいです・・・。

 

ここから今回の備忘録です

 ブロック(床、壁)周り

InstancedStaticMeshで作成しています。

MaterialでObjectPositionから色々と動きを付けています。

f:id:bitrate1280:20170918162515p:plain

それぞれのパラメーターをでっかいタイムラインから値を渡しています。

Timeノードの代わりにゲームの進行時間を常に渡しています。

 

実際のオブジェクトは床に配置しているので、何も設定していないと上を見た時などに表示されなくなってしまうので、大きなコリジョンを親に置いて「Use Attach Parent Bound」をチェックしています。

 

パーティクル周り

今まで0からのパーティクル作成をあまり行った事無かったですが、今回は色々と作ってみました(なんと18個!似たの多いけど…)。

全く使ったことなかったRibbonやOrbitの使い方がわかったので、これからはもっとかっこいいエフェクトが作れるようになるような気がしなくもないです!

f:id:bitrate1280:20170918163939p:plain

 

操作周り

一度ターゲットのマーカーを出すと、ポインターが敵から外れても少しの間は狙ったままになります。

また、その状態で撃つとホーミングするようにしてあるので、細かく狙う必要がないです。(これでゲームをどんどん忙しくしても安心だッッ)

手が表示される位置はコントローラーを持つ位置まんまです、拳を敵に突きつけながらプレーします。

 

負荷軽減周り

VRテンプレートからプロジェクトを立上げ、そこから更にVR向けの設定を行いました。

半透明は基本DitherTemporalAAを使っていますが、ここぞというところはTranslucentを使用しています(出現演出、シールド)。

CPU側が結構スカスカだったので、描画負荷軽減の対応をそちらで色々行っていました。

敵の動きを止める位置は被らないようにしています、又、並走をあまりしないようにしています。

半透明を使用する敵出現演出は、なるべく演出中に敵の通りが一番少ない場所にしています。

 

背景マテリアルにパラメーターを渡す時などに、無駄な値渡しが発生しないよう下記のマクロを使っています。

 

f:id:bitrate1280:20170918163019p:plain

 

ScreenPercentageは120です!!!!!!

 

まとめ

前回ステージが広くて、配置からデバッグまで色々と大変だったので、今回はステージを小さくまとめたのですが、なかなかうまく行った気がします!

 

難易度上げて、細かいとこ調整した後に配布します!