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"

[Closed] (動画チュートリアル関連) 変数名が同じなのに同じ値にならないのはなぜ?

動画チュートリアル『3rd Person Game with Blueprints - 18 - Animation Blueprint Punching Setup』では、キャラクターのブループリントとアニメーションのためのブループリントで同じ名前の変数 IsPunching? を使っています。同じ変数ならば、わざわざ Cast を使わなくても、アニメーション ブループリントの IsPunching? 変数は、キャラクターブループリントの IsPunching? 変数と同じ値をもつのではないでしょうか?


▶関連する動画チュートリアル 3rd Person Game with Blueprints - 18 - Animation Blueprint Punching Setup

Product Version: Not Selected
samevar_0.png (1.4 MB)
more ▼

asked Sep 09 '16 at 03:35 AM in Japanese

avatar image

ymars STAFF
243 42 54 73

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

The question has been closed Sep 09 '16 at 03:43 AM by ymars for the following reason:

The question is answered, right answer was accepted

1 answer: sort voted first

ブループリントが異なれば、同じ名前の変数でも異なる変数という扱いになります。言い方を換えれば、 変数はブループリント単位で管理される ため、ブループリントが異なれば、たとえ同じ名前の変数であっても「同じ変数」ということにはなりません。別の変数です。一方の変数の値を変更しても、他方の同名の変数の値が変わることもありません。

ですから、その動画チュートリアルでは、キャラクターブループリントの IsPunching? の値を得るために、Cast でキャラクターブループリントであるかどうかを判定してから、キャラクターブループリントの IsPunching? 変数を利用しています。


まず、コーンのブループリントを作り、ゲームが開始すると (Event BeginPlay が発動する) SameName という変数に -888 をセット (代入) してから SameName の値を表示する (当然 -888 が表示される) ブループリントを組んでおきます。


他方、キャラクターのブループリントでは、キーボードの F を押すと、同名の変数 SameName の値を表示するようにします。こちらの SameName には初期値として 1234 を入れておきます。


ゲームを実行すると、次のように、まず Event BeginPlay が発動して、-888 (コーンの方の SameName 変数の値) が表示され、その後に F を押すと、1234 (キャラクターの方の SameName 変数の値) が表示されました。


このように、いくらコーンの方の SameName 変数に値を新たにセットしても、キャラクターの方の SameName 変数には何ら影響がないことがわかりました。

逆に、影響を与えたい場合は、動画チュートリアルのように Cast を使ってコーンのブループリントで次のようなグラフを組むことができます。


上では、Event Hit すると (このコーンに何かがぶつかると)、そのぶつかったものがキャラクターかどうかを Cast で判定して、もしそうならば、As ピンを使ってキャラクターの SameName 変数に 4649 という値をセットしています。

Play をクリックして、コーンのところまで歩いて行き、ぶつかり、F キーを押すと、今度は 1234 ではなく、4649 が表示されました。つまり、キャラクターの SameName 変数の値は、コーンのブループリントによって書き換えられたことになります。


このように変数はブループリント単位で管理されることによって、気軽に変更できないようにしており、間違って値を変更できないようになっています。変更したりするには、それなりの手続き (Cast を使って etc) が必要となります。

▶関連する UE4 AnswerHub スレッド (動画チュートリアル関連) コンパイルすると関数でエラーになるのはなぜ?

▶関連する UE4 AnswerHub スレッド

samevar_1.png (143.2 kB)
samevar_2.png (141.5 kB)
samevar_3.png (1.1 MB)
samevar_4.png (160.2 kB)
samevar_5.png (1.2 MB)
more ▼

answered Sep 09 '16 at 03:43 AM

avatar image

ymars STAFF
243 42 54 73

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

Follow this question

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

Answers to this question