上次我舉Vtuber作為例子,這次藉由岡田夢以公開的行程,搭配 NotebookLM 詳細分析:
對表演者而言,演唱會當天是一場結合高體力消耗、極致專注與高不確定性的考驗。觀看岡田夢以在公演日的時間安排,這不單是一份時間表,更是一套成熟且具永續性的時間管理架構。將這套行為模式轉化為專業人士面對大型專案或高壓任務時的應對策略,可歸納出五大核心原則:
岡田夢以在演唱會當天於 5:30 起床,將早晨的時間精確分配給生理喚醒與最終確認。這並非單純為了早起,而是為了在進入高壓現場前建立一個可控的穩定區塊。
抵達現場後,她並非立即投入排練,而是先進行心理與空間的準備:
面對一天兩場公演(約 15:00 與 19:00)的體力挑戰,她採用「演出—恢復—再演出」的循環模式:
這是管理法中最具人性的一環。岡田夢以懂得利用平時對熱愛食物的節制,換取高壓當天的特權:
即使深夜 23:30 才回到家,她仍有一套固定的收尾程序:
岡田夢以的時間規劃展現了一種「以人為本」的專業主義:對內承認自己的弱點並用制度補足;對外在不可控的大環境中經營可控的小區域;動能上則不靠意志力硬撐,而是透過「預留緩衝」與「精準獎勵」實現長期續航。
藉由Gemini製作的chartjs圓餅圖原始碼
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>岡田夢以 演唱會當日24小時時間分配圓餅圖 (Chart.js)</title>
<!-- Chart.js CDN -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<!-- Tailwind CSS CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<style>
body {
background-color: #0f172a;
color: #f8fafc;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
</style>
</head>
<body class="min-h-screen flex items-center justify-center p-4">
<div class="w-full max-w-4xl bg-slate-800/80 backdrop-blur border border-slate-700 rounded-2xl p-6 shadow-2xl">
<header class="mb-6 text-center">
<h1 class="text-2xl sm:text-3xl font-extrabold text-transparent bg-clip-text bg-gradient-to-r from-amber-400 via-pink-500 to-indigo-400">
岡田夢以 演唱會當日 24 Hours 行程表
</h1>
<p class="text-slate-400 text-xs sm:text-sm mt-2">
高壓演唱會當天的精準時間管理與微循環恢復機制 (Chart.js 版)
</p>
</header>
<!-- Category Filter Buttons -->
<div id="filter-container" class="flex flex-wrap justify-center gap-2 mb-6"></div>
<!-- Chart Container -->
<div class="relative w-full max-w-md mx-auto h-[360px] flex items-center justify-center">
<canvas id="scheduleChart"></canvas>
<!-- Center Text -->
<div class="absolute inset-0 flex flex-col items-center justify-center pointer-events-none">
<span class="text-3xl font-black text-amber-400 font-mono">24h</span>
<span class="text-[10px] text-slate-400 tracking-widest uppercase">Schedule</span>
</div>
</div>
<!-- Timeline Grid -->
<div class="mt-8 border-t border-slate-700/60 pt-6">
<h2 class="text-sm font-semibold text-slate-300 mb-4 flex items-center gap-2">
<span class="w-2 h-2 rounded-full bg-amber-400"></span>
時段明細與備註
</h2>
<div id="grid-container" class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3 text-xs"></div>
</div>
</div>
<script>
const scheduleData = [
{ name: "刷牙・伸展・早餐", value: 0.5, rawTime: "05:30 - 06:00", category: "準備", color: "#f59e0b" },
{ name: "出門準備", value: 0.5, rawTime: "06:00 - 06:30", category: "準備", color: "#fbbf24" },
{ name: "遺忘物檢查", value: 0.5, rawTime: "06:30 - 07:00", category: "防錯", color: "#ef4444" },
{ name: "移動時間", value: 1.0, rawTime: "07:00 - 08:00", category: "交通", color: "#6b7280" },
{ name: "休息室整理", value: 0.5, rawTime: "08:00 - 08:30", category: "整頓", color: "#10b981" },
{ name: "妝髮造型", value: 1.0, rawTime: "08:30 - 09:30", category: "梳化", color: "#ec4899" },
{ name: "點心時間 / 休息", value: 2.0, rawTime: "09:30 - 11:30", category: "恢復", color: "#8b5cf6" },
{ name: "宣傳照拍攝", value: 0.5, rawTime: "11:30 - 12:00", category: "工作", color: "#3b82f6" },
{ name: "現場彩排", value: 1.5, rawTime: "12:00 - 13:30", category: "演練", color: "#2563eb" },
{ name: "正式前最終調整", value: 1.0, rawTime: "13:30 - 14:30", category: "演練", color: "#1d4ed8" },
{ name: "正式演出 ①(晝場)", value: 2.0, rawTime: "14:30 - 16:30", category: "演出", color: "#dc2626" },
{ name: "吃飯・伸展・麵包獎勵", value: 2.0, rawTime: "16:30 - 18:30", category: "恢復", color: "#a855f7" },
{ name: "正式演出 ②(夜場)", value: 2.0, rawTime: "18:30 - 20:30", category: "演出", color: "#b91c1c" },
{ name: "會場收拾與退場", value: 0.25, rawTime: "20:30 - 20:45", category: "整頓", color: "#059669" },
{ name: "歸宅", value: 2.75, rawTime: "20:45 - 23:30", category: "交通", color: "#4b5563" },
{ name: "社群檢查①・洗澡・睡前檢查②", value: 1.0, rawTime: "23:30 - 00:30", category: "收尾", color: "#06b6d4" },
{ name: "睡眠與休息", value: 5.0, rawTime: "00:30 - 05:30", category: "睡眠", color: "#1e293b" }
];
let selectedCategory = 'ALL';
let chartInstance = null;
// Render Grid Items
function renderGrid() {
const container = document.getElementById('grid-container');
container.innerHTML = scheduleData.map(item => {
const isActive = selectedCategory === 'ALL' || selectedCategory === item.category;
return `
<div class="p-2.5 rounded-lg border transition-all ${
isActive
? 'bg-slate-900/60 border-slate-700/80 text-slate-200'
: 'bg-slate-900/20 border-slate-800 text-slate-600 opacity-40'
}">
<div class="flex justify-between items-center mb-1">
<span class="font-mono text-amber-400/90 font-medium">${item.rawTime}</span>
<span className="px-1.5 py-0.5 rounded text-[10px] font-semibold" style="background-color: ${item.color}22; color: ${item.color}">
${item.category}
</span>
</div>
<p class="font-medium">${item.name}</p>
</div>
`;
}).join('');
}
// Render Category Filter Buttons
function renderFilters() {
const categories = ['ALL', '演出', '恢復', '防錯', '演練', '整頓', '梳化', '準備', '交通', '收尾', '睡眠'];
const container = document.getElementById('filter-container');
container.innerHTML = categories.map(cat => `
<button
onclick="filterCategory('${cat}')"
class="px-3 py-1 text-xs rounded-full transition-all duration-200 border ${
selectedCategory === cat
? 'bg-amber-500 text-slate-950 font-bold border-amber-400 shadow-md shadow-amber-500/20'
: 'bg-slate-900/60 text-slate-300 border-slate-700 hover:bg-slate-700'
}"
>
${cat === 'ALL' ? '全部顯示' : cat}
</button>
`).join('');
}
// Category Filter Logic
function filterCategory(cat) {
selectedCategory = cat;
renderFilters();
renderGrid();
// Update Chart Colors / Opacity
const newColors = scheduleData.map(item => {
if (selectedCategory === 'ALL' || selectedCategory === item.category) {
return item.color;
}
return `${item.color}22`; // Dimmed
});
chartInstance.data.datasets[0].backgroundColor = newColors;
chartInstance.update();
}
// Initialize Chart.js
function initChart() {
const ctx = document.getElementById('scheduleChart').getContext('2d');
chartInstance = new Chart(ctx, {
type: 'doughnut',
data: {
labels: scheduleData.map(d => d.name),
datasets: [{
data: scheduleData.map(d => d.value),
backgroundColor: scheduleData.map(d => d.color),
borderColor: '#0f172a',
borderWidth: 2,
hoverOffset: 8
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
cutout: '65%',
plugins: {
legend: {
display: false
},
tooltip: {
backgroundColor: '#0f172a',
titleColor: '#fbbf24',
bodyColor: '#f8fafc',
borderColor: '#334155',
borderWidth: 1,
padding: 12,
displayColors: false,
callbacks: {
title: (tooltipItems) => {
const index = tooltipItems[0].dataIndex;
return scheduleData[index].name;
},
label: (context) => {
const item = scheduleData[context.dataIndex];
return [
`時段:${item.rawTime}`,
`時長:${item.value} 小時`,
`分類:${item.category}`
];
}
}
}
}
}
});
}
// Boot
window.addEventListener('DOMContentLoaded', () => {
renderFilters();
renderGrid();
initChart();
});
</script>
</body>
</html>
夢以漂亮漂亮,謝謝