UnrealEngine4でこれからも使うんじゃないかなと思ったやつ(ブループリント編)

タイトル通りです。

そもそもこのブログの目的ってやったことをまとめることなのに初めてまとめ書く

まずはブループリントで出来ること全般からです

ver : UE4.21   

目次

 

Timelineで簡単に連続した値設定

Timelineの紹介

Timelineってのはこんなノードです

ひとつずつ簡単に紹介

f:id:Sho_ganmer:20190409005024p:plain



Input

  • Play :再生開始、一度パルスを流せば更新し続ける
  • Play from Start:初めから再生
  • Stop:再生を停止
  • Reverse:現在時刻から逆再生
  • Reverse from End:最後から逆再生
  • Set New Time:次のNew Timeの時間に再生位置が飛ぶ
  • New Time:Set New Timeでジャンプする時間

Output

  • Update:更新中に流れ続ける
  • Finished:再生が終わった時に流れ続ける
  • SinCurve:timelineの中にある、実際に定義する値です(ここで自由に定義可能)

ちなみに、このタイムラインの中はこんなんになってました

(自由にプロット、定義可能)

f:id:Sho_ganmer:20190408223847p:plain

サンプル

たとえば、時間ごとに膨張、収縮するロジックはこんな感じ

f:id:Sho_ganmer:20190408224435p:plain

故障かな?と思ったら

確認してほしいこと

  • Timelineに再度入力するところを間違えてないか?
  • branchのtrueとfalseを逆にしてないか?
  • IsReverseの値を変更しているか?

 

リチャージ処理

内容

 キャラ固有のスキルを使った後、一定時間経たないと再使用できないような感じの処理です

これを応用すればマイクラのスポーンブロックみたいな挙動も作れると思う

(範囲内に入る→MOBスポーン→数秒経つMOBスポーン→数秒経つ→MOBスポーン...)

やり方

f:id:Sho_ganmer:20190408202249p:plain

特徴として、DoOnceノードを使っているところです

DoOnceノードは一度だけパルスを通し、その後はResetにパルスが流れない限り通しません

DurationTimeはfloat型の変数で、これを変えれば簡単にリチャージ時間を調整できます

 

 故障かな?と思ったら

ここを確認

  • DoOnceはあるか?
  • DoOnceに再度入力するとき、Resetに入力しているか?
  • Delayノードはあるか?

持続ダメージ(DamageOverTime,DoT)

内容

持続ダメージ、例えばとかとか。どんなゲームを作るときでも出てくると思います

こいつらに必要な情報は、何秒ごといくらダメージを与えるかです

やり方

 これを実装する方法、若干の違いがあるロジック二種類です

f:id:Sho_ganmer:20190408230317p:plain

f:id:Sho_ganmer:20190408230845p:plain

故障かな?と思ったら

確認

  • function nameをスペルミスしてないか
  • Eventにしっかり入力しているか
  • Loopingにチェックを入れているか
  • clear event時、青色のピンをちゃんとclearノードに入力しているか

二つの違い

この二つの実装、中身の挙動に違いは無いと思います

書き方の違いとして、関数名を与えるか、Eventをそのまま与えるか、です

以下は自分が思うそれぞれの長所、短所です

function name

長所

  • イベント(関数)をブループリント内のどこに定義してもちゃんと呼ばれる
  • Clearイベントもどこでも定義できる

短所

  • 関数名の指定というなんとなく気持ち悪い実装

 

event

長所

  • イベントそのまま指定というなんとなくよさげな実装
  • 直接指定するため、スペルミスや未定義にならない

短所

  • startのすぐ側にループイベントを書かないといけない
  • Clearするときもリファレンスを渡すため、これまたstartの側に書かないといけない

まぁどちらも大した差はないかなと思います。ノードを見てもどちらも綺麗だしね

もしどちらでもいい状況なら、自分ならfunction nameの方を使います。

どこでも書けるのは良いことだから

死んだらそのオブジェクトを物理エンジンで動かす(だらんってさせる)

FPSなんかでよくある、死んだときに体が柔らかくなったみたいになる、あれです

やり方

f:id:Sho_ganmer:20190409002357p:plain

故障かな?と思ったら

もし動かない時に確認してほしいこと

  • SetSumilate Physics のチェックは入ってるか?
  • SetCollision Profile Name のスペルは正しいか?
  • ターゲットにしているmeshは正しいか?

解説的な

コリジョンを変える理由は、多くの場合Characterのメッシュには物理コリジョンがありません。   なのでシミュレートしてもコリジョンがないため奈落の底に落ちてしまいます

それを防ぐためにコリジョンを変えています

※これはメッシュのCollision Enabledが「Query Only」であるためですが、これを無暗に変えるのはあまり好ましくありません(ゲーム中に余計な物理計算をさせないため)

終わりに

 いろいろ書きましたが、まだまだマテリアル、ウィジェットで忘れそうなことたくさんあるのでもうちょっとかくかも

 

高専カンファレンスin西京2 に参加した

