【AviUtl】ニコ生のコメントを読み込ませるプラグイン
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

【AviUtl】ニコ生のコメントを読み込ませるプラグイン

2014-05-07 21:49
  • 11

ニコニコ生放送で付いたコメント(xmlファイル)をAviUtlに読み込ませて、放送とだいたい同じように表示させることが出来ます。

タイムシフトを放送当時のコメント付きで動画にしたいときに役立つかもしれません。

【用意するもの】

【こんなことができます】

以下の操作はAviUtlの編集画面上で行うため、その都度動画を出力する必要なく、細かい変更と確認が簡単に出来ます。

  • 普通に読み込む。
  • フォントを変える。
  • 文字・縁取りの色や透明度を変える。
  • コメントごとに色を変える。
  • 文字の大きさを変える。大きくしても画面からはみ出さないように、自動的に表示位置が調整されます。
  • コメントの流れる位置をランダムにする。左:通常 右:ランダム
  • コメントの流れるスピードを変える。左:通常 右:速くした場合
  • 複数行コメントや、コメント時のコマンド(shita、big、色指定など)も再現できます。

【詳しい使い方】

前提知識:AviUtlの拡張編集の基本操作が出来ること

事前準備

  1. 本プラグインをダウンロードして解凍した中身にある「@ニコニココメント読込.obj」を、AviUtlのscriptフォルダに置きます。すでにAviUtlを起動中の場合は、再起動してください。
  2. AviUtlではShift_JISしか扱えないため(たぶん)、コメントファイルの文字コードをUTF-8からShift_JISに変換する必要があります。変換の方法はいろいろありますが、テキストエディタで開いて保存しなおすか、一括変換できるフリーソフト等を利用してください。Windows7ならメモ帳でも出来るみたいです(名前をつけて保存⇒文字コード「ANSI」でOK)。変換の際はバックアップを取ることを強くお勧めします。

AviUtlでの作業

  1. 動画ファイルを配置します。タイムシフトの場合は通常flvファイルですが、AviUtlはデフォルトでflvファイルを読み込めないので、プラグインを導入するかaviファイルに変換するかしてください。
    動画ファイルを拡張編集のタイムライン上にドラッグ&ドロップ
  2. 配置した動画ファイルの下のレイヤーに、本プラグインのオブジェクトを配置します。
    拡張編集のタイムライン上で右クリック⇒メディアオブジェクトの追加⇒カスタムオブジェクト プルダウンで「ファイル指定@ニコニココメント読込」を選択
  3. コメントファイルを読み込ませます。
    ファイル指定@ニコニココメント読込の右にある「参照」を押して、読み込ませたいコメントファイル(xml)を指定

基本はこれだけです。さらに下のレイヤーにカスタムオブジェクト「詳細設定@ニコニココメント読込」を追加すれば、「設定」ボタンでフォントや色を変えたり出来ます。



以上ニコニコ生放送の例で説明しましたが、ニコニコ動画のコメントも読み込めるかもしれません(未確認です)。

【制限事項】

  • 放送当時と完全に同じ画面が再現されることは保証できません。あくまで同じ雰囲気になる程度と思ってください。
  • 前述の通り、Shift_JISで表示できない文字は扱えないので、職人さんが頑張ったAAなどが再現できない場合があります。
  • 使い方によっては少し怪しい挙動をすることを確認していますが、自分用に作成したスクリプトなので、困らない限り修正予定はありません。

【やりたいけど方法がわからないので保留していること】

  • 動画のファイル名と同じ名前のコメントファイルを自動的に読み込ませる機能。別レイヤーの動画オブジェクトのファイル名を取得する方法があればいいのですが……。
広告
他1件のコメントを表示
×
>ritさん
画面キャプチャしなくてよいので、タヒ動画製作がかなり楽になりました。
かなりいい加減にコードを書いているので、改良報告とかは歓迎です!
61ヶ月前
×
最近たくさん利用させていただいています。ありがとうございます。
現在、処理の高速化と弾幕への耐性を上げるための改良に取り組んでいるのですが「vpos(コメントの表示タイミング)を補正する」部分の処理が何を意図したものかわからず、少し悩んでおります。
もし覚えていましたら教えていただけないでしょうか?
稚拙ながら改良版が形になりましたらフィードバックさせていただこうと思っています。
32ヶ月前
×
こんにちは、ご利用ありがとうございます。
本ツールでは、各コメントの表示時期を、vposの値をもとに計算しています。
vposは(おそらく)放送開始からの経過時間を示す値ですので、当然後のコメントほど大きくなっていくはずです。

ところがどういうわけか、後のコメントのほうが前のコメントよりも値が小さいことがあります。
このままですとコメントの表示順序が逆転してしまうので、dateの値を用いて補正を掛けているというわけです。(vposを「直前のコメントのvpos+直前のコメントとのdateの差(秒)+0~1秒後」に上書き)

なお自分が見た範囲では、dateの値は、後のコメントのほうが前のコメントよりも値が小さいことはないようです。
ならば最初からdateの値からコメントの表示時期を計算すればと思うところですが、dateの値は秒単位なので、1秒以内のコメントがすべて並行して表示されるという妙なことになってしまいます。

弾幕状態の時は多少の表示順序の逆転は気にならないでしょうから、この部分の処理を飛ばしてしまっても構わないかと思います。
32ヶ月前
×
>>5
丁寧な解説ありがとうございます。大変参考になりました。
勝手な想像でしかありませんが、もしかするとコメントした人の回線が細いなどの理由で遅延が発生したりすると、逆転するのではないかと考えています。

現在調整を進めていますが、読み込んだ全てのコメントに必要最低限の処理を実施するためのループと、現在のフレームを描画するためのループに分割する方針で、処理時間を 2/3 程度に短縮できそうです。
32ヶ月前
×
処理時間短縮版の動作確認が終わりましたので、報告させていただきます。
ソースはこちらに上げたのですが、公開状態に問題などありましたらすぐ削除させていただきます。
https://gist.github.com/semnil/90b62a5d58c558b599ff0b427079ac03
(中身は結構大きく変更しています。申し訳ありません・・・)

懸案の vpos の補正部分については、処理構造を変更したこともあり完全に vpos を信用して並べるようにしてあります。

コメント xml の仕様はこちらも参考にしました。
http://www.slideshare.net/masahiroh1/ss-24757915
https://www59.atwiki.jp/nicoapi/pages/20.html
32ヶ月前
×
お返事が大変遅くなってしまいましたが、再配布等は自由なので問題ありません。
覚えたての言語でかなり強引に書いた処理もあると思うので、大きな改変も大歓迎です。
参考情報もありがとうございます!
32ヶ月前
×
zenzawatchで保存するコメントを読み込ませるにはどうしたらいいんでしょうか?
26ヶ月前
×
説明の通りにファイルを置いているのですがなぜかカスタムに表示できません
できれば写真の追加などおねがいできますか?
25ヶ月前
×
もう対応してないんかね
はーつっかえ
18ヶ月前
×
とても使いやすくて良いですね。ありがとうございます。
15ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。