auの日記

プログラミング初心者の日記。(auはハンドルネームです)

UE4のパーティクルシステムとは

auです。

今日は、グラフィック表現の一つである、パーティクルシステムについて調べました。

パーティクルシステムとは

パーティクルシステムとは、炎や爆発、雲などを大量の2D画像を生み出し、アニメーションをつけることで3D空間上に表現する方法です。

小さな点をそれぞれ動かし、燃え上がる炎などを再現しています。めちゃめちゃ重そう。

Unreal Engine4でも、パーティクルシステムのモジュールは充実していて、再生時間やループ回数などの指定も簡単にできるようです。

UE4でナイアガラを使おうかなーと調べていたら、意味は知らないけど、聞いたことのある用語だったので、これを機にデザイン系の知識もつけていければいいなと思います。

Wiresharkの[]の部分はWireSharkが提供してくれていると知った

auです。

テスト前なので「ほえ〜」って思ったことを書こうと思います。

大学の講義などで、WireSharkを使うことがあります。

これは、通信しているパケットの様子を観察できることのできるすごいやつです。

最近知ったのですが、WireSharkでは、パケットを勝手に解析してくれて、細かいところまで提供してくれているということを知りました。

以下の画像は、TCPヘッダオプションです。

f:id:program-shoshinsya:20181217231453p:plain
Wikipediaより:
Transmission Control Protocol - Wikipedia

ここでは、Windowsize(ウィンドウサイズ)が16ビットだよーということしか分からないのですが、Wiresharkを通すと、その中ではさらにこうなっているんだーということまで教えてくれます。

実際のキャプチャしたデータの例

f:id:program-shoshinsya:20181217231101p:plain

ほえ〜。

UE4でコインの枚数を使ってif分岐を作った

auです。

今日はUE4のコインの枚数を使ってif分岐を実装してみました。

コインの枚数を1枚以上取得している状態でvキーを押すと、DropCoin関数が呼び出され、コインの枚数が1枚だけ減ります。

前回、コインの枚数が常に表示されるようにしたので、すぐに確認をすることができました。

vキーを押してコインを減らす動作はレベルブループリントで実装することで、他のレベルではこの動作が起きないようにしました。

f:id:program-shoshinsya:20181216230046p:plain

UE4の関数は極力純粋化するべき

auです。

今日はUE4の関数の純粋化(Pure関数)について勉強しました。

関数の純粋化とは

UE4でブループリントで関数を作った場合、必ず実行ピンがついてしまいます。

f:id:program-shoshinsya:20181215151404p:plain

これがあると「不純な関数」となってしまい、もしも、実行ピンから繋げなくてもいいのに繋げてしまった場合、実行順通りではない結果になってしまうかもしれません。

順番を間違えないために、実行ピンを使わない関数は「純粋な関数」にすると間違いが少なくなります。

ブループリント画面を開き、関数をダブルクリックして移動します。

「詳細タブ」に移動し、「純粋」にチェックを入れます。

f:id:program-shoshinsya:20181215200043p:plain

イベントグラフを見ると、実行タブがなくなっているのが確認できると思います。

f:id:program-shoshinsya:20181215200731p:plain

UE4でコインの呼び出し方を少し変えた

auです。

割と久しぶりにUE4に触った気がします。

今日は、以前に「コインを取得する」というイベントを設定しました。しかし、ゲームによっては普通のコイン、大きなコイン(複数枚手に入れることができる)もあります。これを実装する際に、毎度毎度イベント関数を作っているとものすごく時間がかかってしまうため、サブルーチンを作って対応できるようにしました。

「AddCoin」という関数に「Num」という入力を一つ作り、これを1にしました。この「Num」は、普通のコインを取得した際に1枚ずつ増えていきます。

あとは「Num5」などといった入力を複数作れば、それをノードで繋げるだけで簡単に「大きなコインを取得する」というイベントを作れます。

このように、同じような動作をする(今回でいうと「コインを取得」というイベントは変わらず、枚数だけ変わる)というのは、サブルーチンを活用して実装していきたいと思います。

ITのスワップとは

auです。

今日は、スワップという用語について調べました。

スワップとは

スワップとは、上位メモリが足りない時に、下位メモリに移すことです。

上位メモリにいくほど、メモリアクセスは早くなり、下位メモリになるほど、メモリアクセスは遅くなります。

上位メモリなほど、容量は少なく、下位メモリなほど、容量が多いです。

上位メモリがいっぱいになると、下位メモリに移動します。この動作をスワップといいます。

上からレジスター→キャッシュ→メモリ→ディスクとなります。

ネットワークのペイロードとは

auです。

今日は、ネットワークで使われる用語である「ペイロード」について調べました。

ペイロードとは

ペイロードという用語は、主にTCP/IPUDPで使われ、それぞれTCPペイロードUDPペイロードと呼ばれます。他にも、JSONペイロードなどもあるそうです。

ペイロードは、パケット通信における、ヘッダ(送信元や送信先などのデータがある)などを除いたデータそのものに対して使われる用語です。

TCPペイロード

TCP/IPにおけるペイロードでは、トランスポート層より上位層(アプリケーション層・プレゼンテーション層・セッション層)のプロトコルを全てデータとみなすので、これをペイロードとよびます。

UDPペイロード

今日勉強したのは主にTCPペイロードだったのですが、せっかくなのでUDPペイロードについても調べてみました。

UDPにおけるペイロードでは、UDPのアプリケーションプログラムのためのデータがペイロードに当たるそうです。