RPGアツマールAPI for Unity
  • RPGアツマールAPI for Unity について
  • API対応一覧
  • ソフトウェア履歴
  • 環境構築
    • 動作条件
    • RPGアツマールAPI for Unityの導入
      • manifest.jsonの編集
      • PackageManagerの設定
      • パッケージのインストール
  • 各種APIサンプルと解説
    • サンプルコード集
      • 初期化をしよう
      • サーバーセーブをしよう
      • 音量を制御しよう
      • コメントの流れを制御しよう
      • コントローラの入力を受け取ろう
      • 外部リンクに誘導しよう
      • URLに添えられたパラメータを取り出そう
      • 作者の情報を表示しよう
      • スコアボードを表示したり送信したりしよう
      • スクリーンショットを撮って送信しよう
  • モバイル版RPGアツマールで起動できるようにしよう
    • WebGLテンプレートを作ろう
GitBook提供
このページ内
  • 背景
  • 解説
  • サンプルコード
  1. 各種APIサンプルと解説
  2. サンプルコード集

コメントの流れを制御しよう

前へ音量を制御しよう次へコントローラの入力を受け取ろう

最終更新 4 年前

背景

RPGアツマールには、ニコニコ動画と同様にユーザーコメント機能があります。

ただし、動画と違いゲームは不規則かつ順不同な時間の流れがあるためRPGアツマールサーバーにゲーム内時間軸を通知する必要があります。

解説

RPGアツマールには、ニコニコ動画同様にユーザーコメント機能が存在し、このコメントはゲーム画面上に流れるようになっています。

しかし、ニコニコ動画と違い現実の時間軸と同じ映像が必ず流れることは無いため、ゲームのような不規則かつ順不同に物事が発生するため、コメントの流れるタイミングが決定的に動かすことが出来ません、そのためゲームロジック側からRPGアツマールサーバーに、適切なタイミングでコメントを流してもらうためのイベントを通知する必要があります。

ゲームのイベントの時間軸には、「シーン」「イベントのコンテキスト」「イベントステップ」「イベントのサブステップ」が存在しRPGアツマールでは、それぞれ「シーン」「コンテキスト」「コンテキストファクター」「マイクロコンテキスト」と定義しておりそれぞれのタイミングをコントロールすることで、コメントの流れを制御出来ます。

詳しい内容は、公式サイトのを参照して下さい。

サンプルコード

using RpgAtsumaruApiForUnity;
using UnityEngine;

public class RpgAtsumaruSample : MonoBehaviour
{
    private void Awake()
    {
        // もしプラグインの初期化が終わっていないなら
        if (!RpgAtsumaruApi.Initialized)
        {
            // プラグインの初期化
            RpgAtsumaruApi.Initialize();
        }
    }


    // ゲーム内の場面「シーン」を切り替える
    // さらに、その場面が全体の流れの最初に戻ることがあるのなら、リセットする
    public void ChangeScene(string sceneName, bool reset)
    {
        // コメントAPIにシーン名とリセットするかどうかのフラグを渡してシーンの切り替えをする
        RpgAtsumaruApi.CommentApi.ChangeScene(sceneName, reset);
    }


    // ゲーム内のイベントをトリガーします(会話が始まった、宝箱を調べた、何かのアクションが実行された、等)
    public void OnEventRaised(string eventName)
    {
        // ゲーム内で起きたイベントをRPGアツマールに通知します
        RpgAtsumaruApi.CommentApi.SetContext(eventName);
    }


    // ゲーム内で発生したイベントのステップを実行します(会話の選択肢で "はい", "いいえ" を選んだ、アイテムを所持 "している", "していない"、等)
    public void OnEventStep(string stepName)
    {
        // トリガーされたイベントのステップを通知します
        RpgAtsumaruApi.CommentApi.PushContextFactor(stepName);
    }


    // イベントのステップ内で起きた小さなステップを実行します(次の会話に続いた、アクションタイマーが経過した、等)
    public void OnEventSubStep()
    {
        // イベントのステップの進行を通知します
        RpgAtsumaruApi.CommentApi.PushMinorContext();
    }
}
コメントを利用する