「見えない壁を作りたい」「通り抜けられる壁にしたい」「パーツを透明にしたら、どこにあるか分からなくなった」「影がじゃまで消したい」
ロブロックス(Roblox)スタジオで当たり判定を消す方法と、パーツを透明にする方法、影を消す方法を、実際の画像付きで誰でも簡単に分かるように解説します。どれもプロパティのチェックや数字を1つ変えるだけでできます。
入門ステップ3/24 前の記事:Roblox Studioの使い方 全体の順番を見る
使うもの:Roblox Studioが起動するパソコン、マウス、キーボード。パーツの置き方とプロパティの見方はRoblox Studioの使い方で解説しています。
先に答え:当たり判定はCanCollide、見た目の透明度はTransparency、影はCastShadowで変えます。
| やりたいこと | 変えるプロパティ | 値 |
|---|---|---|
| ぶつからずに通り抜けられるようにする | CanCollide | チェックを外す |
| 透明にする(見えなくする) | Transparency | 1(半透明は0.5) |
| 見えないのにぶつかる壁にする | Transparency と CanCollide | Transparency 1、CanCollide はチェックしたまま |
| 1つのパーツの影を消す | CastShadow | チェックを外す |
| 全体の影を消す | Lighting の GlobalShadows | チェックを外す |
見え方とぶつかり方の4通り(早見表)
TransparencyとCanCollideの組み合わせで、壁は次の4通りになります。編集部が4枚の壁を並べ、アバターで歩いて確かめた結果です。
| 名前(この記事) | Transparency | CanCollide | 見え方 | 歩いたとき | 影 |
|---|---|---|---|---|---|
| ふつうの壁 | 0 | オン | 見える | 壁の手前で止まる | 出る |
| ガラスの壁 | 0.5 | オン | 向こうが透けて見える | 壁の手前で止まる | 出る |
| 見えない壁 | 1 | オン | 見えない | 何もない所で止まる | 出ない |
| すり抜ける壁 | 0 | オフ | 見える | 通り抜ける | 出る |
見えない壁はマップの端から落ちないようにする囲いに、すり抜ける壁は隠し通路や飾りに使えます。
1. 壁を4枚並べる
新しいBaseplateを開きます。エクスプローラの「Workspace」にマウスを乗せて、右に出る「+」を押し、一覧から「Part」を入れます。
入れたPartをエクスプローラで選んだままF2キーを押して、名前を「NormalWall」に変えます。続けてNormalWallのプロパティを次のように変えます。
| プロパティ | 値 |
|---|---|
| Size | 8, 10, 1 |
| Position | -18, 5, -20 |
| Anchored | チェックを入れる |
プロパティを変えた「NormalWall」を選んだ状態でCtrl + Dキーを押すと、同じ場所に複製できます。次のように3つ複製し、それぞれ名前を変えてPositionの数字を変えます。SizeとAnchoredはNormalWallと同じままで大丈夫です。
| 名前 | Position |
|---|---|
| GlassWall | -6, 5, -20 |
| InvisibleWall | 6, 5, -20 |
| GhostWall | 18, 5, -20 |
下の画像のように、スタートの台の先に灰色の壁が4枚並べば準備は完了です。

2. ガラスの壁を作る(Transparency 0.5)
エクスプローラで「GlassWall」を押して選びます。GlassWallを選んだ状態で、プロパティの検索欄に「Transparency」と入力し、「▼外見」の欄にあるTransparencyの数字を「0.5」に変えてEnterキーを押します(赤い枠)。

左から2枚目の壁が透けて、向こうの床が見えるようになります。
Transparencyは見えにくさの数字で、0は完全に見え、1は完全に見えなくなります。0.3や0.8のように、0から1の間で好きな濃さにできます。Robloxの公式の説明によると、半透明のパーツはたくさん置くと動作が重くなることがあり、半透明のパーツどうしを重ねると表示の順番が乱れることがあります。
3. 見えない壁を作る(Transparency 1)
エクスプローラで「InvisibleWall」を押して選びます(画像の上の赤い枠)。InvisibleWallを選んだ状態で、プロパティの検索欄に「Transparency」と入力し、Transparencyの数字を「1」に変えてEnterキーを押します(画像の下の赤い枠)。

左から3枚目の壁が見えなくなり、選んでいる印の青い枠だけが残ります。
見えなくなった壁も、3D画面でその場所を押すと選べます(赤い枠)。どこにあるか分からないときは、エクスプローラで名前を押すと青い枠が出て場所が分かります。

4. すり抜ける壁を作る(CanCollideを外す)
エクスプローラで「GhostWall」を押して選びます。GhostWallを選んだ状態で、プロパティの検索欄に「CanCollide」と入力し、「▼衝突」の欄にあるCanCollideのチェックを外します(赤い枠)。

