実況のすゝめ

作成日:2018.12.22

カテゴリー:競プロに関するあれこれ

はじめに

 これはCompetitive Programming (2) Advent Calendar 2018の22日目の記事です。
 10月のAGC028から【Rated 実況】をしています。 まだ4回しか実況をしていませんが、これがコンテストの復習にとても役立つことが分かったのでおすすめします。

目次

  1. 実況の利点
  2. 実況の欠点
  3. 実況の方法(収録)
  4. 実況の方法(編集)
  5. まとめ

実況の利点

 まずは利点を見ていきましょう。

コンテスト中の行動を見直せる

 実況をする目的のほとんどがこれです。
 皆さんはコンテスト中に埋めたバグをすべて覚えていますか?さらにどのような考察の段階を踏んで解法に至ったかも覚えていますか? 目の前の問題を解くことに集中しているので、コンテスト後にはこれらのことをほとんど覚えていないでしょう。
 しかし、これらはパフォーマンスを高めるために見直すべきものです。 「このようなバグをよく埋めるなぁ」、「この考察無駄じゃん」、「ここまで来ているのにどうしてあの解法が思い浮かばないんだ」等々の発見することにより自らの思考の癖やバグを明らかにすれば、それらを改善することができます。 思考の改善の第一歩である気づきを得るために、コンテスト中の行動を見直すことは非常に有用です。

伸びしろが見える

 先の項目と被りますが、コンテスト中の行動で悪かった点は、裏をかえせば伸びしろということです。 伸びしろが見えることはモチベーションの維持に役立ちます。

コードが書きやすくなる

 実況というからには、視聴者(未来の自分を含む)にどのような解法を思いついたかを説明する必要があります。 説明の結果として解法をより理解でき、コードに落とし込みやすくなります。

実況の欠点

 当然、欠点がないということはありません。

時間がとられる

 実況を使った復習法の最大の欠点です。
 初めから最後までちゃんと見るとコンテストと同じ時間だけ取られます。 これに加えて、コンテスト中に思い付いた嘘解法のどこがまずいかを考えたり、口走った疑問の答えを探したりするのでさらに時間がかかります。 動画編集をしようものなら、丸一日消滅します。
 時間の有無に応じて、初めの簡単な問題の箇所や見当違いのことをしている箇所を飛ばしたりしましょう。

解くスピードが遅くなる

 説明を心がけるため、解くスピードが遅くなってしまうのは仕方ありません。 一方で考察を適当にしてしまうと、デバッグに手間取る可能性が出てきます。 ある意味トレードオフの関係にあると思って割り切りましょう。

PCに負荷がかかる

 コーディング風景を録画するため、当然PCに負荷がかかります。 しかし十分なメモリが乗っていれば問題ありません。 実際、私は16GBのメモリの乗ったPCを使っていますが、動作が重くて困ったことは一度もありません。

実況の方法(収録)

 次は収録方法について見ていきます。ただ私の環境に従っての紹介なので、他のものを使った方が良いというのはあるかもしれません。
 また撮影環境を決めたら、一度試し撮りをしてみるべきです。実況本番で実は上手くいっていなかったとなっては困りますから。

デスクトップキャプチャー

 実況をするにあたって必要不可欠な要素です。
 私はAG-デスクトップレコーダーを使っています。 しかしこれはフリー版のサポートが終了しているので、シェアウェア版や他のソフトを使った方が良いかもしれません。 これについては、以下のページが参考になるかと思います。
「動画初心者におすすめなデスクトップキャプチャーソフト9選【録画ソフト】」

