見出し画像

画面いっぱいに透かしを入れて情報流出を防ぐ【RobloxStudio】

こんにちはけつべつです。

作品を発表する前にいろいろな人にテストプレイさせたい!
でも作品の内容は無関係な人には秘密にしておきたい。スクリーンショットを撮られてSNSとかに投稿されると困る。
そう思う人はいませんか?

人から聞いた話によると、スクショをした人物を特定できる情報を画面のどこかに入れておくことで、ある程度情報の流出を防ぐことができるそうです。
例えば、画面に個人を特定できるIDを透かしで表示させておくとか…

ロブロックスでもプレイヤーの名前を使って同じことができるかも?と思って試してみたところ上手くいきました!

ここでは、ゲーム画面に遊んでいるプレイヤーの名前の透かしを入れる方法を書いていきます。




準備するもの

StarterGuiの中にScreenGui、その中にTextLabelとLocalScriptを用意しよう。




TextLabelのSizeを{1, 0},{1, 0}にして画面いっぱいに表示させよう。





TextWrappedをオンに!

TextLabelのTextWrappedをオンにしないと、長い文章が改行されずに表示されてしまいます。
文字を画面いっぱいに表示させるためにオンにします。



BackgroundTransparencyを1(透明)にして、TextTransparencyを半透明にします。
画面いっぱいに表示されても邪魔じゃないくらいの透明度がおすすめ。
文字の大きさはすこし大きめにしておこう。
上の画像ではTextSizeを37にしています。



LocalScriptの中身

local text = script.Parent
local name = game.Players.LocalPlayer.Name --遊んでいるプレイヤーの名前を読み込む

wait()
text.Text = name.."  "..name.."  "..name.."  "..name.."  "..name.."  "..name.."  " .....  --なるべく多めに書く

ラベルのTextを「"プレイヤーの名前" "プレイヤーの名前" "プレイヤーの名前" …」に書き換える、と書いてあります。

"  "はスペースです。プレイヤーの名前が読みづらくなることを防ぐために入れています。
画面いっぱいに名前を表示させるために「name.."  "..」をなるべく多く書きます。
文字が多いとエラーを起こして名前が表示されなくなることがあるので、多すぎず少なすぎずな文字数にしよう。




実行してみる

プレイヤーの名前が表示されました!
これで誰がスクリーンショットを撮ったのかがわかるようになりました。

ゲーム内にプレイヤーの名前を表示した上で、テストプレイをさせる前に「ゲームのスクリーンショットを撮って関係者以外に見せたら、今後のテストには参加させません」などの警告をすることで、ある程度リークを防ぐことができます。

画面いっぱいに表示されない時は文字サイズを大きくするか「name.."  "..」を増やしてください。
TextLabelを増やすやりかたもあります。

TextLabelを増やした
増えた

編集画面では問題がなくても、アップロードしてPCでゲームを起動すると画面の端まで表示されないことがありました。
気になる人はゲームをアップロードして、しっかり表示されているか確認するようにしてください。




注意したいこと

対策をしていても情報が漏れ出るときは漏れます。
スクショを使わなくても、文章なら誰が投稿したのかバレることなく情報を流せますし、ゲーム制作側ならGUIを非表示にすることもできます。
自分の名前が載っていても平気でスクショを投稿する人もいるでしょう。

当たり前のことですが、信用できる人を見極めて、その人にゲーム制作やテストプレイを任せるようにしましょう!



〜おしまい〜