見た目は変わりませんが、これでGhostWallには当たり判定がなくなりました。
CanCollideを外したパーツは、Anchored(固定)のチェックも入れておきます。Robloxの公式の説明では、固定していないパーツの当たり判定を外すと、地面をすり抜けて世界の下へ落ち、消えてしまうことがあるとされています。
5. テストで4枚の壁を歩いて確かめる
3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。
スタートの台からまっすぐ進むと、壁と壁の間のすき間を抜けてしまいます。先にDキーで右へ歩き、いちばん右のGhostWallの正面まで来てから、Wキーで壁に向かって歩きます。壁を通り抜けて向こう側へ出られます。下の画像は、マウスの右ボタンを押したまま動かして、カメラを横に回して撮ったものです。

次はAキーで左へ歩き、左から3枚目の見えない壁の正面まで来たら、Wキーで壁に向かって歩きます。何もないように見える場所で止まって先へ進めません。

ふつうの壁とガラスの壁も、見えない壁と同じように壁の手前で止まります。確かめたらShift + F5キーでテストを停止します。
6. 当たり判定を消しても「触れた」は起きる(CanTouch)
CanCollideを外しても、何かが触れたことを知らせる仕組み(Touched)は動いたままです。乗ると消える床や、触れるとダメージを受ける床は、このTouchedで作られています。小さなスクリプトで確かめます。
エクスプローラの「GhostWall」にマウスを乗せて、右に出る「+」を押します(赤い枠)。

一覧の検索欄に「Script」と入れ、一覧の「Script」を押します(赤い枠)。

GhostWallの中にScriptが入り、スクリプトの画面が開きます。中身を全部消して、次のコードを貼り付けます。
-- 壁に何かが触れたら、出力に知らせる
local wall = script.Parent
wall.Touched:Connect(function(otherPart)
print("触れた:" .. otherPart.Name)
end)

3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。
GhostWallを通り抜けると、下の出力の欄に「触れた:LeftFoot」のように、触れたアバターの部品の名前が何行も出ます(赤い枠)。手や足のほかに、髪などのアクセサリーの部品「Handle」も出ます。当たり判定がなくても、触れたことは分かっています。

Shift + F5キーでテストを停止します。
触れたことも知らせたくないときは、CanTouchのチェックを外します。エクスプローラで「GhostWall」を押して選び、GhostWallを選んだ状態で、プロパティの検索欄に「CanTouch」と入力し、CanTouchのチェックを外します(赤い枠)。

3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。
同じようにGhostWallを通り抜けても、出力の欄には何も出なくなります(赤い枠)。

Shift + F5キーでテストを停止します。エクスプローラの「GhostWall」を選んだ状態でプロパティの検索欄に「Can」と入れると、CanCollide・CanQuery・CanTouchが「▼衝突」の欄にまとめて出ます。それぞれの違いは次のとおりです。
| プロパティ | 何が変わるか | 外すと |
|---|---|---|
| CanCollide | ぶつかるか | 通り抜ける |
| CanTouch | 触れたことを知らせるか(Touched) | 触れても何も起きない |
| CanQuery | 光線(Raycast)などで見つかるか | CanCollideを外したときだけ効く。銃の弾などの判定に当たらなくなる |
7. 影を消す
1つのパーツの影を消す(CastShadow)
エクスプローラで「NormalWall」を押して選びます。NormalWallを選んだ状態で、プロパティの検索欄に「CastShadow」と入力します。CastShadowには最初からチェックが入っていて、いちばん左の壁の下に影が出ています(赤い枠)。

CastShadowのチェックを外すと、いちばん左の壁の影だけが消えます(赤い枠)。

ガラスの壁(Transparency 0.5)は透けていても影が出ますが、見えない壁(Transparency 1)には最初から影が出ません。半透明の壁の影が気になるときもCastShadowを外します。Robloxの公式の説明では、影を消すとそのパーツに落ちるほかの影の見え方が乱れることがあるので、ふだんはオンのままがすすめられています。
全体の影を消す(Lighting の GlobalShadows)
NormalWallのCastShadowにチェックを入れて元に戻します。次に、エクスプローラで「Lighting」を押して選びます。Lightingを選んだ状態で、プロパティの検索欄に「GlobalShadows」と入力し、GlobalShadowsのチェックを外します(赤い枠)。

4枚の壁の影がすべて消えます。確かめたら、GlobalShadowsにチェックを入れて元に戻します。
8. いくつものパーツをまとめて変える
6でScriptを入れたGhostWallは、エクスプローラで中が開いたままになっていることがあります。GhostWallの下にScriptが見えているときは、GhostWallの左の「▼」を押して閉じます。開いたままだと、間にあるScriptも一緒に選ばれてしまいます。
エクスプローラで「GhostWall」を押し、Shiftキーを押したまま「NormalWall」を押すと、間の4枚がまとめて選ばれます(赤い枠)。

