x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

HUDによるスコア表示

レンガの柱を壊したらScoreが100加算されるように作ったつもりなのですが、Scoreが0のままです! どうしたらいいでしょう?? alt text

Product Version: UE 4.19
Tags:
more ▼

asked Mar 18 '18 at 03:29 PM in Japanese

avatar image

DANTE31425
95 3 10 11

(comments are locked)
10|2000 characters needed characters left

2 answers: sort voted first

そもそも、かなり効率の悪いというか、理にかなわない感じのブループリントの組み方をしています。
まず、レンガのアクタのルートはデフォルトシーンルートじゃなくて、レンガそのものにしましょう。
で、レンガのアクタをどのように壊すのかが分からないですけど、おすすめはキャラクターからLineTraceByChannelを飛ばして、ヒットしたレンガにダメージを与える方法です。
LineTraceを使ったらOutHit→BrakHitResultでHitActorかなんかのピンからCastTo[CharacterBP]→True→キャラクターで用意しておいた変数「Score」に値を代入、この方法が一番おすすめです。
レンガを壊す方法はレンガのBPの方でイベントAnyDamageみたいなイベントを使ってレンガを壊すスクリプトを組んでください。

あなたのスクリプトで起こっているエラーの原因はいくつか考えられるのですが、初心者にありがちな間違いとしては、HUDくらすの変数「Pillar」に何も代入されていないというものですね。ここにPillarを代入するには基本的にはレベルブループリントを使わないといけないですし、この方法だといろいろ融通が利かないですから、Pillarからスコアを取り出そうとするのはよした方がいいです。
あと、なぜ起こっているのかわからないエラーの原因を特定するにはPrint Stringであらゆる変数に何が入っているのかを見るといいです。デバッグの基本です。

more ▼

answered Mar 18 '18 at 03:45 PM

avatar image

creatorue
41 8 8

avatar image creatorue Mar 18 '18 at 03:51 PM

もし、レンガを壊すことのロジックになにかしがらみがあって、どうしてもスコアをレンガの方に格納しなければならないなら…それはかなり融通を利かせるのが難しいBPになるんですが…なんとかならないことはないかもしれないです。

avatar image DANTE31425 Mar 19 '18 at 10:47 AM

回答ありがとうございます!返信遅れてすいません! 一応いろいろ試行錯誤してできました!もっといい方法などアドバイスがあればお願いします! あと、レイキャストでレンガを破壊する方法を試してみたのですが、やったことのない方法だったためよくわかりませんでした・・・一応レイキャストのBPも載せておきます。 alt text

avatar image DANTE31425 Mar 19 '18 at 10:50 AM

自分で解決した時の処理 alt text

avatar image DANTE31425 Mar 19 '18 at 10:51 AM

自分で解決した時の処理 alt text

avatar image DANTE31425 Mar 19 '18 at 10:52 AM

レイキャストのBP(未解決) alt text

(comments are locked)
10|2000 characters needed characters left

alt text


あなたがどういったゲームを作っているのかわからないですけど、今後もプレイヤーが柱にぶつかるだけで柱が壊れるという設定で行くなら、LineTraceを飛ばす必要はないです。

イベントグラフの画像はDestructibleMeshのアクタ内で組んだものです。ヒットしたら、画像のようにOtherから当たった相手を抽出し、それがプレイヤーだったら、キャストノードから画像のようにスコアを加算して、自分にダメージを与えます。
プレイヤーの方は変数「Score」を持っていればそれだけで良くて、破壊に関係したBPを組む必要はありません。スコアがいくらなのかを表示するためにPrintStringだけ行っています。
alt text
alt text
プレイ画像の左上の赤い数字を見ると、これだけでちゃんとスコアが加算されていることが分かります。(Serverだとか、スコアが0のままのやつがあったりするのは無視してください。個人的に今作っているゲームの使用の関係です。)

プレイヤーが当たるだけで壊れるという設定でよかったらこれで良いのですが、例えば「プレイヤーが降った斧に当たったら壊れる」という風にしたかったらこうはいかないです。そういう場合にLineTraceなどのノードを利用するといいです。

more ▼

answered Mar 20 '18 at 07:36 AM

avatar image

creatorue
41 8 8

avatar image creatorue Mar 20 '18 at 07:52 AM

あ、あと、HUDのスコア表示の件ですが、これはつまり「変数:Score はプレイヤーポーン側で用意して、それを使って表示する」ということになります。破壊される「Pillar」の中に「Score」を用意するのはいい方法ではありません。

(comments are locked)
10|2000 characters needed characters left
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question