体験申込で

Amazonギフト

カードもらえる

体験申込・無料相談

News

お知らせ

Roblox Studioのアンカーとは?パーツを固定する3つの方法

コラム

ロブロックススタジオでステージを作っていて、置いたはずのブロックがいつの間にか地面に埋まっていたり、下に落ちていったりした経験はありませんか。

せっかく積み上げた建物が崩れたり、床にしたパーツがずるずる動いてしまったりすると、「何が間違っているんだろう」と手が止まってしまいますよね。

この記事では、パーツを固定するアンカー(Anchored)という機能について、メニュー操作・プロパティウィンドウ・スクリプトの3つの設定方法を、初めてロブロックススタジオを触るお子さんにも分かる言葉で解説します。なぜパーツが落ちるのかという原因から、溶接(Weld)やヒンジ(Hinge)との使い分け、動く床の作り方まで一通り読めば、パーツの固定で迷うことはなくなります。

紹介する仕様は、Roblox公式のCreator Hub(create.roblox.com/docs)に掲載されているBasePart.Anchoredの説明に基づいています。難しい専門用語は使わず、実際にスタジオの画面を操作する手順として説明していきます。

アンカー(Anchored)とは何か

アンカーとは、パーツをその場に固定して、重力や衝突の影響を受けなくする設定です。ロブロックススタジオでは、すべてのパーツにAnchoredというプロパティがあり、これをオン(true)にするとパーツが空中に浮いていても落下しなくなります。

たとえば、地面や建物の壁は動いてほしくないパーツです。こうしたパーツにアンカーを設定しておかないと、Playボタンを押した瞬間に物理エンジンが働き、下に落ちたり倒れたりしてしまいます。

逆に、ボールや車のように動かしたいパーツはアンカーをオフ(false)のままにしておきます。アンカーは「動かない土台」と「動く部品」を仕分けるための、最初に覚えるべき基本設定です。

パーツが重力で落ちる・動いてしまう原因

新しく置いたパーツがアンカーされていない状態だと、Playを押した瞬間から物理エンジンの計算対象になります。物理エンジンは現実世界と同じように重力を働かせるため、支えのないパーツは下に落ち、他のパーツとぶつかれば押し出されて動いてしまいます。

Insert(挿入)で新しくパーツを作ると、初期設定ではAnchoredがオフになっていることがほとんどです。つまり、何もしなければ「浮いているパーツは落ちる」のが標準の動きということです。地面や壁が崩れる場合は、まずそのパーツのアンカーがオンになっているかを確認してみてください。

もっとも手軽な方法が、上部メニューのボタンからアンカーを切り替える方法です。

  1. 固定したいパーツをExplorer(エクスプローラー)またはビューポート上でクリックして選択する
  2. 画面上部の「Model」タブを開く
  3. 「Anchor」ボタン(錨のアイコン)をクリックする

ボタンを押すたびにオン・オフが切り替わります。複数のパーツをまとめて選択してからボタンを押せば、選んだパーツすべてに一括でアンカーを設定できるので、建物全体を固定したいときに便利です。

 

 

設定方法②プロパティウィンドウから固定する

細かく状態を確認しながら設定したい場合は、プロパティウィンドウを使います。

  1. 「View」メニューから「Properties」を開く
  2. 固定したいパーツを選択する
  3. プロパティ一覧から「Anchored」の項目を探す
  4. チェックボックスをオン・オフして切り替える

プロパティウィンドウを使う利点は、Anchoredの現在の状態が一目でわかることです。メニューのボタンだけだとオン・オフの見分けがつきにくい場面でも、プロパティウィンドウならチェックの有無ではっきり確認できます。

設定方法③スクリプトでAnchoredを切り替える

ゲームの進行に合わせてパーツを固定したり解除したりしたい場合は、スクリプトからAnchoredを操作します。

local part = workspace.Floor

-- パーツを固定する
part.Anchored = true

-- パーツの固定を解除する
part.Anchored = false

たとえば「スイッチを押したら床が崩れ落ちる」というギミックは、Anchoredtrueからfalseに切り替えるだけで作れます。サーバー側が所有しているパーツのAnchoredを変更する場合は、Server Script(LocalScriptではなく)から実行する必要がある点に注意してください。

アンカーと固定の関係|建物・地面・装飾を動かなくする基本

「固定」という言葉で検索する人の多くは、地面や壁、屋根といった建物パーツが動いてしまうトラブルを解決したいはずです。結論から言うと、動かしたくないパーツはすべてAnchoredをオンにするのが基本方針になります。

ステージ制作では、次のような分類で考えると迷いません。

  • 地面、壁、天井、装飾オブジェクトなど → アンカーON(常に固定)
  • プレイヤーが押せる箱や転がるボールなど → アンカーOFF(物理演算で動く)
  • スクリプトで動かす床やエレベーター → アンカーONのままCFrameで移動

作り始めの段階で「このパーツは動かしていいか」を決めてからアンカーを設定すると、あとから崩れたパーツを一つずつ直す手間がなくなります。

溶接(Weld)・ヒンジ(Hinge)とアンカーの違いと使い分け

アンカーと混同されやすいのが、溶接(Weld)とヒンジ(Hinge)です。どちらもパーツ同士を接続する機能ですが、目的がまったく異なります。

機能 効果 向いている用途
アンカー(Anchored) パーツ単体を空間に固定し、重力・物理演算の影響を受けなくする 地面・壁・動かない土台
溶接(WeldConstraint) 複数パーツを1つの塊として結合し、一緒に動かす 乗り物のパーツ、装飾部品の合体
ヒンジ(HingeConstraint) 軸を中心に回転できるようにパーツ同士をつなぐ ドア、回転する扉、跳ね橋