考察の記録

 後からどのような考察をしたか順序も含めて残るようにします。
 一つの方法としては、考察を記す紙やホワイトボード等の撮影が挙げられます。 ただこのためには撮影機器を準備し、上手く撮影する方法を考えなくてはなりません。 私は段ボール等を積み上げて適切な高さにした台の上にスマホを乗せて、机の上に置いたホワイトボードを自分の向かい側から撮影するという方法をとっています。 この一つ目の方法で注意するべきは、撮影機器のバッテリーと容量です。 2時間前後のコンテスト中に電池切れや容量不足になっては困るので、コンテスト前もしくはその最中に充電をし、容量の残りの確認を忘れないようにしましょう。
 より簡単な方法は、パソコン上で考察をする方法です。こうすればデスクトップキャプチャーで撮影することができます。また、動画にするときもタイミング合わせをしなくて良いので楽です。 しかしこの方法は、タッチパネルのパソコンであったりペンタブ等があったりしないと考察に不便かもしれません。
 最終手段として、撮影せずにすべてを紙に残すという方法も考えられます。 この場合は、どの段階でどれだけ時間がかかったか等の情報が捨てられてしまいます。
 上の3つを参考に自分に合った方法を探してみてください。

声の収録

 声がないと何を考えているのか全く分からないので、その収録は必須です。 裏を返せば、思ったことを声に出さないと後で振り返る時に支障が出るということでもあります。
 考察の記録で撮影機器を用いる場合で、それがちゃんと声を拾うのであれば他に必要となるものはないでしょう。 またパソコンに内蔵マイクがある場合も、その音声をデスクトップキャプチャーに拾わせれば良いでしょう。
 しかしどちらにも該当しない、もしくは音質に不満があるという場合にはマイクを買う必要があります。 ヘッドセットでも十分でしょうし、スタンドマイクでも良いでしょう。 どのマイクが良いかについては詳しくないので各自調べてください。
 声の収録に関して一点注意事項があります。それはサンプルレートです。 特にマイクの入力をデスクトップキャプチャーに拾わせる場合は、その2つ(マイクの方はデバイス)のサンプルレートが一致していないと音ズレの原因になります。 また動画編集をする際も、動画編集ソフトのサンプルレートをそれらに合わせて設定しないといけません。 私も試し撮りをした時にサンプルレートでハマったので気を付けてください。

実況の方法(編集)

 収録が終わったら撮影したものを見て、コンテスト中の行動を反省しながら復習をします。 しかしせっかくなので、復習と同時並行で動画編集をして公開してみましょう。
 動画編集ソフトにも色々ありますが、私は無料で使えるAviUtlを使っています。 このソフトの導入の仕方及び使い方については、「AviUtlの易しい使い方」が詳しいのでこのサイトを参照してください。
 声の加工は、一度wav出力してAudacity等の音声加工ソフトを用いて行います。 最低限ノイズ除去は行い、声の加工はお好みで適当にやりましょう。 私はKeroVeeをプラグインとして入れて声の加工をしています。
 動画編集が終わったらレンダリングをします。これは私の環境で4時間くらいかかります。 しかし動画編集ソフトの使用するメモリ量にもよりますが、十分メモリの載ったパソコンであればレンダリングしながら普通にPCを使えるので問題ありません。 寝ている間にレンダリングをするのも良いでしょう。
 そしてレンダリングが終わったらいよいよYouTube等に投稿します。 YouTubeの場合、デフォルトでは最大で15分の動画しか投稿できないようになっていて、その制限を緩和するにはアカウントの確認が必要です。 具体的には公式のヘルプを参照してください。 但し動画の投稿には時間がかかる上にデータ通信量をかなり消費するので、通信量制限のあるwifiを契約している場合は注意が必要です。
 投稿した後にタイトルや説明を書けば、おしまいです。お疲れさまでした!

まとめ

 コンテスト中の行動を見直せるので、実況は非常に有用です。実況動画を公開しなくても良いので、自分の競プロ風景を撮影して復習に役立てましょう!

広告


<(古い記事) AtCoderで橙コーダになる方法(の一例)

カテゴリー「競プロに関するあれこれ」

(新しい記事)>

<(古い記事) Google Code Jam 2018 Round 1A

全体

(新しい記事)>

自己紹介

赤になりたい競技プログラマー/バランス重視
詳しくはこちら
twitter

プライバシーポリシー

個人情報利用についてはこちら

お問い合わせ

このページに関するお問い合わせはこちら

競技プログラミングMENU

問題を解くまでの道のり

その他

全体MENU

広告