ヒマがあるならゲームつくってね

こんなとこ見てないでゲームをつくろう

UE4

UE4:BPマクロ/関数の入力でPass-by-Reference利用時の注意

UE4

UE4.8.3でBPのIncremenIntノードのOutputs変数Resultの値がなぜか期待する値より1多いので調べたところ、どうも入力に参照渡し(Pass-by-Reference有効)を利用して中で値を変更する場合、値の評価順序が感覚的に思っている順になっていませんでした。 バグ…

UE4:Beamを2つのActor間に発生させる(BP版)

UE4

前回は、BeamのEmitterのSourceとTargetをエディターのDetailsからプロパティInstanceParametersを追加して指定しましたが、今度は、BluePrint(BP)から設定してみました。 こっちのほうが実際は利用する気がします。 BeamのParticleからBPをつくり、そのBP…

UE4:Beamを2つのActor間に発生させる。

UE4

ラーニング動画をみてつくったBeamパーティクルを応用して、2つのActor(二つのNote)間にBeamを発生させてみました。Emitter側で受け取るActor情報を配置したパーティクルのプロパティInstance Parametersを追加して指定するというのがわからずに手間取りま…

UE4:「Introduction to Particles in UE4」 を見て気づいたこと

UE4

UE4のパーティクルのラーニング動画「Introduction to Particles in UE4」を見終わったので、気づいたことを書きます。 全体 英語がわからなくても、画面を見ながら、トレースすれば、実際に手を動かして試すことができました。 「ContentsExampleプロジェク…

UE4:パーティクルのチュートリアル

UE4

パーティクルのチュートリアルは、公式ドキュメントには見当たりませんでした。 パーティクルのシステムはUE3とほぼ同じのようなので、UE3のチュートリアルのページをみながら、パーティクルを試しました。 ここのパーティクルで雪を降らせるチュートリアル…

UE4:エディタでプロパティーを変更したときの呼ばれるPostEditChangeProperty について

UE4

エディタでプロパティーを変更したときの呼ばれるC++関数PostEditChangeProperty で取得できる PropertyとMemberPropertyの違いを実際に値を変更して調べてみました。 LocationもRotationもScaleもXを変更した場合はPropertyにはXが返ってくることを期待した…

UE4:BPとCPPでの間でお互いの関数を呼び出す方法

UE4

公式ドキュメントのプログラミング入門のところで、覚えたことのメモです。 C++からBPの関数(イベント)をよびだすには、以下のような宣言をクラスに追加 UFUNCTION(BlueprintImplementableEvent,Category="MyF") void BPEventName();C++の関数をBPから呼び…

UE4:AIControllerからPawnにNavMesh移動の移動情報を通知している流れ

UE4

Characterクラスではなく、PawnをNaviMesh移動させたかったので、C++のソースを読んでAIControllerからPawnには、どんな情報を通知して、NaviMesh移動しているのか調べました。 AIController(厳密には、ビヘビアツリーのMoveToのようなTaskノード)から、Paw…

UE4:C++プロジェクトのMacとWin間の移動

UE4

C++プロジェクトをMacからWinにもってくる場合は、VS用のソリューションファイルを生成してあげる必要があります。 プロジェクト内の*.uprojectを選択して、右クリックメニューを開くと「Generate Visual Studio project files」という項目があるのでそれを…

UE4:iOS CLLocationManagerを使って、緯度経度の値を取得する

UE4でGPS情報取得 UE4からiOS CLLocationManagerを使って、緯度経度の値を取得してみました。 iOSのObjective-Cのapiを呼び出しているのですが、色々わかったことがあったので記します。

マック版のUE4エディタのフリーズを解消できず、WIN版にもどる。

UE4

MacBookProで、4.6.xも4.7.xも色々試したのですが、どうしても、C++でクラスを追加しようとするとUEのメニューを表示するときに、フリーズしてプログラムが戻ってこない。 残念ながらWIN版のUE4の開発環境を復活させて、しばらくは、そっちで利用…

UE4 「ビヘイビアツリーのクイックスタートガイド」 を修正してみた。

UE4

UE4のビヘイビアツリーを勉強しようとして、ドキュメントのクイックスタートガイドを試していたのですが、ページが無くなっていたり、バージョンが上がったせいか無くなったBPのノードがあったので、勉強と思い調べて動くようにしました。 まあ、写経するよ…

UE4 カスタムのブループリントノードの作成

UE4

C++でカスタムのブループリントのノードを作成するのは、思った以上に簡単でした。 英文だけど、以下ページに方法がほぼ書いてあるので参考になります。 Custom Blueprint Node Creation - Epic Wiki作成のステップは以下のような感じです。 エディターで…

UE4 macのxcodeでデバッグ

UE4

無料になったので久しぶりにUE4を再開しました。 今まではBPだけで、C++のコードは書いていなかったので今回はチュートリアルからやり直しました。 ドキュメントには、クラスの追加の方法はかいてあるんですが、 xcodeをつかって、自分の書いたクラスにブ…

UE4:4.4.0にあげたときのBP不具合

UE4

UE4.3.0からU4.4.0にあげてPlayすると、なぜかプレイヤーの操作がきかなくなった。 カスタムのPlayerControllerのBPを開いてみると、GetControlledPawnが、エラーになっている。 理由はわからないので、一旦削除して、新しくGetControlledPawnを設定したら問…

