UE4
UE4.8.3でBPのIncremenIntノードのOutputs変数Resultの値がなぜか期待する値より1多いので調べたところ、どうも入力に参照渡し(Pass-by-Reference有効)を利用して中で値を変更する場合、値の評価順序が感覚的に思っている順になっていませんでした。 バグ…
前回は、BeamのEmitterのSourceとTargetをエディターのDetailsからプロパティInstanceParametersを追加して指定しましたが、今度は、BluePrint(BP)から設定してみました。 こっちのほうが実際は利用する気がします。 BeamのParticleからBPをつくり、そのBP…
ラーニング動画をみてつくったBeamパーティクルを応用して、2つのActor(二つのNote)間にBeamを発生させてみました。Emitter側で受け取るActor情報を配置したパーティクルのプロパティInstance Parametersを追加して指定するというのがわからずに手間取りま…
UE4のパーティクルのラーニング動画「Introduction to Particles in UE4」を見終わったので、気づいたことを書きます。 全体 英語がわからなくても、画面を見ながら、トレースすれば、実際に手を動かして試すことができました。 「ContentsExampleプロジェク…
パーティクルのチュートリアルは、公式ドキュメントには見当たりませんでした。 パーティクルのシステムはUE3とほぼ同じのようなので、UE3のチュートリアルのページをみながら、パーティクルを試しました。 ここのパーティクルで雪を降らせるチュートリアル…
エディタでプロパティーを変更したときの呼ばれるC++関数PostEditChangeProperty で取得できる PropertyとMemberPropertyの違いを実際に値を変更して調べてみました。 LocationもRotationもScaleもXを変更した場合はPropertyにはXが返ってくることを期待した…
公式ドキュメントのプログラミング入門のところで、覚えたことのメモです。 C++からBPの関数(イベント)をよびだすには、以下のような宣言をクラスに追加 UFUNCTION(BlueprintImplementableEvent,Category="MyF") void BPEventName();C++の関数をBPから呼び…
Characterクラスではなく、PawnをNaviMesh移動させたかったので、C++のソースを読んでAIControllerからPawnには、どんな情報を通知して、NaviMesh移動しているのか調べました。 AIController(厳密には、ビヘビアツリーのMoveToのようなTaskノード)から、Paw…
C++プロジェクトをMacからWinにもってくる場合は、VS用のソリューションファイルを生成してあげる必要があります。 プロジェクト内の*.uprojectを選択して、右クリックメニューを開くと「Generate Visual Studio project files」という項目があるのでそれを…
UE4でGPS情報取得 UE4からiOS CLLocationManagerを使って、緯度経度の値を取得してみました。 iOSのObjective-Cのapiを呼び出しているのですが、色々わかったことがあったので記します。
MacBookProで、4.6.xも4.7.xも色々試したのですが、どうしても、C++でクラスを追加しようとするとUEのメニューを表示するときに、フリーズしてプログラムが戻ってこない。 残念ながらWIN版のUE4の開発環境を復活させて、しばらくは、そっちで利用…
UE4のビヘイビアツリーを勉強しようとして、ドキュメントのクイックスタートガイドを試していたのですが、ページが無くなっていたり、バージョンが上がったせいか無くなったBPのノードがあったので、勉強と思い調べて動くようにしました。 まあ、写経するよ…
C++でカスタムのブループリントのノードを作成するのは、思った以上に簡単でした。 英文だけど、以下ページに方法がほぼ書いてあるので参考になります。 Custom Blueprint Node Creation - Epic Wiki作成のステップは以下のような感じです。 エディターで…
無料になったので久しぶりにUE4を再開しました。 今まではBPだけで、C++のコードは書いていなかったので今回はチュートリアルからやり直しました。 ドキュメントには、クラスの追加の方法はかいてあるんですが、 xcodeをつかって、自分の書いたクラスにブ…
UE4.3.0からU4.4.0にあげてPlayすると、なぜかプレイヤーの操作がきかなくなった。 カスタムのPlayerControllerのBPを開いてみると、GetControlledPawnが、エラーになっている。 理由はわからないので、一旦削除して、新しくGetControlledPawnを設定したら問…
「プレイヤーが死んだら、レベルBPに通知して、レベルBPがゲーム結果用のレベルをオープンする」を実現するのにEventDispatcherを使おうかと思い、公式のドキュメントをよんだけど、わかりずらかったので、試しにつくってみたが意外と単純だった。 イベント…
4.4(preview)にアップデートしたところ、なぜかBPのEventBeginInputTouchが効かなくなった。 原因がわからないので、とりあえず、4.3に戻した。 Previewだからしょうがないか ちなみにマイナーバージョンが頻繁にあがっているけど、4.9の次はUE5なのか?
UEはまずプレイヤーありきのシステムなのでUnityなどと考え方がちょっと違った。 たとえば、レベル中にワールドデータが存在しようがしまいが、まずは、PlayerのControllerとPawnが生成される。 メニュー用のレベルをつくっても、利用するしないに関係なくPl…
画面中のオブジェクトをタッチしたときにBPでイベントを発生させるには、 対象のオブジェクトのCollisionの設定だけではイベントが発生しませんでした。 カスタムのPlayerControllerを用意して、Defaults->MouseInterfaceのEnableTouchEvents/EnableTouchOve…
CameraActorを使ったときに、エディターの3Dビューの右下に表示されるカメラプレビューが、Perspective(透視投影)だと正しく表示されるが、Orthographic(正投影)だと正しく表示されないみたい。 カメラ視点の確認をプレビューできるので便利な機能なんだ…
個人でも限定的になら無料で利用できるPerfoce UE4のソース管理とBPの便利なDiffが使えるのでいれると便利 ただし、Macの場合、p4サーバーをターミナルからコマンドラインでインストールする必要があるので手順をメモしておきます。 P4サーバー(p4d,p4)とP…
UEのバージョンが4.3になったのでWinからMacへ開発を移行してみることにした。 エンジンは、もうMacだけ変な不具合があるということはなさそう。 ただ、バージョン管理に使っているPerforceサーバーがWinは比較的簡単だったけど、 Macは、どうもUNIXと同…
リファクタリングとして、BPライブラリ(またはアクター)中の関数やマクロを別のライブラリに移動させたいけど。 今のところ、コピペもできないし、移動もできないので、中身のノードだけ、コピーしてINとOUTは書き直している。
最初、上手くいかなかったのですがドキュメントをみたり、試したりしてレベルデータの読み込みに関していくつかわかりました。 * レベルデータの読み込みには2種類ある LoadStreamLevel レベルストリーミングを行う時に利用。読み込むレベルは、エディター…
レベルストリーミングが必要になったので、サンプルの動作とBPを確認した後に自分でテストマップ作って試しました。普通にloadしているつもりなのにfailedで読み込み失敗。多分単純なミスだと思うが、作業時間切れで原因調査と修正は明日以降に持ち越し。ち…
ノード間のリンクが増えるととても見にくい 何もしないマクロを用意して、複数の実行リンクを束ねると、スッキリとした見た目になる。 ライブラリにしておくと使いまわしもきく。
実行しているプラットホームを判断するには,GetPlatformNameで返ってくる文字列で判断すればよいらしい。 サンプルのTappyChickenのBPがかなり参考になります。 例えば、モバイルプラットホームに対応していない機能は、これで判別して別の処理に差し替えま…
点から最も近い直線上の点を求めるには、以下のようなBPのノードになります。 座標の演算をX、Y、Zを別々に計算するより、ベクトルで考えて計算した方がシンプルできれいなことが、BPだとよくわかる。
TextRenderを使って、3D空間上に文字を配置して、動かそうと思った。 テキストの文字列は動的に変更できた。 ただ、やっぱり、モバイルには対応していないようだった。(4.2.1) モバイルプレビューで起動すると何も表示されない。 残念
今のところ、UE4をWINで動かして、ゲームを作っているのですが、本当はMACで作りたいと思っています。 以前のMAC版UE4のBPは、日本語のコメントを入力するとクラッシュするし、MACで作ったプロジェクトをWINで動かそうと試すとクラッシュするしと、散々でし…