トップページgamedev
1002コメント357KB

【UE4】Unreal Engine 4 初心者質問スレッド part2 [無断転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2016/08/05(金) 20:17:52.44ID:pdy+ULxi
unreal engine 4の初心者質問用スレッドです。

Unreal Engine
https://www.unrealengine.com/
4 Trailer
http://www.youtube.com/watch?v=PD5cRnrMqWw
公式質問コミュニティ
https://answers.unrealengine.com/
https://answers.unrealengine.com/spaces/16/japanese.html
公式チュートリアル動画
https://www.youtube.com/playlist?list=PLZlv_N0_O1gaCL2XjKluO7N2Pmmw9pvhE
参考になる日本語ブログ
http://unrealengine.hatenablog.com/

無料3Dソフトとペイントソフト
https://www.blender.org/
http://www.gimp.org/

前スレ
【UE4】Unreal Engine 4 初心者質問スレッド part1
http://echo.2ch.net/test/read.cgi/gamedev/1434449293/



次スレは>>980が建ててください
0186名前は開発中のものです。2016/09/09(金) 13:02:04.49ID:44hJIsYW
ズブの素人から
3Dアクションゲームを作りたいと思っており
blueprintを学習しようと思ってるのですが
初心者と銘打ってもc言語をかじっていることを前提としたものばかりで習得できません
英語のように単語の意味や、文章の作り方を体系的に理解できるお勧めのサイトや、参考書を教えてください
0187名前は開発中のものです。2016/09/09(金) 14:09:38.85ID:oNjwfMdN
15個の箱アクターの配列変数用意してforeachループ
ループの内容は配列のサイズを取得してそれを最大値の乱数で
インデックスを指定して箱をスポーンさせたらそのまま配列からRemoveかしら
0188名前は開発中のものです。2016/09/09(金) 14:11:59.39ID:oNjwfMdN
>>186
自分は>>1で勉強してなんとかなった
0189名前は開発中のものです。2016/09/09(金) 14:15:46.98ID:oNjwfMdN
foreachちゃう、タダのForLoop15回じゃないとダメだった
0190名前は開発中のものです。2016/09/09(金) 14:36:07.26ID:hP+uBLxC
>>185
どんなもんか作ってみてたら>>187さんが解決してくれてたでござる

一応参考までに置いときます
ほとんど>>187さんと同じなのでまずチャレンジしてみて、それで躓いたら見てください
http://25.gigafile.nu/0916-eafcd853ccc45c29cbd44eb4156528ff0

(RandomStream使える点で>>187さんのほうが使い勝手いいよなぁ・・・)

>>186
Youtubeの公式動画かな
本がいいならUnrealEngine4で極めるゲーム開発
0191名前は開発中のものです。2016/09/09(金) 15:45:53.09ID:XLJGHKZf
>>187さん >>190さん
ありがとうございます!
素人ですいませんが190さんのファイルを見る方法がわからないのですが・・・。
ほんと素人質問でごめんなさい。
0192名前は開発中のものです。2016/09/09(金) 16:05:02.93ID:hP+uBLxC
>>191
おっと失礼、解凍してプロジェクトおいているフォルダの中のContentってフォルダの中にそのまま入れるだけでオーケー
0193名前は開発中のものです。2016/09/09(金) 16:20:27.05ID:XLJGHKZf
>>192
あれれ、すいません。見れない・・・。
バージョンですかね。当方4.12.5なんですが。
0194名前は開発中のものです。2016/09/09(金) 16:54:48.14ID:hP+uBLxC
>>193
確かに4.13で作ってるから4.12じゃ開けないようだわ
それに加えて参照が切れてるところあったから上げ直しました
http://9.gigafile.nu/0916-j4a8eadfaf0b5553a75f6661869536cbb

4.13導入できない環境なら4.12版も作るかも
0195名前は開発中のものです。2016/09/09(金) 17:08:51.23ID:4ZV1tcBz
参照切れるなら迂闊にアップデートできないじゃないか…
0196名前は開発中のものです。2016/09/09(金) 18:06:46.95ID:XLJGHKZf
>>194
見れました!めちゃくちゃご丁寧にありがとうございます!
やってみます!
0197名前は開発中のものです。2016/09/09(金) 22:28:08.10ID:u0ysAKya
>>194氏の例がすごすぎてなんも言えねえ!参考になります!
あ、でも子はアクタじゃなくてスタティックメッシュでもいいんじゃないかな…(微かな抵抗)
0198名前は開発中のものです。2016/09/09(金) 23:22:05.24ID:hP+uBLxC
>>197
た、たしかに
作ってるとほんと視野狭くなるんだよなぁ
0199名前は開発中のものです。2016/09/10(土) 11:59:58.00ID:eLlQJw7o
ぷちコン優勝してお願いすれば
バグ修正してもらえるのか

おぎまふ @ogimafu
UE4ドキュメントの日本語検索バグはほんとどうにかしてほしい…。

Unreal Engine Japan @UnrealEngineJP
ご指摘ありがとうございました。こちら修正いたしましたのでご確認いただければと思います。 twitter.com/ogimafu/status…
0200名前は開発中のものです。2016/09/10(土) 12:11:04.91ID:TOgQH/Gi
>>199
いくらなんでもハードル高すぎw
0201sage2016/09/12(月) 09:54:10.31ID:z78U1vS2
>>173
言語を英語にすれば、ちゃんとアセット検索できるよ
0202名前は開発中のものです。2016/09/12(月) 14:08:29.38ID:fEmJ5FEg
日本語ランチャでも検索ヒットするようになってるよね今は
0203名前は開発中のものです。2016/09/13(火) 11:08:44.66ID:hNuC4H9l
頼り切りで申し訳ないのですが・・・。

クリックした回数をクラスBPで変数に格納してウィジェットに表示したいのです。
キャストなるものを試してみたのですが、いまいち意味が分かっておらずできません。
どうかお助けください・・・。
http://imgur.com/yWv7gfc.jpg
0204名前は開発中のものです。2016/09/13(火) 12:03:01.37ID:7rOFQLm5
>>203
PlayWidget変数の種類がWidgetComponentだということから考えると・・・
たぶんCreateWidgetとかAddViewPortとか使っていないんじゃないかなぁ

https://docs.unrealengine.com/latest/JPN/Engine/UMG/UserGuide/CreatingWidgets/index.html
0205名前は開発中のものです。2016/09/13(火) 12:06:32.67ID:hNuC4H9l
ウィジェットはレベルBPでこんな感じで出してます。
変数の種類はどれがいいの変わらなくて、いろいろ試してみたんですが・・・。

http://imgur.com/a/dFuyX.jpg
0206名前は開発中のものです。2016/09/13(火) 12:26:26.38ID:7rOFQLm5
>>205
作るべきウィジェットの変数は「PlayWidgetBlueprintウィジェットを作成」のReturnValueを変数化したものだよ
上のURLの最初の画像の「MainMenuWidget」と同じようなつなぎ方になるね
具体的な種類はUserWidgetだったかな
0207名前は開発中のものです。2016/09/13(火) 12:40:08.60ID:7TXI3lG9
そういうのってウィジェット側の表示テキストのバインド関数がキャストするもんだと思ってた
そのやり方ならボックスやレベルのBPでは何もする必要無いし
0208名前は開発中のものです。2016/09/13(火) 13:22:14.94ID:hNuC4H9l
ウィジェットはレベルBPで出しているのですが
そこで変数化した物をどのようにしてクラスBPでうけとればよいのでしょうか?
0209名前は開発中のものです。2016/09/13(火) 13:48:46.81ID:7TXI3lG9
レベルに保存してある変数を他のBPで利用する方法…かな
確かにわからん、どうするんだろう
0210名前は開発中のものです。2016/09/13(火) 14:26:11.08ID:7rOFQLm5
レベルブループリントの変数を暮らすブループリントに送る方法
・ゲームモードとかゲームステートなどを経由させる
・GetStreamingLevelを対象にブループリントインターフェイスを使う
みたいな感じで方法はあるけど今回はわざわざコレしなくてもいいと思うわ

イベントディスパッチャーを使ってレベルブループリントにタッチ回数増えたよって通知して
それからレベルブループリントからウィジェットに通知したほうが簡単
その場合はウィジェットのバインド関数必要なくなるからちょっと軽くなるかな

まぁ、いろいろ方法はあるだろうけど>>207氏の方法が一番シンプルで良いと思うわ
0211名前は開発中のものです。2016/09/13(火) 14:32:48.31ID:7TXI3lG9
独立してるはずのBPが、特定のレベルにお伺いを立てるってことは
実質そのレベル専用のBPになっちゃうってことで、それは結局レベルBPに内包すべきものなんかなって理屈が俺の脳内でできた
0212名前は開発中のものです。2016/09/13(火) 14:40:51.42ID:7rOFQLm5
>>211
これが真理っぽいな
0213名前は開発中のものです。2016/09/13(火) 15:21:07.10ID:hNuC4H9l
すいません・・・頭が爆発しそうなんですが・・・
ウィジェットのバインドした関数にIntegerのインプットをつけてボックスのBPで受け取ろうとしたら
ウィジェットの方にエラーが出て
イベントディスパッチャーは下の画像のように作ってみたんですが、よくわからなくなってしまいました。

http://imgur.com/a/29wF9.jpg
0214名前は開発中のものです。2016/09/13(火) 15:22:27.61ID:hNuC4H9l
すいません、リンクが間違ってました
http://imgur.com/QGJj9Me.jpg
0215名前は開発中のものです。2016/09/13(火) 21:31:28.60ID:7rOFQLm5
>>214
まずはターゲットにイベントの呼び出し元のリファレンスをつなげてないね
うーん、僕自身も偉そうなこと言えないんだけど、たぶんもう一度基本的な機能をおさらいしたほうが幸せになれると思う

>>203はまだ解決していない感じなのかな
とりあえず自分ならどう作るかってのを一切自重せず作ってみた
http://16.gigafile.nu/0920-f1546503f927cbe0b8b174773ca8391b1
0216名前は開発中のものです。2016/09/13(火) 21:33:25.10ID:7rOFQLm5
あ、4.13で作ってます
0217名前は開発中のものです。2016/09/13(火) 21:37:37.55ID:XutTMWc5
つーかウィジェットの変数変えるだけで良くないですか
キャストの必要あるの?
0218名前は開発中のものです。2016/09/13(火) 22:37:25.56ID:SZxCNxdh
>>215
>>203じゃないし本題と関連薄いけどこの例で列挙型とSelectを初めて知りました
今までInt型とSwitchで見づらいの作ってたから感動しましたありがとう
0219名前は開発中のものです。2016/09/14(水) 00:41:35.44ID:NNupjGxe
Tick徹底的に削るマンの思考好き
0220名前は開発中のものです。2016/09/14(水) 01:03:50.03ID:dnz3QkHN
やってみた。BlueprintはCubeのみ。
http://4.gigafile.nu/0921-kdd03f98c515877bfdfead1b5530757f5
0221名前は開発中のものです。2016/09/14(水) 01:20:57.49ID:NNupjGxe
>>220
数字のバインドどうやったのかよければ教えてもらえます?
0222名前は開発中のものです。2016/09/14(水) 01:51:03.46ID:ae2J9nPl
>>204
の言うとおり、実際に呼び出したウィジェットを変数に格納してないぽい
プレイウィジェットの変数地が空になってるし。
0223名前は開発中のものです。2016/09/14(水) 01:58:36.00ID:dnz3QkHN
>>221
WidgetにCubeの変数が作ってあって、Bindボタンを押すとそのオブジェクトの
変数の一覧も出てそこから選択できる。
つーかWidgetも変数一つだけど微妙にBlueprint使ってることになるから
>>220の"Cubeのみ"ってのは訂正。
0224名前は開発中のものです。2016/09/14(水) 02:05:45.51ID:5ueUV5Ml
オブジェクト内の変数を指定できたんだ
あ、ウィジェットとプレイヤーステートの連携周りがすごくシンプルにできそう・・・
これは便利、横からですがありがとうございます
0225名前は開発中のものです。2016/09/14(水) 02:12:05.20ID:dnz3QkHN
もしWidgetComponent使ってるならGetUserWidgetObjectで中身を取り出してから
キャストが必要だけどそれだとそのコンポーネントの親のActorで処理するはずだから
レベルで作ってるとなるとやっぱり普通のWidgetだよなあ。
0226名前は開発中のものです。2016/09/14(水) 11:15:17.19ID:GzbIlgGp
プロジェクト内でインベントリのウィジェットを作成し、
アイテムUSEボタンを押したらそのアイテムの効果が発動するようにしたくて
USEボタンOnClickedからBPインターフェースメッセージを繋げて、
使用したアイテムBP内にあるイベントインターフェースに伝達するように繋げたのですが、
メッセージノードを通過しても伝達処理がされません。
解決方法を教えてください。
0227名前は開発中のものです。2016/09/14(水) 12:05:22.01ID:PDcmMOsl
インターフェイスの呼び出しはブロードキャストされるわけではないから宛先を指定しないと届かないよ
どう繋げてるか見てみないとわからないけど呼び出してるイベントの宛先がselfになってるんじゃない?
0228名前は開発中のものです。2016/09/14(水) 12:17:07.93ID:5ueUV5Ml
>>226
チェックリスト
□アイテムBPにて当該BPインターフェイスを実装した
□メッセージノードのターゲットにアイテムBPのリファレンスをつなげた

スクショあるともうちょいわかるかも
0229名前は開発中のものです。2016/09/14(水) 12:31:47.98ID:GzbIlgGp
メッセージにはアクターリファレンスを繋げてて、
マップ内に配置しているアイテムはチャイルドbpなのが問題ですかね?
0230名前は開発中のものです。2016/09/14(水) 13:01:24.94ID:kcxS7mP/
203です。
で、で、で、出来ました・・・。
もはや自分で作ったとは言えないレベルのものになってしまいましたが
皆様には大感謝です。本当にありがとうございます。
0231名前は開発中のものです。2016/09/14(水) 13:33:49.19ID:gc174NwS
>>229
そのアクターにはメッセージきてるの?
きてるなら子アクターにメッセージだす必要があるんじゃない
0232名前は開発中のものです。2016/09/14(水) 13:44:37.19ID:GzbIlgGp
メッセージきてないですね
0233名前は開発中のものです。2016/09/14(水) 14:54:59.70ID:NNupjGxe
>>223
試したらできました!ありがとうございます
複数の変数が一致した時だけひっそり沸いてくるとか隠し要素みたいで面白いな
0234名前は開発中のものです。2016/09/14(水) 19:07:59.79ID:5ueUV5Ml
>>232
繋げているアクタリファレンスとマップにおいてあるアクタが別物って気がする
BPインターフェイスのターゲットに繋げているアクタリファレンスはどうやって取得したものなの?
0235名前は開発中のものです。2016/09/14(水) 19:12:59.18ID:ae2J9nPl
状況がよくわからんが
子アクター使ってるならchildなんたらって命令を使わないとアクセスできないよ
0236名前は開発中のものです。2016/09/14(水) 19:22:49.43ID:5ueUV5Ml
手軽に使えるチャット欲しいな
たぶんほとんどの質問は10分かからず解決できそう
0237名前は開発中のものです。2016/09/14(水) 20:02:21.48ID:GzbIlgGp
インターフェースメッセージ周りの繋ぎ方は公式プロジェクトの「InventoryUIwithUMG」
と同じです。
0238名前は開発中のものです。2016/09/14(水) 20:39:36.41ID:5ueUV5Ml
>>237
InventoryUIWithUMGにおけるCanPickUpブループリントのPickUpItemEventも同じように作ってる?
そこのInventory配列へ要素を追加するあたりとかが一番あやしいのかなぁ
考えられる原因が多すぎる・・・
でも正直スクショなりプロジェクトなり無いと原因特定時間かかりそうなんでできる範囲で公開してもらえませんか?
0239名前は開発中のものです。2016/09/14(水) 21:15:57.48ID:GzbIlgGp
http://iup.2ch-library.com/i/i1710314-1473855184.png
http://iup.2ch-library.com/i/i1710313-1473855184.png
http://iup.2ch-library.com/i/i1710312-1473855184.png
http://iup.2ch-library.com/i/i1710315-1473855184.png
とりあえず関係してそうなものです。
0240名前は開発中のものです。2016/09/14(水) 21:38:34.84ID:5ueUV5Ml
>>239
僕の見落としがなかったら原因はウィジェットのEventConstruct
解決方法はインベントリ内容に変化があるたびにClearChildren以下の処理を走らせるようにする
InventoryUIWithUMGのGameHUDウィジェットにおけるRefreshInventoryが必要ってことね

ウィジェットのEventConstructってAddViewPortする度に処理が走るわけじゃなくて
CreateWidgetした時に一度だけ実行されるので
ゲームプレイ中にキャラクターブループリント内のBagItem配列が変更されても、その変更内容が伝わっていない

・・・ような気がする
0241名前は開発中のものです。2016/09/14(水) 22:25:10.94ID:GzbIlgGp
RefreshInventoryのほぼ同じものをそのまま作って
最後のForEachLoopからClearChildに繋げる形でいいですかね?
0242名前は開発中のものです。2016/09/14(水) 22:42:21.29ID:5ueUV5Ml
>>241
InventoryUIWithUMGと仕様が違うようなのでRefreshInventoryと同じようにする必要はないかと
RefreshInventoryの機能が上記アップロード画像の機能と重複するのではないでしょうか?
それと、最後のForEachLoopからClearChildrenに繋げると無限ループになってしまうような・・・

難しく考えないでとりあえず原因箇所特定したいなら
EventTickをClearChildrenに繋げてみて動くかどうか確かめてみるのをオススメします

それでうまく行ったらCustomEvent作ってClearChildrenに繋げる
アイテム取捨、アイテム使用などインベントリ内容が変わる時にそのCustomEventを実行させるといいと思います
0243名前は開発中のものです。2016/09/14(水) 23:32:56.17ID:GzbIlgGp
EventTickで動いたので、CustomEventを繋げてみたのですが
相変わらずメッセージをスルーして、インベントリから使用アイテムが消える処理だけされます。
0244名前は開発中のものです。2016/09/14(水) 23:41:12.03ID:5ueUV5Ml
>>243
>EventTickで動いたので
動いたっていうのはアイテム効果発動までいけたってこと・・・ではなさそうだなぁ
じゃあ他に原因あるのかなぁ

プロジェクトかuassetアップできないです?
0245名前は開発中のものです。2016/09/15(木) 00:01:41.83ID:CoqRj2hG
http://24.gigafile.nu/0922-f12598a57227ac008d2237f4dfdca594
関係してそうなアセットです
0246名前は開発中のものです。2016/09/15(木) 01:02:39.62ID:6T9VYaA2
アセット間の依存関係切れててノードもいろいろ切れててApple開けばエンジン落ちるし眠いし心折れた
わるい、明日作るわ
0247名前は開発中のものです。2016/09/15(木) 06:34:41.04ID:6T9VYaA2
>>245
いじってみました
http://9.gigafile.nu/0922-lae264017452b09dbba6ac5569e470509
何が原因かわからずにいろいろ弄くってしまいました、申し訳ない

原因が見つかればコメントなどで補足しようと思ったのですが、これだっていう原因がつかめませんでした
参照しているアセットがなかったりで色々想像しながら見てたのですが
可能性としてあるのは2つ

スクリーンショットの一枚目のBagItemInventoryはBagItemStackingItemsじゃないかなという点
これに関しては開けなかったブループリントとかに理由がありそうなんで、なんとも言えないです。

もう一つの可能性はItemData構造体のUseItemにチャイルドブループリントのSelfを持たせていない点
コレに関してはAppleブループリントがエラーで開けなかったのでなんとも言えないのですが、親ブループリントでそのような形跡がなかったので怪しいなと思いました

とりあえずブループリントインターフェイスの部分はほとんどいじらなくても上手く動作したので、問題はウィジェットの方にあると思います
0248名前は開発中のものです。2016/09/15(木) 08:57:24.48ID:NMSRRMa0
ComponentHitEventで判定取ろうとしてるんですけど、正常に動作したCharacterを作れたからそれをコピーして2P3P4P分と作ったんだけど、それらだとEventが通らないんです。設定の面で注意しておくところとかありますかね?
0249名前は開発中のものです。2016/09/15(木) 09:24:29.92ID:7KXkbAhN
>>248
コピーした後何も変えてないのに複製されたクラスだとイベントが発生しないってこと?
Hit判定取ってるクラスでキャストに失敗してるとか
似た仕様を持つならコピーじゃなくて子ブループリントクラスを作成でやるのはどうでしょう
0250名前は開発中のものです。2016/09/15(木) 10:54:32.91ID:CoqRj2hG
>>247
わざわざ時間かけて頂いてありがとうございます。
0251名前は開発中のものです。2016/09/15(木) 11:33:12.59ID:NMSRRMa0
>>249
カプセルコンポーネントの判定が取れてないので、カプセル大きくしたりもしてみたのですが、何も判定出来ないので何がいけないのか…キャスト等をする以前の問題かもしれません
0252名前は開発中のものです。2016/09/15(木) 12:16:47.31ID:R98REjB3
教えてください。
ヒストリアさんの以下のサイトを参考に動画撮影をしようとしたのですが
2の方法が何も保存されません。フォルダも作られません。

http://historia.co.jp/archives/1036

なぜなんでしょう・・・。
ちなみにスクリーンショットは保存できました。
GPUはQuadroです。

宜しくお願いします。
0253名前は開発中のものです。2016/09/15(木) 12:26:24.41ID:6T9VYaA2
>>250
力になれ無かったようで申し訳ない
原因わかったら教えてもらえると嬉しいです

>>251
キャラクターのカプセルコンポーネントに「何か」がHitした時にイベントを発行したいということですね
その「何か」は具体的にどのようなものでしょうか?
例えばその「何か」がSimulate Pysicsを有効にしたアクタならば
カプセルコンポーネントのコリジョン内のSimulateGeneratesHitEventにチェックを入れないと当たり判定が取れません
0254名前は開発中のものです。2016/09/15(木) 12:34:29.72ID:6T9VYaA2
>>252
こちらの環境ではExecuteConsoleCommandのSpecificPlayerにGetPlayerControllerを接続してみたら録画されました
0255名前は開発中のものです。2016/09/15(木) 12:41:20.35ID:R98REjB3
>>254さん
返答ありがとうございます。
やってみたんですが出来ませんでした・・・。
0256名前は開発中のものです。2016/09/15(木) 12:44:13.53ID:NMSRRMa0
>>253
SimulatePhysicオフのCollisionPresetはPawnのスタティックメッシュが元のBPです。GenerateOverlapEventをオンにしてBeginOverlapも試したところ、同じ結果でした
0257名前は開発中のものです。2016/09/15(木) 12:51:42.11ID:jkrcGX73
録画はしたことないけど今はマチネよりシーケンサーってのがナウいんじゃないっけ
0258名前は開発中のものです。2016/09/15(木) 13:01:19.26ID:6T9VYaA2
>>255
それから何度か試行してみたのですが
LevelBlueprintに当該ExecuteConsoleCommandを置いている場合 GetPlayerControllerを接続しないと撮影されない
プレイヤーキャラクターにExecuteConsoleCommandを置いている場合 GetPlayerContorollerを接続しなくても撮影される
どちらの場合もたまに撮影されないときもあった

ちなみにGTX760使ってます
環境ですかねぇ
力になれず申し訳ないです・・・
0259名前は開発中のものです。2016/09/15(木) 13:07:51.87ID:R98REjB3
>>258さん
いろいろと試していただいてありがとうございました。
シーケンサーなるものも試してみようと思います。
0260名前は開発中のものです。2016/09/15(木) 13:09:13.22ID:6T9VYaA2
>>256
何度も確認するようで申し訳ないのですが

当たる方 キャラクターのカプセルコンポーネント CollisionPresetはPawn
当てる方 CollisionPresetはPawnのアクタ

でいいでしょうか?
0261名前は開発中のものです。2016/09/15(木) 14:15:42.10ID:CoqRj2hG
>>247
さっき思い出したんですが
「Create a Crafting & inventory system in Unreal Engine 4」という動画を見ながら
作ったので、動画内でUSEボタンのところだけはPrintStringで終わってました。
なのでUSEアクションはインターフェース以外でも良いので、別のいい方法を教えてもらえると有難いです。
0262名前は開発中のものです。2016/09/15(木) 14:34:36.08ID:6T9VYaA2
>>261
動画のどの部分か分からないからなんとも言えないのですが
インターフェイスを使わない方法としては
1.BagItemData構造体のUseItemの型をBagItemMasterにする
2.BagItemMasterのブループリントのConstructionScriptにてItemData変数(型はBagItemData)のItemDataUseItemにSelfをセットする
3.BagItemMasterのブループリントにCustomEvent(ここでは例としてTestUseItemと名づけます)を作る
4.InventoryにてクリックしたアイテムのItemDataのUseItemからノードを伸ばしてTestUseItemを呼び出します
5.AppleにてTestUseItemをオーバーライドして「UseItem!」とでもPrintStringします

仮にPrintstringされなかったのなら4で間違ったアイテムの指定をしていることなんだと思います
0263名前は開発中のものです。2016/09/15(木) 15:13:03.75ID:CoqRj2hG
>>262
教えていただいた方法を試しましたが、エラーがでました
アイテムデータテキスト一式も表示されなくなりました
0264名前は開発中のものです。2016/09/15(木) 15:23:25.88ID:6T9VYaA2
>>263
どんなエラーでしょうか?
テキストデータが表示されなくなったのはConstructionScriptでItemData変数にセットしてないだけなので今は置いておいていいでしょう。
0265名前は開発中のものです。2016/09/15(木) 15:24:47.41ID:6T9VYaA2
もう一個確認
アイテムを取得した後に、そのアイテムをデストロイしてませんか?
0266名前は開発中のものです。2016/09/15(木) 15:25:05.57ID:NMSRRMa0
>>260
当たる方(プレイヤー)は、カプセルコンポーネントのCollisionPresetはBlockAllでした!他はその通りです。
0267名前は開発中のものです。2016/09/15(木) 15:39:42.71ID:6T9VYaA2
>>266
うーん、なんでだろ

また基本的な確認になって申し訳ないのですが
http://imgur.com/a/APLve
キャラクターブループリントのOnComponentHitの対象が↑みたいな感じでCapluelComponentになっている確認してもらえますか?

あと、ただEventHitでもHitを感知しませんか?
0268名前は開発中のものです。2016/09/15(木) 15:46:09.04ID:CoqRj2hG
>>264
エラー画像
http://iup.2ch-library.com/i/i1710713-1473921752.png
http://iup.2ch-library.com/i/i1710715-1473921752.png
http://iup.2ch-library.com/i/i1710714-1473921752.png
>>265
アクタートレイス処理の最後にデストロイノードが入ってますね
0269名前は開発中のものです。2016/09/15(木) 16:03:49.92ID:6T9VYaA2
>>268
そこだったかー

アクタートレイス処理ってことはライントレースしてあたったアイテムを取得って感じですかね?
デストロイしちゃうとアクタのリファレンスが消えてしまいます
つまりレベル上に無いものを呼びだそうとしてしまっているわけです

とりあえずデストロイノードを消して代わりにSetActorHiddenInGameを置いてみましょう
NewHiddenにはチェックを入れてください

エラーに関してはセーブとかコンパイルとか再起動して、各種ブループリントやウィジェットにおいてあるBagItemData構造体をリフレッシュすれば治ります
0270名前は開発中のものです。2016/09/15(木) 16:18:17.95ID:CoqRj2hG
>>269
いけたみたいです。ありがとうございます。
ただ、変更を加えたことによってDROPアクションをした際にアイテムがスポーンしなくなってしまいました。
http://iup.2ch-library.com/i/i1710728-1473923640.png
この配列のどこを変えないといけないかわかりますか?
あと、ConstructionScriptにセットするアイテムデータはマスター内で新規にVariablesを作ってセットすればいいんですか?
0271名前は開発中のものです。2016/09/15(木) 16:28:27.62ID:6T9VYaA2
>>270
たぶんBagItemDataのClassがセットされてないんじゃないかな

>あと、ConstructionScriptにセットするアイテムデータはマスター内で新規にVariablesを作ってセットすればいいんですか?
これはその通り
チャイルドブループリントのClassDefaultでそのVariablesを変更すればいい

話は変わるけどInventoryUIwithUMGのチュートリアルってほんと勉強になるんだけど
アイテムをデストロイしないでその場に置いておく方法ってレベル遷移との関係でどうなんだろうなぁって思ってた
仮にアイテムをデストロイする方法だとアイテムを使用したときの処理をどこに書くかが問題になるんだよなぁ
キャラクターブループリントやPlayerStateやGameModeに書いておくとか
アイテム使用処理専用のブループリント作ってEventBeginPlay後にConstructObjectするとかいくつか方法はあるんだろうけど
みんなはどうしてるんだろ
0272名前は開発中のものです。2016/09/15(木) 17:12:30.48ID:CoqRj2hG
>>271
ありがとうございます!ようやくできました。
最後に一つ質問なんですが、インベントリに最大所持重量を設定する方法を教えてもらえますか?
0273名前は開発中のものです。2016/09/15(木) 18:42:51.20ID:6T9VYaA2
>>272
BagItem構造体にItemWeight変数(型はFloat)を追加します
http://imgur.com/a/CbA40
Inventoryの最後のForEachLoopですべての所持アイテムの合計重量を計算します
BagItemMasterでアイテム追加する前にInventoryから合計所持重量を取得。
今から拾おうとしているアイテムと合計所持重量の和がMaxWeight変数以上ならアイテムを追加しないようにします
0274名前は開発中のものです。2016/09/15(木) 23:00:06.55ID:7KXkbAhN
AddActorWorldRotationってバグってるんかーい
ノードにマウスオーバーする度にクラッシュするからアセットのデータが破損したのかと思った


>>271
アイテムの処理はアイテムブループリントに収めたいのであれば、
取得した時にデストロイして使う時に見えない状態でスポーンさせて使用処理だけさせる
っていうのはどうでしょうか
0275名前は開発中のものです。2016/09/15(木) 23:59:13.05ID:6T9VYaA2
>>274
ほんと息の長いバグだよな、それw

あー、なるほど。そういう方法もありますね
スポーン、イベント呼び出し、デストロイ
この3つだけで実装できるから実用的ですね
0276名前は開発中のものです。2016/09/16(金) 03:26:48.59ID:6E89zCYu
誰か助けてくだされ・・・
コンストラクションスクリプトで
child actor Componentを追加。
事前に親ブループリント内の変数を設定しておくことで
子ブループリント内のスタティックメッシュの色に反映されるようにしたいんですが
全然やり方がわからない…
一応 子ブループリント内で
get parent component →castとか
get owner→castで
親ブループリント内の変数を取り出そうと努力したんですが一向にうまく行きません
0277名前は開発中のものです。2016/09/16(金) 03:32:17.37ID:6E89zCYu
追記
子コンストラクションスクリプト内で add call to parent Functionというノードを呼び出せることは分かりましたが
ついてくるのは実行ノードのみで、これと関係あるかどうかがわかりません。
0278名前は開発中のものです。2016/09/16(金) 05:23:59.66ID:6E89zCYu
たった今自己解決しました。子ブループリント内のクラス設定→クラスオプションで
親クラスを親ブループリントに設定して
子ブループリント内でget owner→castを使えば親の数値がちゃんと参照できます。
スレ汚し失礼しました。
0279名前は開発中のものです。2016/09/16(金) 09:03:42.48ID:cLGtFVlC
>>274
見えない状態でスポーンってどのノードを使えばいいんですか?
0280名前は開発中のものです。2016/09/16(金) 23:11:23.77ID:bIlFKZl9
>>279
スポーンアクターの直後にSet Actor Hidden In Gameというノードを繋げてチェックボックスをオンにすれば見えなくなります
もしくはクラスのデフォルトでActor Hidden In Gameの項目オンにすれば普通に配置しても見えません
0281名前は開発中のものです。2016/09/17(土) 08:14:13.81ID:3wbjta3D
>>280
アイテム使用時のみスポーンさせたい場合の
SpawnLocationはどういう組み方をすればいいんですか?
0282名前は開発中のものです。2016/09/17(土) 08:42:29.23ID:sMdoL25B
>>281
MakeTransformかMakeVectorで好きな座標にスポーン出来ます
雑ですが地中とか絶対ゲームに影響しない場所にスポーンさせればHiddenさせる必要もないかも知れません
スポーンと同時にコリジョンやエフェクトも切れるようにしておけば場所はどこでもよくなると思います
0283名前は開発中のものです。2016/09/17(土) 16:37:10.03ID:3wbjta3D
>>282
取得したときにデストロイする設定にすると
http://iup.2ch-library.com/i/i1711828-1474096886.png
このエラーが出ます。

それから取得した時にデストロイではなく隠す方法にして
http://iup.2ch-library.com/i/i1711830-1474096984.png
この組み方にすると
http://iup.2ch-library.com/i/i1711835-1474097534.png
このエラーが出ます。
原因わかりますか?

因みにアクターを取得するときに隠す設定にすると、
同じ所で取得ボタンを押し続けた場合、無限にアイテムが手に入ってしまいます。
0284名前は開発中のものです。2016/09/17(土) 17:26:44.81ID:9zr49/H3
なんか臭うな
0285名前は開発中のものです。2016/09/17(土) 18:18:52.90ID:yhi7zG62
>>278
自己解決おめでとう!
一応参考までに別のやり方として親ブループリントから直接子ブループリントにアクセスして色(スクショではマテリアル)を変えることもできますよ
http://imgur.com/a/lczuq

>>283
>取得した時にデストロイする場合
デストロイの後にアイテムを使ったときの処理を書いていませんか?
そのアイテムで行うすべての処理が終わった後にデストロイしてはどうでしょうか?

>デストロイするのではなく隠す方法にしたとき
隠す方法なのにスポーンする理由、その処理をチャイルドブループリントに書いている理由がちょっとわからないです
原因としては、UseItemの時に呼び出そうとしているAppleのインスタンスはレベル上に存在しないというのが考えられます

>隠す設定にすると
ただ見えなくしているだけなのでアクタは存在し続けます
InventoryUIwithUMGでは隠した後にコリジョンを無くして、コリジョンがない場合は取得できないようにしています
もう一度InventoryUIwithUMGを見てみることをおすすめします

あと前提としてクラスとインスタンスの違いを調べたり
インベントリのYoutubeのチュートリアルをアレンジせずに、まずまるごと再現してみてはどうでしょうか
誰でもいきなり応用しようとすると躓いてしまいます

>>284
まぁまぁ、例の彼みたくマルチしているわけでも暴れているわけでもないしこれぐらいいいだろw
■ このスレッドは過去ログ倉庫に格納されています