高専カンファレンスin西京2 に参加したぜ

3月が終わるまでに書けばいいやw    とか思ってたらもうすぐ3月終わるやん!

ということで書きます。

まぁ3月なんてどの日も大体同じでしょ

 

 初めての高専カンファ、、どころか初めてのLT会だった

始めてだったので、会場がどんなんとか、雰囲気とか、全く分からなかったんですが、意外とフランクで少し驚きました。

勉強会の内容

 「みんなすごいなぁ」って思いました。

あの場で立ってる人って、発表内容に自信を持って発表をしてたわけで、そんな風に自分がしていること、取り組んだ事に自信を持てるっていいなぁと思いました。

飛び入りLTとかもう自信の塊ですよね。普通、落選したら諦めるよ

聞いて思ったこと

自分もこれから先、やったことに自信を持てたらいいなって

少し自分語りをすると、一時期C++でゲーム制作をしていたんです。

その時に、今考えてみるとまぁまぁすごい事やってたんです。

(関数ポインタでテーブル作成、std::listと仮想関数を使ったオブジェクト制御とか)

んで、それをプチ自慢とかすれば良かったんですけど、自信が持てずにやりませんでした。

後からすごかったんだーって知ったんですね

これから先は「自分こんなことやってんだよ」って言えることしたいね!!!!!

そう言ってもうすぐ3月おわるが

後夜祭

自分はずっと飛び入りLT見てました。(自信ニキばっかだろうと思ったから)

しかし、他ではカードゲームやってて、後から聞くとそっちも面白そうでした

まぁ僕は、最初に概要見たときに、うーん....分からんww!(これするより飛び入り見た方がいいかな...)って思ったんですけどね

後後夜祭

瓦そばおいしかったです。

夜の関門海峡きれいでした。

最後に

正直、もう少し他高専の人と交わりたかった。名刺作らなかったの絶対許さん、次あれば絶対作ってばらまいてやる

なんかやろう、頑張ろうって気になりました

 

部内プロコンを振り返る

 1月16日(水)に部内プロコンを開きました!!!!!

(遅れた理由は体調不良と試験(と忘れてたーー))

まぁまぁ長いので目次

 

 

概要

弊部では毎年、12月~1月ごろに一年生が主人公になって課題を頑張って解いてもらうイベントがあります。 

このイベントで一年生に初めての大きなプログラムを完成させて、自信をつけてもらうのが大きな狙いです

これが部内プロコンです。またの名をサイコロ並べ大会です。

ルール

簡単なルール

  • 1つのチームをエンコードとデコードのふたつに分けて行います。
  • 2チーム、か3チームごとにやります。
  • エンコードは200字くらいの文字列を渡されて、それをサイコロの並びに変換し、デコードに写真で送ります。デコードはその写真をもとに元の文字列を再現します。
  • 再現度が高かったほうに得点が入り、得点の高い方が勝ちです。   

2014年のプロコンがもとになってるらしい

すこし細かいルール

  • 制限時間は10分(終了1分前になるとスクリーンの表示が止まって状況が分からなくなる)
  • 文字列は空白とか改行はありません。
  • サイコロの並びが、例えば10文字入れて5文字まで合ってて、6文字目違う、7文字目以降全部合ってるなら、得点は5点です。(完答部のみ得点)
  • 一戦二試合、得点は合計

 

スクリーンはこんな感じ

数字は得点、緑の中の数字は送信した回数です

赤くなってる部分は 誤答となり得点になっていない部分です。

f:id:Sho_ganmer:20190223014108j:plain

ぼくがやったこと

このイベントの運営です。(たいへんだった)

具体的には、

  • 一年生にチームを決めてもらう(名前とかも)、ルール紹介とかもする
  • いきなり元プロコンの問題解けっつっても無理なので、2年生をメンターとして当てた(昨年やってるからいけるということで)
  • 部内プロコンの問題を考える(5~6問)
  • 運営用のサーバーの使い方を覚える(マニュアルほぼなし)
  • 当日用のパワポとか作る
  • 部屋とかなんやかんや準備する

でした

一番大変だったのはサーバーの使い方を覚えることでした。(サーバーの説明書がないため)

次点で問題づくり。いかに引かれず、惹かれる問題を作るのかが難しかった

当日

いろいろな前説明をして準備をして(この準備が要領が悪く時間がかかる)

一回戦

最初の戦いです。一年生はさぞ緊張したと思います。僕もとても緊張しました。

(サーバーセットアップが間違ってるとグダる、ダレる、皆が帰る時間が遅れる)

 

しかし始まると早くて、10分があっという間でした。まじで

 

問題の題材は  デビルマン(あーくまのちーからーみーにーつーけたー)、東方原作サブタイトルNo.1にしました。

f:id:Sho_ganmer:20190223014612j:plain
f:id:Sho_ganmer:20190223014546j:plain

二回戦

一年生は4チームに分かれたので、まだ初戦みたいなもん。

僕も問題間違えてないか、胃がきりきりでした。