4枚を選んだ状態で、プロパティの検索欄に「Transparency」と入力します。4枚の値がそろっていないので、数字の欄は空になっています。「0.5」と入れてEnterキーを押すと、4枚とも0.5になります(赤い枠)。

モデル(いくつかのパーツをまとめた物)を透明にしたいときも、エクスプローラでモデルの左の「▶」を押して中を開き、中のパーツを同じようにShiftキーでまとめて選んでから変えます。
9. プレイヤー同士がぶつからないようにする
オビーで前の人がじゃまになる、鬼ごっこで押し合いになる、というときは、アバター同士の当たり判定だけを消します。Robloxの公式の説明にあるスクリプトを使います。
衝突グループの窓
どのグループ同士がぶつかるかは「衝突グループ」で決めます。3D画面上部メニューの「ウィンドウ」を押し、「3D」にマウスを乗せて、右に出る「衝突グループ」を押すと(赤い枠)、窓が開きます。

最初はDefaultとStudioSelectableの2つのグループだけがあります(赤い枠)。この記事では次のスクリプトでグループを作るので、窓は見るだけで閉じてかまいません。

アバター同士をぶつからなくするスクリプト
エクスプローラの「ServerScriptService」にマウスを乗せて、右に出る「+」を押します(赤い枠)。一覧の検索欄に「Script」と入れ、一覧の「Script」を押します。

スクリプトの画面が開いたら、中身を全部消して、次のコードを貼り付けます。
local Players = game:GetService("Players")
workspace:RegisterCollisionGroup("Characters")
workspace:CollisionGroupSetCollidable("Characters", "Characters", false)
local function onDescendantAdded(descendant)
-- アバターの部品を「Characters」のグループに入れる
if descendant:IsA("BasePart") then
descendant.CollisionGroup = "Characters"
end
end
local function onCharacterAdded(character)
-- 今ある部品と、あとから足される部品の両方に設定する
for _, descendant in character:GetDescendants() do
onDescendantAdded(descendant)
end
character.DescendantAdded:Connect(onDescendantAdded)
end
Players.PlayerAdded:Connect(function(player)
-- プレイヤーのアバターが出てきたら設定する
player.CharacterAdded:Connect(onCharacterAdded)
end)

3行目で「Characters」というグループを作り、4行目で「Charactersどうしはぶつからない」と決めています。プレイヤーのアバターが出てくるたびに、アバターの部品をすべてこのグループに入れます。
2人のテストで確かめる
3D画面の上の作品のタブ「Place1」を押して3D画面に戻ります。画面左上の「テスト」の右の「∨」を押して「サーバーとクライアント」を選び(画像の左の赤い枠)、人の形のアイコンの横の数字を、右の上向き三角で「2」にします(画像の右の赤い枠)。

青い三角の再生ボタンを押すと、Player1とPlayer2の窓が開きます。片方のアバターをもう片方に向かって歩かせると、ぶつからずに体が重なって通り抜けます。下の画像の左がPlayer1の窓、右がPlayer2の窓です。

確かめたら、もとのStudioの窓に戻り、左上の赤い丸の停止ボタンを押してテストを終わります。2つのテストの窓も一緒に閉じます。
うまくいかないときの直し方
| こまっていること | 見るところ | 直し方 |
|---|---|---|
| 当たり判定を外したらパーツが消えた | Anchored | 固定にチェックを入れる |
| 見えない壁がどこにあるか分からない | エクスプローラ | 名前を押すと青い枠が出る |
| 見えない壁なのに通り抜ける | CanCollide | チェックを入れる |
| 半透明なのに影が出る | CastShadow | チェックを外す |
| 通り抜ける壁なのに触れると仕掛けが動く | CanTouch | チェックを外す |
| アバター同士がまだぶつかる | スクリプトの場所 | ServerScriptServiceの中に入れ、2人のテストで確かめる |
よくある質問
ロブロックスの「透明スキン」と同じ?
この記事は、Studioで作るゲームの中のパーツを透明にする方法です。アバターを透明に見せるアイテムの話ではありません。
透明にした壁は、遊ぶ人から見つけられる?
Transparencyを1にした壁は、遊んでいる人からは見えません。ぶつかって初めて壁があると分かるので、行き止まりに使うときは、床の色を変えるなどして通れない場所が分かるようにすると遊びやすくなります。
次は、複製・回転・ロック・モデルにまとめるショートカットを覚えます。次のステップ(入門 4/24)
次に知りたいことを選ぶ
- 次のステップ:複製・回転・ロック・モデルにまとめるショートカットを覚えます → ロブロックス(Roblox)スタジオのショートカットキー一覧
- 乗ると消える床を作りたい → ロブロックス(Roblox)スタジオで消える床を作る方法
- オビーの足場を作りたい → ロブロックス(Roblox)でオビーを作る方法
- やり方を一覧で探したい → ロブロックススタジオの操作一覧