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は不要です。