【UE4】Unreal Engine 4 初心者質問スレッド part4 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>511
一応グラボアップデート試みましたが最新でした。
目盛りは無駄に16Gあって使用率は60%くらいです。
で、unrealengineの方をアップデートしたらいよいよ反応がなくなりました。
相変わらずビルドやプレイのボタンは即反応してくれるんですが。。
古いほうが比較的動いてくれるということはやはりマシンスペックっぽい??
困った。。。 32bitだとメモリって3.2GBくらいまでしか認識しないんじゃなかった?あとはRAMディスクとかに使えるくらいで だね、メモリのほとんどが完全に寝てる
やっぱスワップで処理食ってる可能性が高い
ユーザーの言うことを聞いてる余裕がない 32bitはuint32程度のメモリしか使えないよ。 よくよく調べたら2.8GBらしい
本体だけなら1GBもあれば足りるだろうけど
ノートPCじゃGPUメモリも共用になってそうだし
そっちも合わせるときつそう なるほど!!
メモリ使用率を30パーセントにしたらunrealengineの使用率が急激に上がったのを見てわかった気がしました。。
いつかもっとハイスペックなパソコンを手に入れたらまた、挑戦してみたいと思います。
早くわかってよかった(つДT)
皆様、本当にありがとうございました。 例えOSを64bitにしてメモリはクリアしても
ノートパソコンじゃゲーミング用でもない限りGPU的にきついか 俺はHD4600のiGPUで動かしたこともあったが動かせないことは無かったぞ
実行fpsは期待できんがエディタ軽量化した上で一時的にBPやマテリアル組むくらいなら可能 たびたびすみません。
今確認しましたら、OSは64bitだったことがわかりました。ずっと32bitだと思い込んでましたが。。
私の当面の目的としては、モバイル用ゲームですので、カッコイイ派手なものはあまり考えてないのです
ただプログラミングができないのでC言語を今から覚えるよりビジュアルでできるUEにチャレンジしたいなぁ〜と思いました!
もう少しアレコレいじってみて、無理なら諦めます。
あらためまして、他に考えられる原因があればご助言をいただきたいですm(__)m 変数のデフォルト値入れるところ
定数じゃなくて値の要因となる式をそのまま記述しておけるようにならんかなぁ・・・ Intelの内蔵GPUは、UE4で作られたゲームをそこそこ遊ぶ程度の性能はあるが、UE4の開発環境をまともに動かせるほどではない。
フレームレートを絞るなど知識と小技を駆使すれば特定用途には使えるというだけ。
諦めてビデオカード装備のデスクトップPCを用意したほうがよい。GeForceでいえば1050あればとりあえず問題はない。 そろそろヒットエフェクトとか作らないといけない段階になってきた・・・
苦手です・・・すっごく・・・
こーゆーのこそストアのアセットで済ませたい・・・ ヒットエフェクトなんて
適当に線を引いて
それを伸ばしたり縮めたりすれば良くね お前の流した汗が最高の汗ット
(いい話的な意味で) 前まで普通に開けたレベルデータが、急にコンテンツブラウザに表示されなくなった。
エクスプローラでみたらumapデータはあるのにコンテンツブラウザに表示されない。
解決策分かる方いますか? 新バージョンのエディタで開いて上書き保存した、とか? >>535
してるかも。何回もしてるけど問題が起きたのは今回が初めて。
古い方のUE4を新しいのにすれば直る? >>536
フィルタは正常。フィルタかけてもやっぱり表示されない… UE4はメジャーアップデートのときに機能が追加されてアセットのフォーマットが変わることがあり、
変わったときは保存したアセットにエディタのバージョンが記録されて、新機能に未対応な古いエディタで開いてしまうことが無いようになっている。このときContent Browserから見えなくなる(ひどい仕様)。
つまり一つのプロジェクトに対して複数バージョンのエディタを混在して編集作業することはほぼできない。 一度新機能なくて良いから、バグ無しに更新されたUE4が欲しい 安定したバージョンにしてそのまま使い続ければいいだけでは 関数内でdelayと同等な機能組めないかなぁ
setTimerくらい? delayとかset timerって実用的じゃない気がするんだが
例えばディレイやタイマー中にステージクリアしちゃったらどうすんの
関数にはできないだろうけど
タイムラインで処理したほうが無難だと思うなぁ 関数はともかくマクロにはディレイ折りたためば持ち込めるな
そいつを関数に入れたら、まあたぶんエラー出るだろうな
問題起きたときの検討箇所も増えるしシンプルに解決できないことは無理にやらない方がいいと思う 1秒処理を止めて1秒間のアニメーションが終わったら次の処理へみたいなのをdelayなしでやりたい >>551
五時に起きて結果まで見てくれるあんた優しいわw 色々近い方法は見つけたけど今回はUMGアニメーションの終了を検知して次の処理へってだけだからdelayでいいがしてきた >>555
UMG のアニメーションなら終了イベントあるから
そっちのほうが安全 >>556
Event On Animation Finishedのことですか?
試してみましたがこれを使った方法が思いつきません
今回は複雑なanimationではないのでTimelineで解決しましたが今後のために知りたいです 自分の状況にあったアドバイスがほしいなら貼ればいいのに >>557
タイムラインで何を動かしているのか分からないからあれだが
UMGで作成したアニメーションの再生終了時にイベントが飛んでくるので
適切にハンドリングしてあげればよいだけだよ https://imgur.com/ojICbBY.jpg
https://imgur.com/DhxaJ9N.jpg
黒画像のopacityを1から0に変えてフェードイン・フェードアウトをするだけのアニメーションです
overlapしたらフェードアウトアニメ再生
フェードアウトアニメーションが終わったら「FadeoutToFadein」でPlayerPawnの位置を変えてフェードインのアニメーションを実行
フェードインアニメーションが終わったら「ProcessAfterFadein」でUMGをRemoveする
Delayなしに最初と同等な機能が組めましたがまだ遠回りな気がしてなりません >>560
二枚目でplayerのtick止めてるけどええんか?
その後のIsWarpFromもGoToWarpPointから持ってこられてるやつじゃないけど大丈夫?ってかそいつの役割はなんだろ
ディレイ使わない理由はワールド時間に依存するからかな?
それならやっぱりアニメーションの終了をフラグにするのがいいと思うけど 勝手にエスパーして悪いがこれはどうだろう
主人公も周りもピタリと止まったあと、目的地で立ち尽くせる
その時間はフェードのオンオフに依存
移動先はトカゲアイコンの空アクター、レベルで自由に設定できる
ttps://i.imgur.com/OZHsWoM.jpg
ttps://i.imgur.com/fWAdCZF.jpg
ttps://i.imgur.com/4dM5RNe.jpg
ttps://i.imgur.com/4wIgRAh.jpg >>563
IsWarpfromは無限ループしないようにワープポイントが持っているbool変数です https://imgur.com/Dp1wgc5.jpg
https://imgur.com/LMaUmE0.jpg
アドバイスを受けて色々変えてみました
相互に行き来できるワープギミックなので「IswarpFrom」があります
今のところTickを止めても問題ないので「TickEnabled」を使ってましたが確かに後々問題が出そうです
「SetGlobalTimeDilation」を使うと移動は出来ませんがその場で向きだけが変わってしまいます。 変な書き方で止めないでくれ
解決したのか、何を求めてるのか分からん
1秒フェードはもういいのか? >>566
すいません途中で送ってました
今の状況は
eventTickEnabledを使うとうまく行く
setGlobaltimeを使うと(画像)フェード中にその場で回転してしまう
今後の為に後者を採用したほうがいいとは思いますがあとこの問題だけが解決しません うーん見せてくれた限り、ほぼ同様に組んで検証したが普通に飛んでくれたぞ?
まだ見えてないそちら特有の部分と競合してるのかもなぁ
ちなこっちはサードパーソンサンプルのほぼデフォ状態での検証
そっちはツインスティックサンプルみたいだがそこらが関係あるかは自分で試してくれ… >>569
あ、移動はするけど飛んだ先でフェードインが終わるまで入力を受け付けないようにしたいのに方向入力だけうけつけてしまっている、という意味です。 なんだそれだけか、それならプレイヤー入力も同時に止めればいいだけのこと
timedilationの後にEnableInput、DisableInputでも追記してやるといい(たぶん) FString ObjectName = GetOwner()->GetName();
UE_LOG(LogTemp, Warning, TEXT("positiom report for %s"), *ObjectNamei);
このObjectNameはポインタ型ではないのに、何でこのような記述ができるんですか?
FString* にしたらエラーになる理由もわかりません。 FStringクラスが単項演算子*をオーバーロードしてるから >>574 >>573
レスありがとうございます。
オーバーロードされるタイミングがあまりイメージできませんが、
ざっくりいうとFStringの変数はポインタ型になるということであってますか? >>575
ちがう
単項演算子 オーバーロードで検索すればわかるけど
前方アスタリスクをつけた場合の振舞いを FString クラス内で定義している
*Hoge は必ずしもポインタの実体参照ではない >>577
何か代入時に処理されるものと勘違いしてました。
これで先に進めます。ありがとうございました。 4.18でビルドしてから、前まで出来てたのに、gradle.batが無いとかでいきなりエラー吐かれて詰まった
誰か改善案知ってますか? UMGいじってるのですが、文字の大きさや行間の幅などはブループリントで任意にコントロールできるのでしょうか?
サイズに関してはScaleboxをテキストの親にすれば大きさ変更できたのですが行間は方法が見つけられなくて。
可能ならばテキストのアピアランスのパラメーターを直接セット&ゲットしたいのです。 selectノードってステートマシンじゃ使えない? AActorのAはActorクラスのことだとわかるんですが、
UWorldのUと、FStringのFは何を指しているんですか? >>589
ありがとうございます。ずっともやもやしてたのがすっきりしました。 ue4って他のアクタを管理するためだけの描画もコリジョンも必要とせず実行優先度が高い
HogeHogeManagerとかFugaFugaObserver的なBPは作れないんでしたっけ?
そーゆーのはGameModeとかに実装してくださいってことなのかな? やっぱそうですよね
>>593
インゲーム中は必ず必要になる機能なんでGameModeにでも実装します Tickが呼び出される順序のことなら、TickGroupである程度設定できる。 コンポーネントでつくってGameStateにもたせるのもいいよ GameStateか
まだ使い分けよくわかんないな
ドキュメント的にはあれはオンライン用で、シングルだとGameModeみたいに取り敢えずただ裏で走ってるだけみたいな感じかな Androidパッケージ化でエラー吐きすぎてやになってくる パッケージ項目の企業名とプロジェクト名を入れる所で、文字入力を何回直しても、エラー吐かれまくって発狂しそうになった事はある Aという攻撃を受けたら、Bというアクションが一定時間使えなくなる的なのは何で作れば良いだろうか
具体的には敵のビームを受けたら、ジャンプが数秒出来なくしたい
ちなみにビームね当たり判定と、ダメージは作れました cooltime cooldown 制限時間といったワードで検索すれば出てくると思うゾ
tickのやつとかDelta Secondsのノードのfloat値と自分で用意したfloat値と
ブーリアンであーだーこーだやれば簡単よ レベルエディタでエリア全体をまとめて90度回転させたら
トランスフォームに少数誤差が発生してしまったので
位置と回転の少数切り捨て(上げ)をさせたかったんだが
UEのスナップって相対スナップしか出来ないのね
今後こーゆーことまたおきそうだから何とかしたいのだが
アクタのトランスフォームの少数まとめて切り落とす良い方法あります? マテリアルエディタでエラーが出たときに出るダイアログで
うっかり「今後表示させない」をやってしまったようなのですが
出なくなってしまったエラーダイアログを再度表示させる設定に戻す方法知ってる方いらっしゃいますか? Vehicleのチュートリアル触ったがカスタムの余地がないレベルでいい出来だな…
アニメーションブループリントがあそこまでカバーしてくれるとは プレーヤースタートを地上より少し上に設定してプレイボタンを押したら
デフォルトポーンは落ちてきても、プレーヤーコントローラーがプレーヤースタートの場所に留まってしまいます。
プレーヤーコントローラーをデフォルトポーンの位置に同期させるにはどうしたらいいんでしょうか? なんで同期をとる必要があるかわからないけど
GetPlayerPawnでとれるアクターにアタッチすれば位置の同期はとれるよ 処理順てきには、デフォルトポーンの、 BeginPlayでGetControllerでコントローラーとってきてアタッチの方がいいかもね でもアタッチされてないと気持ち悪いという気持ちはわからんでもない
無駄なのは同意 返信ありがとうございます。
敵戦車AIのスクリプトで、BeginPlayで
AMyTank* PlayerTank = Cast<AMyTank>(GetWorld()->GetFirstPlayerController()->GetPawn());
でプレーヤーのインスタンスを取得して、
PlayerTank->GetActorLocation();
でプレーヤーのポーンの位置を指定して、そこに弾を打つという処理をしたいのですが、
なぜかAIの戦車がプレーヤーコントローラーの位置を狙っている状態なんです。
GetPlayerPawnでポーンの場所を指定してもプレーヤーコントローラーの位置を狙ってきます。
APawn* PlayerPawn = UGameplayStatics::GetPlayerPawn(GetWorld(), 0);
PlayerPawn->GetActorLocation();
プレーヤーコントローラーではなくポーンを狙わせるにはどうしたらいいんでしょうか? ■ このスレッドは過去ログ倉庫に格納されています