なんとこの戦い、一試合目はプログラムが動かず完全人力のチームがいました。

つまり、目だけでサイコロを並べて、目だけで文字列を作る感じです。すごいね()

 

すごいのはそのあとで、試合間の作戦会議でしっかりとプログラムを修正し、完成させてたことです。二試合目はしっかり得点をとってました😊 

よかった   すごい

問題の題材は、イキリトコピペ、東方サブタイトルNo.2でした。

f:id:Sho_ganmer:20190223014545j:plain
f:id:Sho_ganmer:20190223014543j:plain

 

 

 

 

 

 

部内プロコン美術部門も開催されてました

f:id:Sho_ganmer:20190223015729j:plain
f:id:Sho_ganmer:20190223015753j:plain

Final

Finalは昨年度優勝チームも交えて3つ巴です(昨年度チームが勝っても優勝には影響しない)

Finalなだけあって三チームともかなり高い得点を取ってました

 

Finalは時間の都合上1試合のみでした()。

かなり接戦だったのでもう1試合見たかったな

問題はプログラミング言語Wikipediaで調べて、出てくる順に並べたやつでした

f:id:Sho_ganmer:20190223014423j:plain

終わった

優勝したチームにはコメントをしてもらいました。

実は、優勝チームには、2年生(弊部1年目)が2人いて、どちらもプロだったので、やっぱこのチームかという感じでした

(正直チーム決めミスった...)

なので一年生は、「2年の先輩に任せてしまった部分があった」と、口をそろえて言ってました。

 次の機会がきっとあると思うので頑張ってほしい

感想した完走

  • 思った以上に全チームの正解数が多かったです。実はこれは毎年思うことなのですが、今年は特に多かった気がします。(来年また別の人が同じこと言ってるかもしれんが)
  • それと、接戦が2試合ほどありました。なので、終了1分前にスクリーン上での表示が止まった後も、どのチームが勝つか分からなくて見ててもとても楽しかったです。
  • Final最初に正答してもらうまで、最後の最後まで胃が痛かった...

反省

  • チームは考えて組もう
    つよい人を固めちゃいけない、完全ランダムはいけない
  • マニュアルを作ろう
    準備するものや、することをまとめといて、もうちょっと運営を楽にしたい。 サーバーの使い方とか頭が弱いとよく分からんので
  • お題選定はできたと思う
    募集をかけたらいいテーマがたくさん来てうれしかった。(自分がやったのは東方とプログラミング言語だけ)

(自分の)総評

自分がしっかりと運営ができるのか不安だったが、無事終わってよかった。

時間の管理とかがガバガバだった印象があるものの、結果的には不満のない、いい感じの部内プロコンができたと思う!

 

…やっぱりこれ終わって1週間以内に書くべきだったなぁ

 

 

始めてのブログ はつとうこ

 

はじめ

やってみたかったんでブログ始めてみました

…というのは建前で、自分がやったことや知識とかを忘れてもこれ見たら思い出すやつを作りたかった

自分とは

北九州の上のほうにある高専(要するに北九州高専)に通う高専生です。2019年1月の時点で3年だ!!(ついったid:γなかはらγ (@Kende_Sho) | Twitter)

好きなものは東方です、東方おたくです。好きなキャラは今は洩矢諏訪子!画像のやつ

あと、ゲームとギリシャ神話も好きですよ

中学ではバスケしてて、今でもたまにやる(誘ってくれるmyFriendには本当に感謝)

一年生

 ゲームを作りたかったので部活に入って、まず触れたのがC言語、当時は関数ぐらいまでしか分からず苦労した(黒い画面が出てくるだけやん!! イメージと違う)

二年生

C++DxLibを使ってゲームを作ってた

題材は東方好きなので弾幕STG  、でキャラとかもこのままなん??とか悩んでいたらギリシャ神話のキャラ絡ませよ~ってことで神話の神様と戦うSTGを作ることにしました  この弾幕STGを作るのがとても難しかった

そして、プログラミング班長っていう、重そうで軽い役職につきました。この役職のおかげで色々なことに参加するきっかけになりました

学科選択は電気科にしました

三年生

JavaScript/HTMLを勉強してWebアプリを協力して作成しました。 ここでJSONとかいう謎の拡張子にも出会いました

3Dゲーム制作をしたくてDxlibの3D機能を試し→うんこじゃん(分からなくて言い訳)そして、ゲームエンジン触るかってなってUnrealEngine4(良エンジン)をやりました

そして、ぼくはプログラミング班長なので、弊部で毎年する部内プロコンってものの運営をしなければならず、準備をいろいろしました。(これは後日別に書きたい)

あと、モバイルアプリも作ってみたくてReactNativeも触ってはいる

ここに何を書くか

やったことを書きます。 具体的には

  • UnrealEngine4の進捗
  • ReactNativeもするのかな
  • 2年生で作ったゲームシステムの話(正直そんなない)
  • イベント類、その他

です

最後に

ブログって難しいですね(もっと簡単にまとめたかった)