プレゼンの時間をスライド・セクション別に配分
決められた発表時間から、セクションごと、スライドごとの実用的な進行表を作成できます。合計時間(分)、スライド枚数、各セクションの相対的な重みをご入力ください。指定した優先度を保ちながら整数秒で時間を割り当て、すべてのセクションの合計が発表時間と一致するように計算します。講演のリハーサル、学会発表、営業提案、授業、ウェビナーなど、均等配分では重要な内容に十分な時間を取れない資料に適しています。
無料で実行
リハーサル前に現実的な時間配分を作成します
「1枚につき2分」のような単純平均は簡単に求められますが、実際に伝わる発表の進み方とは一致しないことが少なくありません。タイトルスライドは短い挨拶だけで済む一方、実演、重要なグラフ、提案内容には説明や質疑のために数分必要な場合があります。最初に、持ち時間のうち実際の発表に使う時間だけをご入力ください。次に、資料を意味のあるセクションに分け、それぞれに含まれるスライド枚数を指定します。各セクションには正の相対的な重みを設定してください。重みは分数ではなく比率です。1、2、1 と指定すると、中央のセクションには両隣の各セクションの2倍の時間が割り当てられます。申告した合計枚数は、各セクションの枚数の合計と一致しなければなりません。この確認により、抜け、重複、未割り当てのスライドをリハーサル前に発見できます。結果には参考として全体平均も表示されますが、実際の進行にはセクション別・スライド別の割り当てをご活用ください。
秒数が正確に配分される仕組みをご確認ください
まず、指定された時間を最も近い整数秒に変換します。その合計秒数に、全重みの合計に対する各セクションの割合を掛けるため、小数秒を含む厳密な値が得られます。整数部分を先に配り、残った秒数は小数部分が大きいセクションから順に割り当てます。小数部分が同じ場合は元のセクション順を用いるため、同じ入力では毎回同じ結果になります。各セクション内では、その持ち時間をスライド枚数で均等に分けます。割り切れない場合、余った秒数はそのセクションの前方のスライドに加えられます。この方法により、全セクションの合計は発表時間と一致し、各スライドの合計もセクション時間と一致します。個別に四捨五入した結果、全体が数秒ずれる問題も防げます。すべての値は、生の秒数に加えて分・秒形式でも表示されるため、システム処理にもリハーサル中の確認にも便利です。
重みを編集とリハーサルにお役立てください
最初の結果は固定された台本ではなく、意図を反映した下書きとしてお考えください。ストップウォッチを使って練習し、内容上、時間を増減すべき箇所をご確認ください。中心となる主張が駆け足に感じられる場合、複数のスライド時間を手作業で直すのではなく、そのセクションの重みを増やします。導入が長く感じられる場合は重みを下げて再計算してください。重要なのは重みの絶対値ではなく比率なので、2、4、2 と 1、2、1 は同じ配分になります。聴衆とのやり取り、場面転換、終了前の余裕も考慮することをおすすめします。これらを独自のスライドを持つセクションとして登録するか、計算前に安全余裕を合計時間から差し引けます。極端に短い配分も計算上は有効で、使用可能な秒数よりスライドが多いと0秒のスライドが生じますが、これは資料を見直すべき合図です。本番で使用する前に、スライドを減らす、全体時間を延ばす、または該当セクションの重みを増やしてください。
活用例
学会・講演会の発表を練習
導入や参考資料より研究成果に多くの時間を配分しながら、指定された発表枠内に収められます。
営業プレゼンテーションを計画
スライド枚数だけでなく重要度に応じて、課題確認、製品価値、実演、価格、次の手順の時間を調整できます。
授業やウェビナーを構成
説明、例、演習、まとめ、質疑へ時間を配り、スライド別の進行表をリハーサル用チェックリストとして使えます。
よくある質問
料金はいくらですか?
このページのブラウザー計算機は無料です。API リクエストは1回 $0.002 です。
セクションの重みは合計100にする必要がありますか?
いいえ。重みは相対比です。1、2、1 と 25、50、25 は同じ配分になります。
セクションのスライド枚数を合計枚数と一致させるのはなぜですか?
すべてのスライドが1つの時間管理対象セクションだけに属し、配分漏れがないことを保証するためです。
端数はどのように処理されますか?
最大剰余方式で整数秒を割り当てるため、各セクションとスライドの合計は丸め後の総秒数と正確に一致します。
質疑応答の時間も含めるべきですか?
発表枠に含まれる場合は重み付きセクションとして追加し、別枠で管理される場合は合計時間から差し引いてください。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/biz/slide-deck-time-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"total_minutes":20,"slide_count":8,"sections":[{"name":"Opening","slides":2,"weight":1},{"name":"Core argument","slides":4,"weight":3},{"name":"Conclusion","slides":2,"weight":1}]}'const res = await fetch("https://api.kit.forhosting.com/biz/slide-deck-time-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"total_minutes": 20,
"slide_count": 8,
"sections": [
{
"name": "Opening",
"slides": 2,
"weight": 1
},
{
"name": "Core argument",
"slides": 4,
"weight": 3
},
{
"name": "Conclusion",
"slides": 2,
"weight": 1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/biz/slide-deck-time-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"total_minutes": 20,
"slide_count": 8,
"sections": [
{
"name": "Opening",
"slides": 2,
"weight": 1
},
{
"name": "Core argument",
"slides": 4,
"weight": 3
},
{
"name": "Conclusion",
"slides": 2,
"weight": 1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/biz/slide-deck-time-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"total_minutes":20,"slide_count":8,"sections":[{"name":"Opening","slides":2,"weight":1},{"name":"Core argument","slides":4,"weight":3},{"name":"Conclusion","slides":2,"weight":1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"total_minutes":20,"slide_count":8,"sections":[{"name":"Opening","slides":2,"weight":1},{"name":"Core argument","slides":4,"weight":3},{"name":"Conclusion","slides":2,"weight":1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/biz/slide-deck-time-budget", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"total_minutes": 20,
"slide_count": 8,
"sections": [
{
"name": "Opening",
"slides": 2,
"weight": 1
},
{
"name": "Core argument",
"slides": 4,
"weight": 3
},
{
"name": "Conclusion",
"slides": 2,
"weight": 1
}
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "biz.slide_deck_time_budget",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |