First Person Shooter②について、
1 collisiooonの階層をドラックしても階層を上に変更できませんでした。階層をDefaltScenenRootの上にする方法を教えて下さい。
2 何のためにDefaltScenenRootから変更するのでしょうか?変更する理由はなんですか?
3 get とsetの考え方の違いとはなんですか
4 何度かやり直してるのですが、玉が飛ばないです。どうしたらよいですか?
>collisiooonの階層をドラックしても階層を上に変更できませんでした。
⇒DefaultSceneRootが階層の一番上(親)になるのでそれより上に変更はできません
>階層をDefaultSceneRootの上にする方法を教えて下さい
⇒DefaultSceneRootの上に設定することはできません
3DモデルであるMeshやモノとの接触判定を行うCollisionはDefaultSceneRootの子階層でなければなりません(座標計算などを行うため)
(DefaultSceneRootを別のものに変更はできます)
>何のためにDefaultSceneRootから変更するのでしょうか?
⇒DefaultSceneRootにはコリジョンの情報(物との接触したかを判別するためのもの)が無い為、コリジョンの情報を持っているものに変更するためです
>変更する理由はなんですか
⇒理由は2つあり、1つ目がDefaultSceneRootに設定したCollisionを基準に位置を設定したいこと、
2つ目が上記で述べたコリジョン情報を持ったものに変更したいからです
>get とsetの考え方の違いとはなんですか
⇒これに関してはプログラミングになってしまいますが
何かしらの情報(例えば速度ベクトルなど)を一時的に保持するもの(これを変数といいます)から情報を取得するのがGet、
変数に別のデータで保持させるのがSetとなります
>何度かやり直してるのですが、玉が飛ばないです。どうしたらよいですか?
⇒以下の点をご確認いただけないでしょうか
以下の点をご確認してもうまくいかない場合は
プロジェクトファイルをGitに挙げていただけないでしょうか
1.「ProjectileMovement」が追加されているか
2.追加されている場合はProjectileMovementをクリックして画面右側にある「InitialSpeed」の値が「3000」になっているか
3.同様に「MaxSpeed」の値が「3000」になっているか
4.「ShouldBounce」にチェックがついているか
5.動画の16:45~23:20の実装通りになっているかの確認
ご質問がCollisonSphereはどのようなものなのかという認識でよろしければ
球体の3Dモデルがないコリジョン(見えないが接触判定や同じコリジョンとぶつかって、めり込まないようにする)のみの役割をになっています動画ではそのあとにCollisonSphereを基準位置としてStaticMesh(目に見える3Dモデル)をCollisonSphereの子階層に設定しています。
子階層にしているのはCollisionSphereが前方に100m移動したらStaticMesh(3Dモデル)も同じように追従するためです。
CollisonSphereを追加した後にドラック&ドロップでDefaultSceneRootのところに持っていくと下記画像のような表示が出ます。
この状態で離すと一番上の親がCollisionSphereに変更されます。
一番上の親に関しては別のCollisionやMeshに変更することが可能です。
(画像では一番上の親となっているが、DefaultSceneRootではありますが別のものに置き換えることができます)
1点ご確認していただきたいことがあります。
DefaultSceneRootとCollisionSphereの詳細タブにある「可動性」が
両方とも「ムーブ」になっていますでしょうか。
なっていなければ「ムーブ」にしていただき、もう一度試していただけないでしょうか。
できました、ありがとうございます。
また問題が2つ
①弾の飛ぶ角度がおかしい
②弾が奥にたまる
②弾が奥にたまる?
上記の認識でよろしければ白い正方形の物体にぶつかったときのみ消えるようになっている処理ですのでそれにぶつからない限り消えません。
一定時間後に削除したい場合は「FirstPersonProjectile」を開き、画面上部にある「クラスのデフォルト」を押します。
そのあとに詳細タブの「Initial Life Span」に一定時間後に削除したい時間を入れてもらえば一定時間後に削除されます。