2024/4/27
プレイヤーから弾(ファイアボール)を撃ってみる
robloxゲーム制作講座。今回はプレイヤーから弾を撃ってみましょう。
だいぶゲームっぽくなりますが、その分これまでよりも難しいからついてきてくれよな。
これまでの記事は↓
基本的な構成要素
今回の処理は2つのスクリプトと発射される弾のクローン(生成)元となる球体モデルで構成されています。
各スクリプトに入る前に大事な説明があって、
「Robloxではスクリプトやモデルをどこに配置するか?」が非常に重要です。
スクリプト:ModuleScriptFireBullet を「ReplicatedStorage」以下に置いていますがこの部分はゲーム内で共有されるリソースやデータを格納する場所です。
1.スクリプトで共有されるデータ: 例えば、プレイヤー間で共有される設定や情報が格納されます。これにより、サーバーサイドとクライアントサイドの両方で利用可能なデータを保持できます。
2.共有リソース: ゲームにおける共通のアセットやモジュール、音声ファイルなど、複数のプレイヤーによってアクセスされる可能性があるリソースが置かれます。これにより、リソースの重複を避け、効率的なデータ管理が可能になります。
3.クライアントとサーバーで使うスクリプト:
この場所に置かれたスクリプトは、クライアントとサーバーの両方でアクセス可能です。しかし、実行はサーバーサイドまたはクライアントサイドのどちらかで行われる必要があります。
「ReplicatedStorage」に置かれたアイテムは、全プレイヤーと共有されるため、プレイヤー個々のデータやセキュリティが要求される情報はここに置くべきではありません。
それらには「PlayerStorage」や「ServerStorage」など他のストレージオプションを利用することが適しています。
LocalScriptInput
プレイヤーの入力を受け取る部分で、マウスの左ボタンかZを押すと、弾を撃つ処理 fireBullet を呼びます。
※fireBullet関数は下記記載
ModuleScriptFireBullet
弾を生成する為のスクリプト。
弾モデルを「ReplicatedStorage」に置いたのでそれを呼び出す為にはスクリプトも「ReplicatedStorage」に置く必要があって、モジュールスクリプトとしている。
弾モデル
弾モデルはパーツから球体モデルを生成して、色や反発係数などを設定しただけです。
モデルを生成した際には「Workspace」に配置されるので、「ReplicatedStorage」移動させてください。
そうしたら、モデルはゲーム開始時には生成されず、上の入力を受けて生成されるようになります。
以上です
そういう訳で弾を撃てるようになりました。
これまでの第1回~第3回からはグッとレベルアップしたけどわかったかな?
気が向いたらまたRobloxゲーム制作講座書きます
その他
#unity #UE #roblox #ロブロックス #ゲーム制作
コメント