ゲーム開発ガイド

TikTok LIVEの インタラクティブゲームを作る

チャットコマンド、ギフト、いいねで視聴者にゲームを操作してもらおう。Unity、C++、Webブラウザなど、WebSocketに対応したどのエンジンでも動きます。

TikTok LIVEゲームとは?

TikTok LIVEのインタラクティブゲームは、視聴者のアクションがゲームプレイに直接影響する、視聴者参加型の体験です。視聴者がチャットメッセージ、ギフト、いいねを送ったり配信者をフォローしたりすると、そのイベントでゲーム内の反応が起こります。敵が出現したり、環境が変わったり、キャラクターを操作したりできます。

人気の例:

  • チャットで操作するバトル - 視聴者がコマンドを入力してチームに参加し、戦う
  • ギフトで発動するエフェクト - バラを送るとアイテムが出現、ユニバースでボス戦が始まる
  • いいねの連打 - いいねで重力、スピード、難易度が変わる
  • フォローアラート - 新しいフォロワーで味方のNPCが出現

仕組み

ゲームはWebSocketでTikTools APIに接続し、TikTok LIVE配信からイベントをリアルタイムで受信します。各イベントには、視聴者のユーザー名、行ったアクション、関連するデータ(ギフトの価値、チャットメッセージなど)が含まれます。

// The flow:
// 1. Viewer watches TikTok LIVE stream
// 2. Viewer sends a gift/chat/like
// 3. TikTool API delivers the event via WebSocket
// 4. Your game receives the event and responds

TikTok LIVE → TikTool API → WebSocket → Your Game Engine

方法1: Webゲーム(JavaScript)

一番シンプルな方法です。ブラウザやNode.jsのバックエンドから直接接続します:

import { TikTokLive } from '@tiktool/live'

const client = new TikTokLive({
  uniqueId: 'streamer_username',
  apiKey: process.env.TIKTOOL_API_KEY
})

// Gift → Spawn an item based on gift value
client.on('gift', (event) => {
  const item = event.diamondCount >= 100
    ? 'boss_enemy'
    : event.diamondCount >= 10
    ? 'power_up'
    : 'small_coin'

  spawnItem(item, event.nickname)
  console.log(`${event.nickname} spawned a ${item} with ${event.giftName}!`)
})

// Chat → Let viewers vote or issue commands
client.on('chat', (event) => {
  const cmd = event.comment.toLowerCase().trim()

  if (cmd === '!join') {
    addPlayer(event.nickname, event.userId)
  } else if (cmd === '!left' || cmd === '!right') {
    movePlayer(event.nickname, cmd.replace('!', ''))
  }
})

// Like → Increase game speed or difficulty
client.on('like', (event) => {
  increaseDifficulty(event.totalLikeCount)
})

// Viewer count → Scale the challenge
client.on('viewer_count', (event) => {
  setEnemySpawnRate(event.viewerCount / 100)
})

await client.connect()
console.log('🎮 Game connected to TikTok LIVE!')

方法2: Unity(C#)

Unityから生のWebSocket接続を使います。追加のプラグインは不要です:

using System;
using UnityEngine;
using NativeWebSocket;  // Install via Package Manager

public class TikTokLiveGame : MonoBehaviour
{
    WebSocket ws;

    async void Start()
    {
        ws = new WebSocket(
            "wss://api.tik.tools?uniqueId=streamer_username&apiKey=YOUR_API_KEY"
        );

        ws.OnMessage += (bytes) =>
        {
            var json = System.Text.Encoding.UTF8.GetString(bytes);
            var msg = JsonUtility.FromJson<TikToolEvent>(json);

            switch (msg.@event)
            {
                case "gift":
                    SpawnGiftEffect(msg.data.giftName, msg.data.diamondCount);
                    break;
                case "chat":
                    ProcessChatCommand(msg.data.comment, msg.data.user.nickname);
                    break;
                case "like":
                    IncreaseDifficulty();
                    break;
            }
        };

        await ws.Connect();
        Debug.Log("Connected to TikTok LIVE!");
    }

    void Update()
    {
        #if !UNITY_WEBGL || UNITY_EDITOR
        ws?.DispatchMessageQueue();
        #endif
    }
}

ゲームデザインのコツ

  • 視聴者の名前を表示 - ギフターやチャット参加者のユーザー名をゲーム内に表示して、視聴者に「見てもらえている」と感じてもらう
  • 視聴者数に合わせて調整 - viewer_countイベントで難易度を動的に調整
  • ギフトの段階 - TikTokのギフトの価値(1💎 = 小、10💎 = 中、100💎+ = 特大)をゲーム内エフェクトに割り当てる
  • クールダウン - チャットコマンドにユーザーごとのクールダウンを設けてスパムを防ぐ
  • 視覚的なフィードバック - 視聴者が操作したら何が起きたかを必ず見せて、盛り上がりを保つ

FAQ

LIVEゲームを作るにはTikTokの公式APIが必要ですか?

いいえ。TikTokはLIVE配信イベントの公開APIを提供していません。TikToolはWebSocketで配信するサードパーティのマネージドAPIを提供しており、どのゲームエンジンでも使えます。ゲームの試作なら7日間の無料Sandbox評価で十分です。

ゲームではどのイベントを使えますか?

すべてのイベントを使えます: chat、gift、like、follow、share、member(入室)、viewer_count。詳しくはイベントリファレンスをご覧ください。

Godot、GameMakerなど他のエンジンでも使えますか?

はい。WebSocket接続に対応したエンジンなら、どれでもTikTool APIを使えます。wss://api.tik.toolsに接続してJSONメッセージを解析するだけ。SDKは不要です。