たとえばドアを作るとき、ドア本体だけをアンカーしてしまうと固定されて開かなくなります。ドアは壁側にヒンジで接続し、ドア自体はアンカーをオフにしておくのが正しい組み合わせです。逆に、車のボディとタイヤをまとめて動かしたいなら、アンカーではなく溶接で1つの塊にします。

「動かないようにしたいだけ」ならアンカー、「複数パーツを一緒に動かしたい」なら溶接、「回転させたい」ならヒンジ、と目的で使い分けてください。

複数パーツを連結してアンカーするときの注意点

建物のように複数パーツを組み合わせた構造物では、パーツを1つずつ選んでアンカーするのは手間がかかります。Explorer上でShiftキーを押しながら複数選択するか、ビューポート上でドラッグして範囲選択してから、まとめてアンカーボタンを押すと効率的です。

ここで気をつけたいのが、アンカーされたパーツ同士はTouchedイベントが発火しないという仕様です。つまり、2つのアンカー済みパーツを接触させても「触れた」という判定はスクリプトに伝わりません。当たり判定を使ったギミックを作る場合は、判定を取りたいパーツの少なくとも一方をアンカーオフにするか、Region3やGetPartsInPartのような別の判定方法を使う必要があります。

動く床・可動パーツを作るときのアンカー設定

「動く床を作りたいのに、アンカーをオフにしたら床が落ちてしまった」という相談はよくあります。結論は逆で、動く床こそアンカーはオンのままにしてください。

物理エンジンで動かすのではなく、スクリプトでCFramePositionを書き換えて動かす場合、アンカーされたパーツでも問題なく移動できます。むしろアンカーをオフにすると、重力や他パーツとの衝突でプレイヤーごと落下してしまう原因になります。

local TweenService = game:GetService("TweenService")
local floor = workspace.MovingFloor

local tweenInfo = TweenInfo.new(2, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, -1, true)
local tween = TweenService:Create(floor, tweenInfo, {Position = floor.Position + Vector3.new(10, 0, 0)})

tween:Play()

このようにTweenServiceで座標を動かす仕組みは、アンカーがオンでも問題なく機能します。「物理演算で押し出す」動きだけがアンカーの影響を受ける、と覚えておくと判断しやすくなります。

 

 

アンカーでよくある失敗と対処法

初心者がつまずきやすいポイントを整理しました。

  • アンカーONなのに動いてしまう:スクリプトがCFrameやPositionを書き換えていないか確認する。アンカー中でもスクリプトによる移動は反映される
  • 大量のパーツを1つずつアンカーして時間がかかる:複数選択してからModelタブのAnchorボタンをまとめて押す
  • アンカー済みパーツの衝突判定が効かない:Touchedイベントはアンカー同士では発火しない仕様のため、判定側のパーツはアンカーオフにする
  • サーバー所有パーツのAnchoredがスクリプトから変わらない:LocalScriptではなくServer Scriptから変更する

FAQ:Roblox Studio アンカーQ&A

Q1. アンカーをONにしてもパーツが動いてしまうのはなぜですか?

スクリプトがCFramePositionを書き換えている場合、アンカー中でもそのパーツは移動します。アンカーが防ぐのは重力や物理演算による動きだけで、スクリプトによる意図的な移動は止まりません。

Q2. アンカーと「ロック(Lock)」機能の違いは何ですか?

ロックはスタジオの編集画面で誤って選択・移動しないようにする機能で、Play中の物理挙動には影響しません。アンカーはPlay中の物理的な固定を行う機能で、まったく別の役割です。

Q3. スクリプトでAnchoredを変更できますか?

はい。part.Anchored = trueまたはfalseで切り替えられます。サーバーが所有しているパーツの場合は、Server Scriptから変更する必要があります。

Q4. 動く床を作るときはアンカーをOFFにすべきですか?

いいえ。CFrameやTweenServiceで動かす場合はアンカーをONのままにしてください。物理エンジンでパーツを転がしたり押し出したりする場合のみ、アンカーをOFFにします。

Q5. アンカーされたパーツ同士は衝突判定(Touched)が発生しますか?

発生しません。アンカー済みパーツ同士は接触してもTouchedイベントが発火しない仕様です。当たり判定を使いたい場合は、少なくとも一方のパーツのアンカーをOFFにしてください。

まとめ

この記事では、Roblox Studioのアンカー(Anchored)について解説しました。

重要なポイント:

  • アンカーはパーツを重力・物理演算から固定する設定。地面や壁など動かないパーツに使う
  • 設定方法はメニュー操作・プロパティウィンドウ・スクリプトの3通り
  • 溶接(Weld)は複数パーツの結合、ヒンジ(Hinge)は回転に使う。目的で使い分ける
  • 動く床はアンカーONのままCFrameやTweenServiceで動かす
  • アンカー済みパーツ同士はTouchedイベントが発火しない点に注意する

パーツの固定は地味な設定に見えますが、ステージ作りの土台になる大事な知識です。今日から新しいパーツを置いたら、まず「動かしていいパーツかどうか」を考えてアンカーを設定する習慣をつけてみてください。

TETRA UPのRobloxコースでは、こうした一つひとつの設定の意味を、プロのインストラクターが実際の画面を見せながら丁寧に説明します。「調べても専門用語が分からない」というお子さまも、まずは無料体験で操作しながら理解を深めてみませんか。

あわせて読みたい

コラム