学習の一区切りと振り返り
はじめに
上の記事で見つけたプロジェクトを真似したり改造したりして、
それっぽいフライトアクションを一週間(作業日は5日くらい)で作ってみました。
結論から言うと、宇宙船を動かすのにも手一杯だったので、書籍使って一通りの学習をしようと思います。
やりたいこと、やりたかったこと、よくわからん問題などいろいろ起きてましたが、
ひとまず区切りをつけ、整理のために記事にします。
成果
ひとまずそれっぽい感じで飛びます。
WASDで平行移動、RFで上昇下降、左Shiftでブースト、マウスor左右キーでカメラの回転をします。
マップ上にある赤い玉にぶつかると赤い玉が消えます。赤い玉が全てなくなればゲームクリアです。
以下、振り返りです。
続きを読む
ポーンの所有とポーンにHUDからアクセスするタイミング
はじめに
UE4で空のプロジェクトからポーンを置いて見た後、いろいろ苦戦してます。
ひとまず今回、覚えておいたほうが良さそうなつっかかりポイントをメモついでに記事にしました。
経緯
前回のこの記事のサンプルを参考にして、空のプロジェクトで写経っぽいことしてたんですが、いろいろ苦戦してつらい。
にたようなモノつくってとりあえずドラッグ・アンド・ドロップしてもうんともすんとも言わない…………。
ポーンの所有
現象
空のプロジェクトを作成して、ポーンのブループリントを作成してノードを作って動かした所、宇宙船がピクリとも動かない!
何故????
原因
作成したポーンのコントローラーがいない
(ポーンをレベルに置いておくだけでは、コントローラーが設定されないので入力を受け付けない)
解決
上のサイトに行き着いたので、そんな感じにノードを作成。
レベルブループリントに直接置きました。
そしたら動いた。
やったぜ!
(あれ?SetChinematicModeノードってなんだ……?どこかに書いてあったんだっけ……???わからないけど動いてるし、今はそっとしておこう……)
HUDからポーンへアクセスするタイミング
現象
ポーンの情報にHUDからアクセス出来ない!
GetControlledPawnしてるのに値はNone!!
ホワイ!?!??
原因
HUD作成時のConstructイベントの時点では、まだポーンをプレイヤーがコントロールしていないので、Noneが出る。タイミングの問題。
(似た問題に対してタイミングの問題じゃね?っていう英語フォーラムが出てきた気がするんだけど、URLを失念。検索ワードも失念)
解決
コントロール後にHUDを作成した。
(他に良い解決方法がありそうだけど、今はとにかくこれでよし、としておく)
他にもポカミスやらなんやらでかなり時間を食ってますが、ひとまず移動だけならなんとか再現して、カスタマイズできるようになりました。
うーん。我ながら効率がよくないですね。
一度ゲーム作成に関するチュートリアルを通しでやったほうがいいかもしれない……。
では、また。
UE4の、宇宙船っぽいチュートリアルファイルを見つけた
UE4をチマチマ触っています。
最近はエグザンプルのプロジェクトを作って、とりあえず触って見てる日々です。
とはいえ見てるなのも勉強にならないし、昔XNA2.0とC#で作ったフライトアクションみたいなやつを再現しようといろいろやってるんですが、移動の制御のあたりで苦戦中。(昔もスゲー苦労しました)
テンプレートのFlyingをいじっても見てもうまくいかないし……。
何かいいサンプルみたいなのは無いかなあ、とグーグル先生に聞いた所以下のフォーラムが!
そうそう!こういうやつ!
早速ダウンロードして開いてみました。
おおー!
デフォルトで開くと、カメラの位置がずれてて編集するひつようがあったのですが、ちゃんと動きました!(バージョンの違いのせいかな?)
エフェクトもあるしいい感じです!(昔、XNAでエフェクト出そうとして、うまくいかず挫折しました)
とりあえずこのプロジェクトを参考にして、いろいろ触ってみようと思います。
でもやはり現実は甘く無いですね。
うーん、画像は移動を司る部分だと思うのですが、何がどうなってるのかさっぱり……。
やはり一つづつノードをチェックしていくことにします……
では、また。
UE4でデッドスペースみたいなHUDについての記事を見つけたけど、うまくできなかった
はじめに
こうしたらできた!系の記事じゃないです!!!
エースコンバットみたいな戦闘機モノには絶対ある角度計(っていうのだろうか?)を、UE4のHUDでやるにはどうしたらいいんだろう?と「ue4 hud virtual meter」とかで検索してみると以下のフォーラムが引っかかった。
欲しかった検索結果とは違うけど、面白そうだと思ったので挑戦した結果、うまくできなかったので挫折。
そのまま頓挫させて忘れるのももったいないので、備忘録ついでに記事にしました。
Alex.lachapelle氏の投稿の通りに、まずソケットを作りました。
次にThirdPersonCharacterのコンストラクションスクリプトを作りましたが、ここで挫折。
何がわからなかったか?
DynamicMaterialInstanceを作って、Tickイベントで逐次DynamicMaterialInstanceの値を更新していくんだろうなー、ぐらいの予想はできました。
フォーラムでは「M_HUD_Health_E...」というマテリアルが指定されていましたが、コレに関する言及がなくて、詰まってしまいました。
上のあたりでJeff Wilson氏が以下のように言及していましたが、
"You can do that with Canvas and the HUD in a Blueprint with something like this:"
Canvasとは?ウィジェットブループリントの事?となってしまい、調べてもいい感じのページに辿り着くことができなかった。
ウィジェットブループリントを作成してもサイズの指定とかないし、多分ウィジェットブループリントはこういう風につかうものじゃないのかな?どこでHUDにアクセスしているのか?などと疑問が生じて混乱してきたので、中断。
ひとまずここにメモとして残しておくことにします。
では、また。
UE4でとりあえず敵を出したり、弾を撃ったりする
はじめに
とりあえずハンズオン勉強会で習ったことの復習を兼ねた記事です。
シンプルな3Dアクションゲームを想定して作っていこうと思います。
UE4のガチ初心者なので、バッドノウハウとかあると思います。
手順や作業を整理して記事を書いてるわけではないので、拙い点はご容赦を。
プロジェクト的には↓を引き継いでます。
nmmn.hatenablog.com
HPやらなんやらがありますが、敵の追加と弾を撃つとかの実装は過去の記事とはあまり重複しないはずです。この記事だけ読んでも問題は無いかと思います。
何をやるのか
タイトルの通り、敵を実装します。
敵は弾を発射してくるようにして、自分を弾を発射できるようにして、やっつけたりやっつけられたりできるようにします。
全体観
少々見づらいですが、青い弾がプレイヤーから発射された弾。
赤い弾が敵から発射された弾です。
敵とかはBlenderかなんかで作ってぽいって実装できればかっこよかったのですが、Blenderが難しかった
ので諦めます……。
続きを読む
UE4でとりあえずヒットポイントとダメージ、ついでに画面にHPバーを実装する
はじめに
とりあえずハンズオン勉強会で習ったことの復習を兼ねた記事です。
シンプルな3Dアクションゲームを想定して作っていこうと思います。
UE4のガチ初心者なので、バッドノウハウとかあると思います。
手順や作業を整理して記事を書いてるわけではないので、拙い点はご容赦を。
プロジェクト的には↓を引き継いでます。
ゲームオーバー処理を行っているので、GameOverノードとかでてきたら、以下の記事を閲覧ください。(とはいっても、GameOverカスタムイベントがあるだけですが。)
何をやるのか
タイトル通り、キャラクターにHPを実装して、ダメージを受ける床を作ります。
ヒットポイントを実装しただけど見た目的によくわからないので、ついでに画面にHPバーも表示させます。
全体観
左上の青いゲージがHPバー、真っ赤な床がダメージ床です。
続きを読む