UE4:ClassBPからLevelBPへイベントを通知する。

UE4

「プレイヤーが死んだら、レベルBPに通知して、レベルBPがゲーム結果用のレベルをオープンする」を実現するのにEventDispatcherを使おうかと思い、公式のドキュメントをよんだけど、わかりずらかったので、試しにつくってみたが意外と単純だった。 イベント…

UE4:4.4から4.3に戻す

UE4

4.4(preview)にアップデートしたところ、なぜかBPのEventBeginInputTouchが効かなくなった。 原因がわからないので、とりあえず、4.3に戻した。 Previewだからしょうがないか ちなみにマイナーバージョンが頻繁にあがっているけど、4.9の次はUE5なのか?

UE4:UEのシステムではまずプレイヤーありき

UE4

UEはまずプレイヤーありきのシステムなのでUnityなどと考え方がちょっと違った。 たとえば、レベル中にワールドデータが存在しようがしまいが、まずは、PlayerのControllerとPawnが生成される。 メニュー用のレベルをつくっても、利用するしないに関係なくPl…

UE4:BPタッチイベントを有効にするには

UE4

画面中のオブジェクトをタッチしたときにBPでイベントを発生させるには、 対象のオブジェクトのCollisionの設定だけではイベントが発生しませんでした。 カスタムのPlayerControllerを用意して、Defaults->MouseInterfaceのEnableTouchEvents/EnableTouchOve…

UE4: 正投影だとカメラプレビューが正しく表示されない。

UE4

CameraActorを使ったときに、エディターの3Dビューの右下に表示されるカメラプレビューが、Perspective(透視投影)だと正しく表示されるが、Orthographic(正投影)だと正しく表示されないみたい。 カメラ視点の確認をプレビューできるので便利な機能なんだ…

UE4:MacにPerforceをいれてバージョン管理

UE4

個人でも限定的になら無料で利用できるPerfoce UE4のソース管理とBPの便利なDiffが使えるのでいれると便利 ただし、Macの場合、p4サーバーをターミナルからコマンドラインでインストールする必要があるので手順をメモしておきます。 P4サーバー(p4d,p4)とP…

UE4:4.3になったのでマックでの開発移行してみることにしたが。

UE4

UEのバージョンが4.3になったのでWinからMacへ開発を移行してみることにした。 エンジンは、もうMacだけ変な不具合があるということはなさそう。 ただ、バージョン管理に使っているPerforceサーバーがWinは比較的簡単だったけど、 Macは、どうもUNIXと同…

UE4:BPライブラリ中の関数やマクロを別のライブラリに移動させたいけど。

UE4

リファクタリングとして、BPライブラリ(またはアクター)中の関数やマクロを別のライブラリに移動させたいけど。 今のところ、コピペもできないし、移動もできないので、中身のノードだけ、コピーしてINとOUTは書き直している。

UE4:BPレベルストリーミングとレベル読み替え

UE4

最初、上手くいかなかったのですがドキュメントをみたり、試したりしてレベルデータの読み込みに関していくつかわかりました。 * レベルデータの読み込みには2種類ある LoadStreamLevel レベルストリーミングを行う時に利用。読み込むレベルは、エディター…

UE4:BPレベルストリーミング試す

UE4

レベルストリーミングが必要になったので、サンプルの動作とBPを確認した後に自分でテストマップ作って試しました。普通にloadしているつもりなのにfailedで読み込み失敗。多分単純なミスだと思うが、作業時間切れで原因調査と修正は明日以降に持ち越し。ち…

UE4:BP複数の実行リンクを束ねる。

UE4

ノード間のリンクが増えるととても見にくい 何もしないマクロを用意して、複数の実行リンクを束ねると、スッキリとした見た目になる。 ライブラリにしておくと使いまわしもきく。

UE4:BPで実行しているプラットホームを判断する

UE4

実行しているプラットホームを判断するには,GetPlatformNameで返ってくる文字列で判断すればよいらしい。 サンプルのTappyChickenのBPがかなり参考になります。 例えば、モバイルプラットホームに対応していない機能は、これで判別して別の処理に差し替えま…

UE4:BPで点から最も近い直線上の点を求める。

UE4

点から最も近い直線上の点を求めるには、以下のようなBPのノードになります。 座標の演算をX、Y、Zを別々に計算するより、ベクトルで考えて計算した方がシンプルできれいなことが、BPだとよくわかる。

UE4:TextRenderはモバイルに対応していないみたい。

UE4

TextRenderを使って、3D空間上に文字を配置して、動かそうと思った。 テキストの文字列は動的に変更できた。 ただ、やっぱり、モバイルには対応していないようだった。(4.2.1) モバイルプレビューで起動すると何も表示されない。 残念

UE4:本当はMACで開発したいんだけど。

UE4

今のところ、UE4をWINで動かして、ゲームを作っているのですが、本当はMACで作りたいと思っています。 以前のMAC版UE4のBPは、日本語のコメントを入力するとクラッシュするし、MACで作ったプロジェクトをWINで動かそうと試すとクラッシュするしと、散々でし…