Nikon NX Studio 1.3.2 Windows x64 で RAW 現像ができなかった件

Nikon NX Studio

Nikon NX Studio (Windows x64)で現像ができないという問題に悩まされていました。

ググっても同様の症状のユーザーが居なくて困ってました。
MacOS 版だったらこのフォーラムが見つかりましたが、今思えばこれもMacOSでカラープロファイル仕様が変わったことによる問題だったかも?(後述)
> ちなみに Mac 版は NX Studio のバージョンアップで解消済み

問題

NX Studio での現像は2パターンの操作があります。

  1. プレビュー > 右クリック > 出力 > 書き出し
  2. ファイル > 書き出し
いづれも下記のダイアログが出、「書き出す」ボタンで JPEG/TIFF が出力されるわけですが、これがうまくいかないという感じです。

NX Studio 1.3.2 windows x64
書き出しダイアログ

NX Studio 1.3.2 windows x64 で「書き出す」ボタンを押下すると。

「選択されたフォルダーには書き出しできるファイルがないため、操作を実行できません。」メッセージダイアログが出て書き出しが実行されない。

NX Studio 1.3.2 - Export error?


備考

  1. 上記エラーダイアログにて「OK」を押下する
  2. NX Studio の左下の「処理中」が進捗しない
  3. NX Studio を終了しようとすると「実行中の処理があります。処理を中止すると予期しない結果が生じる可能性があります。処理を中止してアプリケーションを終了しますか?」ダイアログが出る。

特記事項

  1. 出力先パスにはサブフォルダーのみ生成されている
    1. 書き出す>出力フォルダー指定によるフォルダ
  2. 入力が、RAW (NEF) でも JPG (JPEG) でも結果は同じ(現像できない)
    1. 手持ちカメラで作成された画像のみならず、いかなる画像(JPEG)でも結果は同じ
    2. 正常な NX Studio はカメラ無関係に JPEG > JPEG ファイルも現像できる
  3. NIKON Imaging Space には書き出しできる
  4. NX Studio が書き出し失敗する環境でも Capture NX-D (配布終了?)は現像できる
    1. ただし、Capture NX-D はZシリーズなどの新しいカメラ RAW を読めない
  5. 自宅のメインリグでのみこの問題が起きる
    1. 構成が異なる自宅のサブ機ではこの問題は出ない

問題特定方法


エラーメッセージが「ファイルがない」と言っているあたりから想像し、NX Studio がファイルシステムに対し、どのようにアクセスして何が無いと言っているか。
あるいはメッセージそのものの信ぴょう性を調べることにしました。

これには、Microsoft が配布している ProcessMonitor を使用します。
使い方はドキュメントみればわかるので割愛しますが、 NX Studio を監視対象にして、API call をキャプチャします。
膨大なログが発生するので、エラーダイアログを発生させる直前からキャプチャした方がわかりやすいです。
もちろんエラーがでたらすぐにキャプチャー終了します。

実際のログ(一部)


"22:27:23.5992321","NXStudio.exe","284","CreateFile","C:\Windows\System32\spool\drivers\color\U3219Q.icm","NAME NOT FOUND","Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a"

それっぽいログを発見。

C:\Windows\System32\spool\drivers\color\U3219Q.icm

これは モニターのカラープロファイルですね。
わたくしの環境は・・・下記のようになっております。
今回読み込もうとしていたカラープロファイル名から想像するに U3219Q は左側の DELL U3219Q になります。

D3219Q | G3223D(Primary) | G3223D 

ファイルシステムを見てみると、確かに
C:\Windows\System32\spool\drivers\color\ には U3219Q.icm

は、
存在していませんでした。

元々は存在していたかもしれませんが、カラーキャリブレーション(i1-Profiler)で新たなカラープロファイルを作成した際に、このファイルがリネームされたか、自分で消したと思われます。

解決


DELL U3219Q の既定のプロファイルをコピーし下記のようにリネームしました。

C:\Windows\System32\spool\drivers\color\
U3219Q.icm

その後、NX Studio を再起動したところ現像できるようになりました。

既定のプロファイル DELL U3219Q-D65-80cd-A.icm を単純にコピーしたので、U3219Q.icm はプロファイル名が同じになっているのが分かると思います。

colorcpl.exe

書き出しされた JPEG 側のカラープロファイルはどうなっているのか

見てみますとモニターのカラープロファイルは使っていなさそう。
モニターに合わせ、都度 Nikon sRGB プロファイルを調整している感じも思えなくもないですが、どうなんでしょ?

Exported image color profile


とりあえずエラーは解消したのでこれ以上は深堀はしてません。
NX Studio は、ソースコードも仕様書も非公開なソフトウェア(exeファイル)ですので、根本解決作業を行うことは私にはできません。

原因

  1. 一種のおま環
  2. NX Studio の仕様
  3. その両方


こうあるべきでは?

一エンドユーザーの立場で差し出がましい事を言わせていただけば

エラーメッセージが不適切なのでは?

一般コンシューマー向けアプリなので、あまり細かなエラーメッセージも考え物かと思いますが、「モニターカラープロファイル:${ファイル名}が読めません」とか。
メッセージじゃなくても ログでも良いですね。
(ちなみに、NX Theher はログ吐いてるけど、NX Studio はログ吐かないんです)

ファイルが見つからなかった際のフォールバックが甘そう

カラープロファイルをアプリロジックで読んでいるのか何かのAPIかどうかは知りませんけど、Exception を握りつぶさず、Catch して代替処理を組んでおけば回避できる問題かもしれません。
エンドユーザーの環境は千差万別なので、このような「ファイル名決めつけ処理」は無駄なカスタマーサポートとのやり取りをしなくて済む効果があると思います。


疑問

  1. 私の DELL U3219Q モニターには既定のプロファイルとして別のプロファイルが設定されていたのに、なぜこのプロファイルを読みたかったか。
    どこからこのファイル名を推測したのか。
  2. ログを追うと、全モニターのカラープロファイルを読もうとするのはなぜか。
  3. 出力設定ではカラープロファイル埋め込みをOFFにしているのになぜカラープロファイルを読むのか。
  4. なぜ NIKON Imaging Space には書き出せるのか。
    1. 実はこのカラープロファイル読む必要ないのでは?
まあ謎ですね。

Mac版の問題点との類似性

MacOS Montley にてディスプレイ関連に大幅に変更が入っており、結果MacOS版のNX Studio もこれの影響を受けていたと考えられます。
英語版のエラーメッセージはこうなるようです。

"You cannot apply this operation to unsupported files..."
翻訳: サポートされていないファイルにこの操作を適用することはできません...
似てますよね。

原因は同じじゃないかもだけど、NX Studio はカラープロファイルを読む必要があって、読めない場合の処理がよろしくなさそうです。
しかも Mac版は 1.1.1 (2021年12月リリース) でこの問題を解消してます。
(古いリリースを見る方法がないのでリリースノートなどを確認できず)

ニコンサポートとのやり取り

この件はニコンのサポートとも共有しています。
サポートさんは親切に対応していただけてとても好印象な方でした。

やり取りは掲載しませんが、NX Studio の品質改善になれば幸いです。

ちなみにこの記事はサポートさんのつまりニコンの了解を得て公開しています。
なお。バグ報奨制度の有無についても聞いてみましたが華麗にスルーでした。
せっかく自力で調べましたのに・・・
このあたり良くも悪くもThe日本企業という感じでした。