VRoidで作成したキャラクターが特定のオブジェクトに触れた際に、ゲームクリアの文字を表示する手順を解説します。
短いスクリプトを作成するだけで実装できます。
ゴールオブジェクトの作成
- Hierarchy上で右クリックし、「3D Object」→「Cube」から球体を作成して適当な大きさに調整します。
- Projectウィンドウで右クリックし、「Create」→「Material」を選択してマテリアルを作成します。
- マテリアルの設定でShaderを「Particles」→「Alpha Blend」に切り替えて半透明にします。

作成したMaterialを球体にドラッグ&ドロップすると、見た目が反映されます。

ゴールオブジェクトの設定

- 作成したオブジェクトを選択し、Sphere Colliderの「Is Trigger」にチェックを入れます。
- Inspectorの「Add Component」から「Rigidbody」を検索して追加します。
- Rigidbodyの「Use Gravity」のチェックを外します。
キャラの設定

- キャラクターを選択し、InspectorでTagを「Player」に設定します。
- Capsule Colliderの「Is Trigger」にチェックを入れます。
テキストの表示

- Hierarchy上で右クリックし、「UI」→「Text」を選択してテキストオブジェクトを作成します。
- 作成したオブジェクトの名前を「GoalText」に変更します。
- Width、Height、Font Size、Colorなどを変更し、文字の位置と見た目を調整します。

コードの追加
キャラクターが球体に触れたら文字が表示されるスクリプトをアタッチします。

- 球体オブジェクトを選択し、「Add Component」から「New script」を選択します。
- 名前を「GameController」と入力し、「Create and Add」をクリックして追加します。
- 追加されたGameControllerスクリプトをダブルクリックしてエディタを開きます。

以下のコードを記述します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameController : MonoBehaviour
{
public GameObject GoalText;
void Start()
{
GoalText.SetActive(false);
}
void Update()
{
}
private void OnTriggerEnter(Collider collider)
{
if (collider.gameObject.tag == "Player")
{
GoalText.SetActive(true);
}
}
}Sphereを選択し、InspectorのGameControllerコンポーネントにあるGoal Text欄へ、作成したGoalTextをドラッグ&ドロップで割り当てます。

ゲームプレイテスト

再生ボタンを押し、キャラクターを球体に接触させて「Clear!」の文字が表示されれば完了です。
カメラの位置を合わせる際は、Sceneビューで視点を決めた後にカメラを選択し、Ctrl+Shift+Fを押すとSceneビューの視点をカメラに反映できます。
Unityのほかの記事は、まとめからご覧いただけます。

この記事で紹介しているコードは、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。
Unityの基礎と学習の記事は、ほかにもあります。




まとめ
- ゴールオブジェクトにIs TriggerをONにしたColliderを設定
- キャラにPlayerタグを設定
- OnTriggerEnterでタグを判定してテキストを表示
参考:https://digilab.tech/unityコライダーでゴールを作成する/
よくある質問:キャラが触れるとゲームクリアの文字を表示する
この記事では、何をする方法を紹介していますか?
VRoidで作成したキャラクターが特定のオブジェクトに触れた際に、「Clear!」などのゲームクリアの文字を表示する手順です。短いスクリプトを作成するだけで実装できます。
ゴールになるオブジェクトは、どう作りますか?
Hierarchy上で右クリックして3D Objectから作成し、適当な大きさに調整します。Projectウィンドウでマテリアルを作成し、ShaderをParticlesのAlpha Blendに切り替えて半透明にして、作成したMaterialをオブジェクトにドラッグ&ドロップします。
ゴールオブジェクトには、どんな設定が必要ですか?
オブジェクトを選択し、ColliderのIs Triggerにチェックを入れます。Add ComponentからRigidbodyを検索して追加し、Rigidbodyの「Use Gravity」のチェックを外します。
キャラクター側には、どんな設定が必要ですか?
キャラクターを選択し、InspectorでTagを「Player」に設定します。Capsule ColliderのIs Triggerにもチェックを入れます。
表示する文字は、どう作りますか?
Hierarchy上で右クリックして「UI」→「Text」を選択し、テキストオブジェクトを作成します。名前を「GoalText」に変更し、Width、Height、Font Size、Colorなどを変更して、文字の位置と見た目を調整します。
コードは、どこに付けますか?
ゴールのオブジェクトを選択し、Add Componentから「New script」を選んで、名前を「GameController」と入力して作成します。キャラクターが触れたら文字が表示される仕組みで、記事のまとめでは、OnTriggerEnterでタグを判定してテキストを表示すると説明しています。
動作確認は、どうしますか?
再生ボタンを押し、キャラクターを球体に接触させて、「Clear!」の文字が表示されれば完了です。カメラの位置を合わせるときは、Sceneビューで視点を決めたあとにカメラを選択し、Ctrl+Shift+Fを押すと、Sceneビューの視点をカメラに反映できます。
コードはどこで確認できますか?メニュー名が違うときは?
記事内に掲載しているほか、GitHubのMOTOKI-LLC/cg-method-codeにもまとめています。Unityのバージョンによって、メニューやUIの名称・配置が変わることがあるため、最新の操作手順は、Unityの公式マニュアルで確認してください。
