[過去ログ] 【UE4】Unreal Engine 4 初心者質問スレッド part6 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
804(1): 2020/06/01(月)21:01 ID:aPyoGv0f(1) AAS
Xinputコントローラー、Bボタンを決定、Aボタンをキャンセルにしたいのですが、
プロジェクト設定で一切コントローラーの設定をしていない状態でも、Aボタンで決定が実行されてしまいます。
このAボタンで決定が実行されてしまうデフォルト設定を、解除、もしくは変更する方法はありませんか?
805(1): 2020/06/02(火)02:57 ID:XKJxIaOe(1/5) AAS
>>804
おそらく、UMGのボタンに対しての話だとはおもうけど
C++の場合は、対応するプラットフォームのInput.cpp内でGetGamepadAcceptKey、GetGamepadBackKeyを実装することで可能
BPではどうやるのか不明、ソース見る限り変更する口がないのでできなさそう
806: 2020/06/02(火)14:22 ID:EkV76gxl(1) AAS
>>805
プロジェクト設定やBPの範囲で設定を変更するのは難しいのですね。
C++でそれらしき箇所を入れ替えてみたのですが、私の触り方がおかしいらしく上手くいかなかったので(プログラムは全く無知なので)ここは後回しにすることにします。
ありがとうございます!
807(1): 2020/06/02(火)17:07 ID:gGtZrXya(1/8) AAS
「Cast to」 でとあるアクターブループリントから変数だけ参照したいだけのですが、「Cast to アクターBP名」ノードで変数を呼び出そうとするとObjectになにかつなげと言われます。
試しに「GetOwner」をつないでみたのですがうまく機能しませんでした。なぜでしょうか。
808(1): 2020/06/02(火)17:22 ID:BPNUgDnM(1/4) AAS
>>807
Castは何者かわからないオブジェクトを何者かにする物なので
目的のアクターのインスタンスオブジェクトが分かっているなら使う必要ない
809: 2020/06/02(火)17:39 ID:gGtZrXya(2/8) AAS
>>808
他のBPの変数を参照すために使うものじゃないってことですかね。
他のBPの変数を参照するにはどうしたらいいのでしょうか。
810(1): 2020/06/02(火)17:55 ID:45dfXXt8(1/3) AAS
オーバーラップしたアクターとかを繋いでみて、そのアクターとキャストしたいBPが一致すればキャストできて、そのアクターの変数とかいじれる
811(2): 2020/06/02(火)19:51 ID:gGtZrXya(3/8) AAS
>>810
AというアクターBPとBというアクターBPががあったとして、AとBが接触しないとキャストできないということでしょうか。
812(1): 2020/06/02(火)20:13 ID:45dfXXt8(2/3) AAS
>>811
そのBP使っているアクターを特定できればいい。他から操作キャラクターをいじるならGet player pawnとか、重いらしいけどすべて見つけるならGet All Actors of Classとか
813: 2020/06/02(火)20:13 ID:BPNUgDnM(2/4) AAS
>>811
そんなことはないよ
Actorは抽象クラスといわれるような存在で、そのまま使われることはなく基本的には継承して扱われる
Castに関してはC++の継承とポインタの話なのでそこを調べたほうが正しい、が
例えばActorを継承したMyActorをレベルに配置し、そのアクターをレベルブループリントで参照
(アクターを選択した状態で、ブループリントエディターの右クリックメニューで参照を出すやつとか)する場合は何者かわかっているので、MyActor自身が持ってる変数にアクセスできる
つづく
814: 2020/06/02(火)20:13 ID:BPNUgDnM(3/4) AAS
GetActorsなどで取得した場合は、Actorとして参照するので、Actorが持ってる変数にはアクセスできるがMyActorとはわかっていないのでMyActorがもってる変数にはアクセスできない
ここで、Actorを入力としてMyActorとしてCastが成功すればMyActorと認識できてMyActorの変数にアクセスできるようになる
もちろん違うActorを入力に渡すと失敗する
例でGetActorsを出したけど基本的には使わないように
815(1): 2020/06/02(火)20:15 ID:BPNUgDnM(4/4) AAS
このへんは文章で説明してもすごいわかりにくいからどうしたものかね?
816(1): 2020/06/02(火)20:18 ID:V3oBoznY(1) AAS
アセットブラウザからアニメーションシーケンスを開くとスケルトンツリーが見れますが
ボーンを選択すると詳細タブにそのフレームでのボーンのトランスフォームが表示されると思います
0フレーム地点でいいのですが、このトランスフォームの値をブループリントかC++で取得する方法はありますでしょうか
プレーヤーのトランスフォームではなくアニメーションアセットのボーンのトランスフォームが必要なのでインターフェースが見つからず苦戦しています
817(1): 2020/06/02(火)21:23 ID:gGtZrXya(4/8) AAS
>>815
とても丁寧に解説いただきありがとうございます。完全に理解したわけではありませんが、なんとなくはわかりました。
プレイヤーポーンとかプレイヤーコントローラーとかレベルブループリントとか、そういうアクセスしやすいところにグローバルで使いたい変数を集めてそこで管理するとかのほうがいいんですかね。
818(1): 2020/06/02(火)21:24 ID:gGtZrXya(5/8) AAS
わからないことが次から次に出てくるんで個人レッスンしてもらいたい。
819(2): 2020/06/02(火)21:32 ID:gGtZrXya(6/8) AAS
>>812
Cast to A がプレイヤーならかんたんなんですけどね。
プレイヤーではないのでObjectにつなぐものがないんですよね。Cast to A をしてる時点でObjectに何も繋がなくてもAだよわかってよ。って思うんですけどね。
820(1): 2020/06/02(火)21:45 ID:45dfXXt8(3/3) AAS
>>819
どんな感じがわからんけど、変なやり方だと、BeginplayでAがplayerをキャストして自分自身を渡せばいい
playerにActorの変数作っとけば、Selfとかでぶちこめるでしょ
色々とやってみるが吉
821: 2020/06/02(火)21:59 ID:XKJxIaOe(2/5) AAS
>>817
グローバルで使いたい変数などはゲームの内容によって異なってくる
GameInstanceがよかったりGameModeがよかったりGameStateがよかったりもする
822: 2020/06/02(火)22:02 ID:XKJxIaOe(3/5) AAS
>>819
なにか抽象的に扱われているオブジェクトを具象化するのに必要なのがCastなのだから
指定されないとわからないのは必然なのだが
823(1): 2020/06/02(火)22:03 ID:XKJxIaOe(4/5) AAS
>>818
自分で調べて解決する能力をつける努力をするべき
824(1): 2020/06/02(火)22:24 ID:XKJxIaOe(5/5) AAS
>>816
答えは知らないのだけどUAnimSequence::GetBonePoseあたりから辿れそうな気はした
825(2): 2020/06/02(火)22:49 ID:0eY/8b3g(1) AAS
すみません質問させていただきたいです。
プレイヤーや敵にヒットした矢やボールなどが引っ付くようにしたいのですが、ヒットしたメッシュ位置にくっつけるようなことは可能なのでしょうか。
ヒット位置はライントレースなどで取れますし、ボーンやソケットに対してであれればアタッチできるので
ざっくりとくっつけることはできるのですが、腕や足など大きく動く位置にヒットした場合に見た目が変になります。
メッシュの特定の位置に対して(法線基準のようなイメージ?)しっかりと引っ付く仕組みが作りたいのですが、
何か良い方法はありませんでしょうか。
方法や、参考情報などわかる方がいましたらよろしくお願いいたします。
826: 2020/06/02(火)22:59 ID:gGtZrXya(7/8) AAS
>>820
そんなやり方もあるんですね。参考にさせていただきます。
ありがとうございます。
827: 2020/06/02(火)23:08 ID:gGtZrXya(8/8) AAS
>>823
GameInstance,GameMode,GameStateの違いについても調べてみますありがとうございます。
はい、おっしゃるとおりその能力は必須ですね。できる限り自分で調べて、自己解決する能力をつけるようにします。
828: 2020/06/02(火)23:50 ID:tH/Q/AO6(1) AAS
海のようなフィールドに浮かんでいる箱の中身を自前カッターで開けば、そのまま中身をイジれる
海底に沈んでずぶ濡れの箱を釣竿で釣った時は一度乾燥させて形状を整える必要がある
829(1): 2020/06/03(水)02:05 ID:j2Q7EuEq(1) AAS
>>825
ヒットした位置とそのコリジョンが属してるボーンとのオフセットを毎回加算してあげるとかではなくて?
830: 2020/06/03(水)15:25 ID:Upt/R1q6(1) AAS
>>824
ありがとうございます。できました。
参考までにこんな感じです
FTransform Hoge::hoge( UAnimInstance* AnimIns, UAnimSequence* AnimSeq ) const
{
FCompactPose pose;
pose.SetBoneContainer( &AnimIns->GetRequireBones() );
FBlendedCurve curve;
curve.InitForm( AnimIns->GetRequireBones() );
FAnimExtractContext context;
AnimSequence->GetBonePose( pose, curve, context );
return pose[FCompactPoseBoneIndex(0)];
}
831: 2020/06/03(水)15:31 ID:mTf02azJ(1) AAS
>>829
その方法で一応くっつくにはくっつくのですが、
メッシュの変形が激しい部位だと、なんか肉の上でぐりぐり動いたり、浮いたりしてしまう状況になります……
しかしやはりボーンにくっつけるほうがよさそうですかね……
現状メッシュとボーンのウェイトとかが荒すぎるのかもしれません……
ちょっとそっちの方向での調整も考えてみます……
ありがとうございます。
832: 2020/06/03(水)22:51 ID:utKIF6eQ(1) AAS
まったく試してないけど、
ヒットした瞬間のトランスフォームとボーンかソケットのトランスフォームの差を取って、アタッチすれば何とかなりそうな雰囲気は感じるんだけどなぁ
833: 2020/06/03(水)23:55 ID:A27i/+BV(1) AAS
ue4のssr機能使わずに自分でssrを実装したいのですが、可能なのでしょうか?
上下前次1-新書関写板覧索設栞歴
あと 169 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.015s