2015年3月8日日曜日

NikonSDKを使って、テザー撮影とストリーミング配信まで

 ニコンの一眼レフ、ミラーレスは、ライブビューの画面をPCに映し出すのに、少々出費が必要となる。

 Lightroomは、先回のアップデートでD810のテザー撮影が可能になったが、それもPC上でシャッターを切って、ファイルをPCに流し込む程度の動作しかしない。
 PCにライブビューを取得するには、「Camera Control Pro 2」が必要になるのだ。しかし、結構良い値段がするので二の足を踏んでしまう。

 しかし、ニコンには「NikonSDK」と言うものが、無料配布されており、フォームに個人情報とか、利用目的なんかを書き込むと、ダウンロードリンクを教えて貰える。
 会社名とか聞かれるけど「個人」で押し通したし、使用目的も「PC上でのコントロールの検討」としたので、余程問題がなければOKな筈だ。

 一応、開発者向けと銘打っているし、ダウンロードにそれなりの制限を掛けているので、全部の方法を懇切丁寧に教えるのはマズイかなぁ、と言うので、少しばかり濁らせながら……

※以下に示す方法をやって上手く行かなくても、誰も(ニコンも僕も周囲の友達も)サポートしません。また、不具合が生じても、ニコンも僕も周囲の友達を含めた誰も責任を取らないので、それが嫌なら、回れ右して下さいませ。


必要なもの
・NikonSDK

Nikon SDK C# Wrapper
 NikonSDKをC#とかで使えるようにする便利ツール

VS Express 2013 for Desktop
 マイクロソフトが無料配布してる開発ツール。


やり方

 全部を解凍、インストールを済ませた後は、VBで新しいプロジェクトを始めて、以下のファイルを「Debug」のフォルダに放り込む。

・nikoncswrapper.dll
・nikoncswrapper.pdb
・Type00##.md3 (##はカメラ毎に違う)
・NkdPTP.dll

 プロジェクトに、「nikoncswrapper.dll」を参照させて、「nikoncswrapper.pdb」を取り込む。

 Nikon SDK C# WrapperのデモプログラムにVBで動かせるのがあるから、コイツを新しいプロジェクトにコピー、コントロールの配置とリネームをする。コードから「Type00##.md3」を見つけ出して、自分のに書き換える。
 使い勝手(保存先とか画面の大きさ)に関しては、自分で頑張ってコードを書き換えて下さいませと。

 これで基本的には動くはず。僕もサポートしきれないから、以上の内容がヒントにもならない人は、素直に「Camera Control Pro 2」買いましょう。


 あとは、特定のフォルダにファイルを流し込めば、Lightroomでそれを監視するだけで、スタジオ撮影は楽になりますし、「ニコ生デスクトップキャプチャー」を使えば、そのままストリーミング配信までやれちゃいます。
 なお、ストリーミング配信をやるなら、ムービーモードでのご使用をお勧めします。

 尤も、どうしても一眼じゃなきゃ配信できないって事情じゃない限り、高めのウェブカムを買う方をオススメします。
 何故かというと、ライブビューしながらPCにデータ流し込むって事をしていると、もの凄い勢いでバッテリーを喰うのです。
 一眼レフ用の電源アダプターは、何だかんだで一万円以上するので、少々メンドウだなぁと。
 あと、カメラに付属のUSBケーブルは短いので、長いのも買わなくちゃいけないし……

 大体こんな感じです。
 あと、Wi-Fi繋いだときの事は知らぬ!