判例全文 line
line
【事件名】類似“映画字幕制作ソフト”事件B(2)
【年月日】令和元年8月21日
 知財高裁 平成30年(ネ)第10092号 不正競争行為差止等請求控訴事件
 (原審・東京地裁平成27年(ワ)第16423号)
 (口頭弁論終結日 令和元年5月29日)

判決
控訴人兼被控訴人 株式会社カンバス(以下「一審原告」という。)
同訴訟代理人弁護士 安國忠彦
同 朝吹英太
被控訴人兼控訴人 株式会社フェイス(以下「一審被告フェイス」という。)
被控訴人兼控訴人 Y(以下「一審被告Y」という。)
上記両名訴訟代理人弁護士 永井健三
同 村尾治亮
同 新間祐一郎
同 関谷健太朗
同 千葉健太郎
同 開沼卓也


主文
1 一審被告らの控訴に基づき、原判決中一審被告らの敗訴部分を取り消す。
 一審原告の請求をいずれも棄却する。
2 一審原告の本件控訴を棄却する。
3 訴訟費用は、第1、2審とも一審原告の負担とする。

事実及び理由
第1 控訴の趣旨
1 一審原告の控訴の趣旨
(1) 原判決を以下のとおり変更する。
(2) 一審被告らは、原判決別紙物件目録1記載のソフトウェアを生産し、使用し、譲渡し(電気通信回線を通じた提供を含む。)、貸し渡し、又はその譲渡若しくは貸渡しの申出(譲渡又は貸渡しのための展示を含む。)をしてはならない。
(3) 一審被告らは、その占有にかかる原判決別紙物件目録1記載のソフトウェアのプログラムを収納したフロッピーディスク、CD−ROM、ハードディスク等の記憶媒体を廃棄せよ。
(4) 一審被告らは、原判決別紙物件目録2−1記載の各ソースコードを使用してはならない。
(5) 一審被告らは、原判決別紙物件目録2−1記載の各ソースコードを記録したフロッピーディスク、CD−ROM、ハードディスク等の記憶媒体を廃棄せよ。
(6) 一審被告らは、自ら又は第三者をして、一審被告らが製造、譲渡する製品にTemplate.mdb形式の字幕データのインポート機能若しくはエクスポート機能を実装し、又は実装せしめてはならない。
(7) 一審被告らは、一審原告に対し、連帯して3000万円及びこれに対する一審被告フェイスについては平成27年6月19日から、一審被告Yについては同月20日から、各支払済みまで年5分の割合による金員を支払え。
(8) 訴訟費用は、第1、2審とも一審被告らの負担とする。
(9) この判決は、第7項に限り、仮に執行することができる。
2 一審被告らの控訴の趣旨
 主文第1項、第3項と同旨。
第2 事案の概要
1 本件は、一審原告が、(1)一審被告Yが、一審原告の営業秘密である、「SSTG1」との名称の字幕制作ソフトウェア(以下「原告ソフトウェア」という。)を構成するプログラムのソースコード(以下「本件ソースコード」という。原判決別紙物件目録2−1)を、正当な権限なく一審原告から持ち出して一審被告フェイスに開示し、又は開発担当者として保有していた本件ソースコードを不正の利益を得る目的で一審被告フェイスに開示したこと、(2)一審被告フェイスが、本件ソースコードの前記(1)の不正取得又は不正開示を知りながら字幕制作ソフトウェアである原判決別紙物件目録1記載のソフトウェア(名称は「Babel」。以下「被告ソフトウェア」という。)の制作に当たって本件ソースコードを取得又は使用したことは、不競法2条1項4号、5号、7号及び8号に規定する不正競争行為のいずれかに該当することを理由として、一審被告らに対し、不競法3条1項及び2項に基づき、@被告ソフトウェアの生産・使用等の差止め、A被告ソフトウェアのプログラムを収納した記憶媒体の廃棄、B本件ソースコードの使用の差止め、C本件ソースコードの全部又は一部を記録した記憶媒体の廃棄、D原告ソフトウェアに含まれるファイル「Template.mdb」を利用して原告ソフトウェアとの互換性を確保しようとする行為の禁止を求めるとともに、E同法4条に基づき、損害賠償として3000万円(一部請求)及び遅延損害金の支払を求める事案である。
 原判決は、本件ソースコードのうち、原判決別紙物件目録2−2記載の部分は不競法2条6項所定の営業秘密に該当し、一審被告Yがこれらの情報を一審被告フェイスに開示したことは同条1項7号の不正競争行為に、一審被告フェイスがこれらの情報を取得し、被告ソフトウェアに用いて販売したことは同条8号の不正競争行為に、それぞれ該当するとして、一審被告らに対し、前記@、Aの被告ソフトウェアの生産・使用等の差止め及びその記録媒体の廃棄請求、同B、Cのうち、本件ソースコードのうちの原判決別紙物件目録2−2記載の部分の使用の差止め及びその記録媒体の廃棄請求、同Eのうち、198万9168円及びこれに対する一審被告フェイスについては平成27年6月19日から、一審被告Yについては同月20日から、各支払済みまで年5分の割合による遅延損害金の支払の限度で損害賠償請求を認容し、一審原告のその余の請求を棄却した。
 一審原告及び一審被告らは、いずれも、原判決を不服として、控訴を提起した。
2 前提事実(争いがない事実及び後掲証拠によって容易に認められる事実)
(1) 当事者等
ア 一審原告は、平成10年12月15日に設立されたコンピュータソフトウェアの開発、映画及びテレビ番組等の字幕制作等を目的とする株式会社である(甲1)。
イ 一審被告フェイスは、平成22年2月1日に設立されたコンピュータソフトウェアの開発等、映画及びテレビ番組等の字幕制作、放送用関連技術及び映像制作に関する教室の経営等を目的とする株式会社である(争いがない)。
ウ 一審被告Yは、原告ソフトウェアの開発、制作に携わった者の一人で、一審原告外部の技術者としてその開発、制作に携わり、その後、一審被告フェイスから委託を受け、被告ソフトウェアの実際の開発、制作を担当した(甲37、81の1・2、弁論の全趣旨)。
(2) 原告ソフトウェアの開発等
 一審原告は、平成14年4月30日、米国のソフトレード社から字幕制作ソフトウェア「SST」(以下「旧SST」という。)について日本国内における独占的な改変、複製、利用、販売等のライセンスを受けた(甲4の1・2)。
 一審原告代表者は、平成16年4月14日、ソフトレード社から旧SSTの著作権を買い受け(甲5)、一審原告に対し、旧SSTの改良を許諾した(甲6、弁論の全趣旨)。
 一審原告は、平成18年1月頃までに、旧SSTを改良して原告ソフトウェアを開発、制作し、日本国内において販売を開始した(争いがない)。
(3) 被告ソフトウェアの販売
 一審被告フェイスは、遅くとも、平成25年2月1日から被告ソフトウェアの販売を開始した(争いがない)。
(4) 先行訴訟
 一審原告は、平成25年、被告ソフトウェアは一審原告の著作物であるプログラム(本件ソースコード)を複製又は翻案したもので一審原告の著作権を侵害するものであると主張して、一審被告フェイスに対し、被告ソフトウェアの販売等の差止めや損害賠償等を求める訴訟を東京地方裁判所に提起し(同庁平成25年(ワ)第18110号)、平成27年6月25日、一審原告の請求を棄却する旨の判決(乙4)がされた。
 一審原告は、同判決を不服として控訴するとともに(当庁平成27年(ネ)第10102号)、控訴審において被告ソフトウェアはTemplate.mdbを複製していると主張してTemplate.mdbの使用等の差止請求を追加したが、平成28年3月23日、一審原告の請求をいずれも棄却すべきものとする判決(乙17)がされ、同判決はその後確定した。
3 争点
(1) 不競法2条1項4号、5号、7号及び8号所定の不正競争行為の成否
(2) 差止めの当否及び範囲
(3) 損害及びその額
第3 当事者の主張
1 不競法2条1項4号、5号、7号及び8号所定の不正競争行為の成否について
〔一審原告の主張〕
(1) 本件ソースコードは、全体として、一審原告の営業秘密であるところ、原審で行われた鑑定(以下「本件鑑定」という。)の結果によれば、被告ソフトウェアのソースコードには、本件ソースコードと不自然に一致ないし類似するとされた箇所が4箇所ある(以下、それぞれ「類似箇所1」などと表記する。)。これらの類似箇所は、一審被告らが本件ソースコードを使用しなければ生じないのであるから、一審被告らが、本件ソースコード全体を使用したことは明らかである。
 類似箇所に係る本件ソースコードの内容は、以下のとおりである。
ア 類似箇所1について
 本件鑑定の結果によれば、類似箇所1について、被告ソフトウェアのソースコードSourceDefault.hで宣言されている変数30個のうち、20の宣言が、型、コメント、インデントも含めて、本件ソースコードGlobalSettings.hのものと完全に一致し、残りの10個のうち、5個では少なくとも変数の名前が一致している。一方、一審被告らは、SourceDefault.hと一対をなすSourceDefault.cppをもって、被告ソフトウェアの字幕データの標準値情報としているので、標準値の定義において83%の変数名が一致している。そして、一致する変数名は、本件ソースコードの様々なソースファイルに多数回現れており、類似箇所1に係るGlobalSettings.hで定義された変数は、本件ソースコード上において、多岐にわたる機能に影響を及ぼし、様々な形で利用されている。
 字幕のフォーマットデータ(標準値)をどのように構成するかを設計した後に、当該フォーマットデータの構成要素のどのような変数名を付するか、また、設定した変数をどのような型にするかについては、本件ソースコード上にしか記載がないのであるから、一審被告らが、本件ソースコードを使用して被告ソフトウェアのソースコードを制作したことは明らかである。
イ 類似箇所2について
 類似箇所2に係る本件ソースコードのGlobalSettings.cppは、特定のフォーマット情報を、メモリ上に、編集中のプロジェクトのフォーマット情報として格納する機能である。
 GlobalSettings.cppにおいて、フォーマットデータの構成要素にどのような変数名を付けるか、各変数名にどのような順番で変数を代入するかは、いずれも一審原告の営業秘密であるから、この点において類似する被告ソフトウェアのソースコードは、本件ソースコードを使用して制作したものである。
ウ 類似箇所3について
 類似箇所3に係る本件ソースコードのGlobalSettings.cppは、編集中の字幕のフォーマット情報を保存する際に、既存のフォーマットリストの中に、保存しようとするフォーマット情報と同一のものがないかを判断するために呼び出される比較処理部分である。
 GlobalSettings.cppにおいて、フォーマットデータの構成要素にどのような変数名を付けるか、各変数名にどのような順番で変数を代入するかは、いずれも一審原告の営業秘密であるから、この点において類似する被告ソフトウェアのソースコードは、本件ソースコードを使用して制作したものである。
エ 類似箇所4について
 類似箇所4に係るSSTDB.cppは、Template.mdbに字幕データをセマンティクスに従って記述、保存する機能、Template.mdb形式の字幕ファイル(.mdb)からセマンティクスに従って字幕データを解析する機能、Template.mdb形式の字幕ファイル(.mdb)をセマンティクスに従って原告ソフトウェアのデータメモリ領域に展開する機能を有する。そして、SSTDB.cppは、かかる機能を実行するため、本件ソースコードから様々な関数や定義を呼び出している。
 Template.mdbは、もともと原告ソフトウェアの旧バージョンであるSSTにおけるソフトウェア部品であり、SSTにおいて生成された字幕データを書き出すためのmdb形式ファイルのひな型となるファイルであるが、Template.mdbを開いただけの状態は、様々な文字列とデータの型にすぎず、画面表示からはロジックを確認することはできない。すなわち、Template.mdbの公開された情報を見ても、テーブル名やフィールド名が把握できるだけであり、本件ソースコードに記載された定義を参照しつつ、当該データが何を示すか、何を意味するかを確認、検証しない限り、利用不可能である。Template.mdbのセマンティクスとは、Template.mdbの各フィールドの記述ロジック又は解析ロジック(解析アルゴリズム)であり、本件ソースコードとTemplate.mdb自体の仕様を理解した者でなければ解読できない文字列が有機的一体になって、相互に関連性を有して構成されるものである。そして、一審原告は、かかるセマンティクスを公開しておらず、これを知る者は原告ソフトウェアの開発に関与した限定された範囲の者にとどまるのであるから、かかるセマンティクスを利用している被告ソフトウェアは、本件ソースコードを使用して制作されたものである。
(2) 一審被告らによる本件ソースコードの取得、使用について
ア 本件鑑定の結果によれば、類似箇所1ないし4について、同一人物がコーディングを行ったとしてもこれだけの一致が起こるのは不自然であり、本件ソースコードを参照したと考えるのが自然であると判断されている。
 そして、本件鑑定書は、その鑑定の手法による限りにおいて、類似箇所を指摘するものにすぎず、本件鑑定書を根拠としてその余の部分について、一審被告らにより使用等はなかったと判断することはできない。本件ソースコードと被告ソフトウェアのソースコードの類似箇所は、上記類似箇所1ないし4にとどまるものではなく、類似箇所の変数名などが利用されているソースコードは膨大な行に上る。
 さらに、一審被告フェイスは、Template.mdbによる業務レベルでの互換性をうたって被告ソフトウェアを販売しているところ、Template.mdbを解析するためのセマンティクスを取得、使用しなければ、Template.mdbを利用して原告ソフトウェアとの互換性を確保することができないのであるから、Template.mdbにかかるセマンティクスを取得、使用していることが明らかである。
 コードクローン専門家の意見によっても、類似箇所1ないし4は、いずれも本件ソースコードをコピーアンドペーストして取り入れられたコードである可能性が高く、これ以外の部分についても、本件鑑定の結果によっては、コードの類似箇所や共通箇所がないと判断することはできないとされている(甲143)。
イ このほか、被告ソフトウェアには、一審被告らが被告ソフトウェアに本件ソースコードを流用したことを推認させる事情が多数存在することについての一審原告の主張は、原判決6頁16行目から12頁5行目のとおりであるから、これを引用する。
ウ 以上の事実によれば、一審被告らが本件ソースコードを使用して被告ソフトウェアを制作したことは明らかである。
(3) 一審被告らによる本件ソースコードに係る不正競争行為について
 上記(2)に加えて、字幕制作ソフトウェアの業界は原告ソフトウェアと被告ソフトウェアの寡占状態にあり、両者が競争関係にあること、一審被告Yが、原告ソフトウェアの開発、制作に携わっており、本件ソースコードが営業秘密であることを当然認識できたこと、一審被告Yは、一審被告フェイスの業務に集中的に従事し、一審被告フェイスの利益のために稼働していること等の事情を総合的に勘案すれば、一審被告らの行為は、不競法2条1項4号、5号、7号及び8号に規定する不正競争のいずれかに該当する。
〔一審被告らの主張〕
(1) 鑑定の結果によれば、本件ソースコードと被告ソフトウェアのソースコードが類似するとされたのは、類似箇所1ないし5のみであり、鑑定の対象となったソースコード2万9679行のうちの118行にすぎない。非類似箇所の行数は、2万9561行であり、鑑定対象部分の99.6%は非類似であることになる。
 本件ソースコードは13万6017行であるとの原告主張を前提とすると、類似箇所118行を除く非類似箇所は13万5899行となり、本件ソースコードの99.91%は被告ソフトウェアのソースコードと類似していないことになる。
 そして、以下のとおり、類似箇所1ないし4は営業秘密とはいえず、これらの類似は一審被告らが本件ソースコードを使用したことを意味するものではない。
ア 類似箇所1について
(ア) 本件ソースコード及び被告ソフトウェアのソースコードにおける類似箇所1に係る部分は、利用者が字幕を作る際にフォントサイズなどを設定したデータを保持するための変数の定義部であり、変数の項目と変数の定義の仕方(型、変数名、注釈)からなる。
 変数とは、値を入れる「入れ物」である。変数名は入れ物の名称、型は入れ物の種類を示す型名であって、変数を定義(宣言)するために用いられる。注釈は、プログラマーがソースコードを見たときに、その内容を把握できるように記述するものである。
(イ) 類似箇所1に係る本件ソースコードの内容
 本件ソースコードの類似箇所1に係る箇所が列挙する項目は、字幕の表示パターンの項目である。これらの項目は、字幕ソフトの利用者が、利用に際し確認できるものであり、開示情報である。
 変数の定義部分は、型、変数名、注釈で構成されるのが一般的であり、本件ソースコードもかかる一般的な定義の仕方を採用したものである。
 本件ソースコードの型名の記載は、LONG、CString、BOOLというものであるが、これらは、プログラミングで使用する標準の型の名称である。本件ソースコードでは、数値の項目をLONG、文字列の項目をCString、BOOL値の項目をBOOLとしているだけである。
 本件ソースコードの変数名も、FontName、FontSizeなど字幕ソフトが使用する一般的な内容をごく短い英語表記にしただけの名称であり、注釈欄の記載も、ありふれた一般的な説明である。
 また、字幕の基本的な設定のように、多くの項目からなる一連のデータを扱う場合、データクラスというまとまりとして扱う(データクラスのパブリック・メンバとする)ことは、プログラムの手法として一般的である。
 以上によれば、類似箇所1に係る情報は、本件ソースコード上にしか存在しないものではない。
(ウ) 被告ソフトウェアのソースコードの制作方法
 原告ソフトウェアは、一審原告の従業員ではなく、外部の技術者であった一審被告Yが、一審原告からの依頼により、ほぼ一人で制作したものである。一審被告Yは、原告ソフトウェアの制作作業中、一審原告から、自分のパソコンを持ち込むことや自宅で作業すること、制作途中で取得した資料やデータ、ファイル等を保持することを禁じられておらず、開発過程で収集した資料や付随的に作成したものなどは、利用できるとの認識の下、画像の描画を行う外部ライブラリの評価を目的として、独自に簡易な評価プログラムを作成した。
 一審被告Yは、被告ソフトウェアの開発時にも、その時点での新しいライブラリを評価するために評価プログラムを作ったが、原告ソフトウェア作成時に作った上記評価プログラムが自分のパソコンに残っていたため、これを利用した。
 以上の次第で、本件ソースコードに利用されたのと同じ変数名・型式・注釈の変数が被告ソフトウェアのソースコードに存在することになり、類似箇所1に係る一致が生じたものであり、かかる一致は、一審被告Yが本件ソースコードを参照して生じたものではない。
イ 類似箇所2及び3について
 類似箇所2は代入演算子のオーバーロード部分、類似箇所3は比較演算子のオーバーロード部分であるところ、これらの部分は入力ミスを防止するため基本的に定義を複製して実装する。一審被告Yは原告ソフトウェア開発時も被告ソフトウェア開発時も、類似箇所1を複製して類似箇所2、3を作成した。
 したがって、類似箇所2、3において本件ソースコードと被告ソフトウェアのソースコードが一致することは、一審被告らが本件ソースコードを使用したことを意味するものではない。
ウ 類似箇所4について
(ア) 類似箇所4は、原告ソフトウェアのSSTDB.cppファイル、被告ソフトウェアのMdb.cppファイルにおいて、字幕データをmdbファイルとして保管する際に付されるフィールド名の一致である。
 フィールド名の情報は、ソフトウェア外で一般に流通するmdbファイルにも記載され、マイクロソフトAccessで開くことができる上、パスワードもかかっていないから、誰でも見ることができる。一審被告らは、旧SSTとの互換を目的として、mdbファイルを参照し、Mdb.cppファイルを実装したものであり、その結果、フィールド名の一致が生じたものである。
 鑑定の結果によれば、「フィールド名の一致」という記載があるのみで、「処理内容の一致」という記載はないこと、鑑定人が、類似の原因が、mdbファイルからフィールド名を抽出したことにある場合には、この類似をもって被告ソフトウェアの独自性が低いと判断することはできないと判断していること等によれば、類似箇所4の範囲はフィールド名に限られることは明らかである。
(イ) 原告ソフトウェアのTemplate.mdbは、旧SSTのプロジェクトファイルをエクスポートするために必要なタイミング等のデータを入れておく箱であり、書式にすぎない。
 この書式の所定のフィールドにユーザーが字幕制作ソフトで作成した字幕データが上書きされていき、字幕データが完成する。完成した字幕データをmdb形式で保存したものがmdbファイルであり、同ファイルには、書式であるTemplate.mdbの情報も全て記載されている。
 セマンティクスとは、データの持つ意味であるところ、Template.mdbは、単なる書式であるから、そのセマンティクスは書式のデータの意味にすぎない。また、mdbファイルに記載された字幕データのセマンティクスについては、mdbファイルに記載された具体的なデータと字幕の表示画面を見ながら、互換を取りたい箇所に関係しそうなデータを変化させて、それが字幕表示画面にどう反映されるかについての相関関係を把握すれば、容易に把握することができ、本件ソースコードを見る必要はない。
(ウ) 以上によれば、被告ソフトウェアにおいて、Template.mdbを複製してPlugDtm.dllとして実装し、Template.mdbやmdbファイルのセマンティクスを把握できたことは、一審被告らが、本件ソースコードを使用したことを意味するものではない。
(2) 一審被告らによる本件ソースコードに係る不正競争行為について
 仮に一審被告らが本件ソースコードを使用したと認定されるとしても、一審被告らは、本件ソースコードを一審原告から示されたものではないこと、一審被告Yには、図利加害目的はないこと、一審被告フェイスに重過失はないことから、一審被告らによる本件ソースコードの使用について不正競争行為を認定する余地はない。
2 差止めの当否及び範囲について
〔一審原告の主張〕
(1) 被告ソフトウェアには本件ソースコードが組み込まれており、被告ソフトウェアは一審原告の営業秘密の侵害品であるから、当該侵害品のバージョンアップされたソフトウェアもまた、侵害品であることは当然である。
(2) 一審被告らの不正競争行為が明らかである以上、これを差し止めることができるのは当然であり、差止請求が権利濫用となるものではない。
〔一審被告らの主張〕
(1) 原判決で使用等が禁止されたソースコードは同判決別紙物件目録2−2記載のソースコード(原判決別紙資料1ないし3のソースコード)だけであり(原判決主文3項、4項)、それ以外の被告ソフトウェアのソースコードについては使用等を禁じられていない。
 しかし、原判決主文第1項は、「被告株式会社フェイスが制作、販売する字幕ソフトウェア『Babel』(ただし、バージョンアップを含む。)」の生産等を禁じており、原判決別紙資料1ないし3のソースコードを使用しない被告ソフトウェアも、バージョンアップ版として、その生産等を禁じられることになる。これは、判決理由中において、類似箇所1ないし4以外の被告ソフトウェアについては、利用が妨げられないことと矛盾し、過大である。
(2) 被告ソフトウェアのソースコードは、そのごくわずかな部分について、プログラムのロジックとも関わりがない変数名、型、注釈に関する記述において、本件ソースコードと一致しているにすぎないから、被告ソフトウェアの生産、使用、譲渡等の差止めを求めるのは、権利濫用に当たる。
3 損害及びその額について
 以下のとおり、当審における主張を付加するほか、当事者双方の主張は、原判決24頁16行目から26頁5行目のとおりであるから、これを引用する。
〔一審原告の主張〕
 原判決は、一審原告の損害額を認定するにあたって、スクール版の譲渡数量を189個と認定しているが、正しくは699個であるから、損害額は、3778万3360円ではなく、4284万2560円である。
 また、原判決は、不競法5条1項は法律上の事実推定規定ではないにもかかわらず、推定覆滅事由を認定しており、法令違反の誤謬がある。
 仮に、同条1項ただし書に基づく事情の認定としても、95パーセントもの過大な推定覆滅は、明らかな事実誤認である。
 被告ソフトウェアの開発は、本件ソースコードの使用という不正競争行為によって、開発原価が著しく抑えられ、販売価格を廉価に設定することが可能となり、しかも、極めて短期間に被告ソフトウェアを上市させ、その結果、営業活動に優位性が生じたのであるから、不正競争行為後の改変行為や営業活動を過度に斟酌し、過大な推定覆滅を認定することは、不当に不正競争行為者を保護する結果を生じさせるものである。
〔一審被告らの主張〕
 一審被告フェイスは、被告ソフトウェアを、ドングル版、オンライン版、スクール版、Web講座用として提供していたが、譲渡しているのは、ドングル版とスクール版のうちの6割であるから、不競法5条1項本文が適用されるのは、ドングル版とスクール版のうちの6割のみである。なお、オンライン版、スクール版のうちの4割、Web講座用について、同条2項の適用を検討する場合、一審被告フェイスはこれらの提供により利益を得ていないから、損害額は0円である。
 類似箇所1ないし3は、変数名、型、注釈にすぎず、プログラムのロジックとは全く関係がないから、これにより原告ソフトウェアを販売することができなくなるということはあり得ず、不競法5条1項による推定は100%覆され、一審被告らは損害賠償債務を負わない。
 また、他に競合品が存在すること、被告ソフトウェアの販売は一審被告フェイスの企業努力によること、被告ソフトウェアが原告ソフトウェアより機能的に優れていること、市場が競合していないことによれば、侵害行為と被侵害者の製品の販売減少との間に相当因果関係は認められず、同条1項ただし書の「販売することができないとする事情」が存在するから、一審原告は、同条 1 項の譲渡数量の全部について販売することはできなかったものであり、損害額は0円である。
第4 当裁判所の判断
 当裁判所は、原判決とは異なり、一審原告の請求はいずれも理由がないものと判断する。その理由は、以下のとおりである。
1 認定事実
 前記前提事実に後掲の各証拠及び弁論の全趣旨を総合すると、以下の事実が認められ、これを覆すに足りる証拠はない。
(1) 原告ソフトウェアについて
ア 原告ソフトウェアは、映像字幕データを作成するソフトアプリケーションである。
 その操作画面は、映像を確認しながら作業が可能となるビデオウィンドウ、音声を波形で表示する音声波形ウィンドウ、ハコ割りした原文を表示する原文ウィンドウ、字幕をワープロ感覚で入力するテキスト入力ウィンドウ、タイムコードウィンドウから構成され、基本編集機能として、字幕テキストの入力・削除、2トラック(二重表示)、スポッティング機能、ルビ・イタリック・傍点・組文字等の設定、コメント機能・ブックマークの設定、ショートカットの設定、字幕の分割・結合、レンダリング機能(仮ミックス用)を、オプションによる高等編集機能として、フォント・エッジの種類・サイズ・カラーの設定、カーニング・レディングの調整、文字の自由位置、フェードイン・フェードアウト、マスクを、それぞれ有し、データコンバート機能として、SSTプロジェクト(.mdb/.sdb)のデータインポート、及びSSTプロジェクト(旧バージョン)(.mdb)のデータエクポートを標準機能で行うことができる。
 原告ソフトウェアによる字幕制作は、@映像の読み込み(あらかじめmpg1又はwmvデータに変換した映像を原告ソフトウェアに読み込む)、Aスポッティング(字幕を表示するタイミングを画面で確認し、音声波形を選択する)、B字幕文字の入力(テキストウィンドウに文字を入力し、Enterキーを押すと画面上に字幕が表示される)、C字幕のプレビュー(映像を再生しながら字幕表示を見て確認する)、D効果の設定(ルビ・イタリック・傍点・組文字などの効果をボタン1つで設定する)、E文字位置・カラーなどの変更(画面を見ながら文字の色や位置の変更作業ができる)、Fレンダリング機能(映像に字幕を合成して仮ミックス映像を作成できる)、Gエクスポート機能(目的のフォーマットにデータをエクスポートできる)の手順により行うものである(甲7)。
イ 原告ソフトウェアに含まれるファイルTemplate.mdbは、マイクロソフトAccessのmdb形式のテンプレートであり、SSTが編集・保存するデータを定義し、体系的なテーブル構成を持ったファイルである。Template.mdbには、エントリーテーブルとして、Globalsテーブル、MpegEditsテーブル、Propertiesテーブル、ScriptCurrentテーブル、ScriptOriginalテーブル、Timecodesテーブル、Track1テーブル、Track2テーブルが存在し、それらの中に147個のデータ項目が設定されている(甲50)。
 Globalsテーブルには、SSTデータファイル全体の設定情報が、MpegEditsテーブルには、映像ファイルの使い方を示す情報が、Propertiesテーブルには、作業上重要な情報が、ScriptCurrentテーブルには、編集された台本情報が、ScriptOriginalテーブルには、インポートされた台本情報が、Timecodesテーブルには、タイムコード関連の情報等が、Track1テーブルには、Aトラックの、Track2テーブルには、Bトラックの字幕情報が、それぞれ保存格納される(甲48)。
 Template.mdbは、もともと、旧SSTにおいて生成された字幕データを書き出すためのmdb形式のファイル(mdbファイル)を作成するためのひな型となるファイルである。原告ソフトウェアで編集される字幕データ(プロジェクト)は、sdb形式で保存されるが、mdb形式で保存されている旧SSTのデータとの互換性を確保するために、Template.mdbを利用している。sdb形式は、Template.mdbの設計構造を受け継いで設計されているため、原告ソフトウェアにおいてsdb形式の字幕データを入出力するためのプログラムは、旧SSTにおいてmdb形式にデータを入出力するプログラムと共通性を有しており、双方のデータ形式を入出力するプログラムは共用される構造となっている(甲48、49)。
 原告ソフトウェアからmdbファイルを作成するには、原告ソフトウェアの字幕情報(sdbの情報)をテンポラリーファイルとして開いたTemplate.mdbに入れ込み、エクスポートする際にTemplate.mdbに「名前を付けて保存」するとの手順による。旧SSTや原告ソフトウェアのエクスポート機能は147のデータ項目を有するmdbファイルから、必要な項目のみを取捨選択し、任意の字幕フォーマットに合わせて変換出力することができる(甲7、50、92)。
 SSTDB.cppファイルは、プロジェクトをmdb形式でインポート・エクスポートするプログラムであり、Template.mdbファイルに、字幕データを記述及び保存する機能、Template.mdb形式の字幕ファイルから字幕データを解析する機能、Template.mdb形式の字幕データを原告ソフトウェアのデータメモリ領域に展開する機能を有する(甲75、76の1、100、104、弁論の全趣旨)。
(2) 被告ソフトウェアについて
ア 被告ソフトウェアは、映画、DVD、Blu−rayのオープンキャプション用字幕を作成するソフトウェアであり、プレビューウィンドウ、字幕テキストウィンドウ、音声波形ウィンドウを有する(甲12、乙19)。
 被告ソフトウェアは、@アイコン表示で操作が簡単、スピーディ、A音声波形上に字幕が表示され、チェックが簡単、B多彩な編集機能を搭載、Cスポッティングを残した状態で、字幕の一括削除が可能、Dショートカットキー設定が自由にでき作業効率アップ、という特徴を有する(甲12)。
 基本編集機能として、スポッティング機能、字幕テキストの作成、制限文字数の表示、2トラック表示、字幕の分割・結合、ショートカットキー設定、タイムシフト機能、ルビ・イタリック・傍点・組文字・表示位置変更、フェードイン・フェードアウト、自由位置・サイズ・カラーの設定・マスク・個別カーニング・レディング、見直し用リストなどを有し、他社字幕ソフトとデータ互換性があり、MDBファイル(.mdb)のインポート、エクスポート機能を有する(甲12、94、130、131)。
イ 被告ソフトウェアにおいては、編集される字幕データ(プロジェクト)は、pjd形式で保存されるが(甲138)、旧SSTのデータをエクスポートするために、PlugDtm.dllを使用している(甲16)。PlugDtm.dllファイルは、一審被告らにおいて、Template.mdbを複製して作成したものである(争いがない)。
 被告ソフトウェアのMdb.cppファイルは、プロジェクトをmdb形式でインポート・エクスポートするプログラムであり、旧SSTや原告ソフトウェアでエクスポートされたmdb形式のプロジェクトを被告ソフトウェアのデータとしてインポートする機能、被告ソフトウェアで作成されたプロジェクトを、PlugDtm.dllを使用して、mdb形式でエクスポートする機能を有する(甲12)。
(3) 本件鑑定書によれば、鑑定人Aによる鑑定の結果として、以下の事実が記載されている。
ア 本件鑑定の手法
 本件鑑定においては、本件ソースコードの610個のソースファイルのうち114個のソースファイルが鑑定の対象とされた。1つ又は複数の本件ソースコードに対して複数の被告ソフトウェアのソースコードを比較するべき場合があることから、300組のソースコードの組合せが鑑定対象とされた。
 8種類のコードクローン(ソースコード中に存在する互いに一致又は類似したコード断片)を検出する技術により、類似度が判定された。その概要は、ソースコード中の識別子やリテラル、コメントの一致度合いをオーバーラップ係数やコサイン係数で測定し、ソースコードの構造の類似性をSmith−Watermanアルゴリズムで測定するというものである。
 その結果、本件ソースコードと被告ソフトウェアのソースコードが完全に一致する箇所が存在し、その理由として一審被告らが一審原告のソースコードをコピー又は参照してコーディングしたことが疑われる場合(基準a)による類似箇所は見つからなかったが、本件ソースコードと被告ソフトウェアのソースコードが不自然に類似・共通する箇所が存在し、その理由として一審被告らが一審原告のソースコードをコピー又は参照してコーディングしたことが疑われる場合(基準b)による類似箇所が4箇所(類似箇所1ないし4)、本件ソースコードと被告ソフトウェアのソースコードに類似性・共通性が見られるが、その理由が不自然とまではいえず、一審被告らが一審原告のソースコードをコピー又は参照したことを疑うのは無理がある場合(基準c)による類似箇所が1箇所(類似箇所5)、それぞれ見つかり、他に類似・共通すると認定できる箇所は見つからなかった。
イ 類似箇所1ないし4について
(ア) 類似箇所1
 類似箇所1は、原判決別紙aのとおりである。
 被告ソフトウェアでは、字幕データの標準値を、SourceDefault.hのCSourceDefaultクラスのパブリック・メンバ変数に、原告ソフトウェアでは字幕データの標準値を、GlobalSettings.hのCGlobalSettingsクラスのパブリック・メンバ変数に、それぞれ格納しており、両者のソースコードの主な役割は、字幕データの標準値を格納する変数を宣言することである。
 被告ソフトウェアのソースコードで宣言されている変数30個のうち、20個の宣言が型、コメント、インデントも含めて本件ソースコードのものと完全に一致し、5個で少なくとも変数の名前が本件ソースコードのものと一致した。
(イ) 類似箇所2
 類似箇所2は、原判決別紙bのとおりである。
 被告ソフトウェアのソースコードSourceDefault.cppが実装するCSourceDefaultクラスの代入演算子のオーバーロードで参照される30個の変数のうち、21個の変数について、本件ソースコードGlobalSettings.cppが実装するCGlobalSettingsクラスの代入演算子のオーバーロードと変数名と注釈の一致が見られた。
(ウ) 類似箇所3
 類似箇所3は、原判決別紙cのとおりである。
 被告ソフトウェアのソースコードSourceDefault.cppが実装するCSourceDefaultクラスの比較演算子のオーバーロードで参照される29個の変数のうち、20個の変数について、本件ソースコードGlobalSettings.cppが実装するCGlobalSettingsクラスの比較演算子のオーバーロードと変数名と注釈の一致が見られた。
(エ) 類似箇所4
 類似箇所4は、原判決別紙dのとおりである。
 原告ソフトウェア、被告ソフトウェアの双方とも、字幕データの標準値をmdb形式のデータベースに保管するために、ActiveX Data Objects(ADO)を利用している。ADOでデータの読み書きを行う際は、Recordsetと呼ばれるオブジェクトを経由する。Recordsetは、レコード(行)とフィールド(列)で構成される表に似たオブジェクトであり、フィールド名を指定してレコードの読み書きを行う。
 被告ソフトウェアのデータベースで用いられている52件のフィールド名は、全て原告ソフトウェアで用いられている63件のフィールド名に包含される。
ウ 類似箇所1ないし4の独自性について
(ア) 類似箇所1について
a 本件ソースコードと被告ソフトウェアのソースコードに共通してみられる特徴として、次の点が挙げられる。
@ クラスメンバ変数の名前がアンダースコア(_)で始まる。変数の命名規則として、クラスメンバ変数の名前の先頭にアンダースコア(_)や、m_をつけることがある。
A 複数の英単語から構成される変数名において、各単語の先頭が大文字になっている(_RubyFontName)。この命名規則はWindowsでよくみられるが、一般的にはアンダースコア(_)を好む開発者もいる●●●●●●●●●●●●●●●●●●
B 型名にLONGが多用されている。色を格納する●●●●●●●●●●●●●●●●●●●●●ではCOLORREF型を用いる方がより自然であるが、双方のソースコードではLONGが一貫して用いられている。また、Win32APIではLONGよりもDWORDの方がよく用いられる印象があるが、字幕データの標準値の変数宣言においてDWORDは一切用いられない。
C HorizontalをHoriz、VerticalをVertと略している。
D 変数宣言の順番が似ている。
E メンバ変数の型を記述する部分に3個のタブ(12個のスペース)を用いている。タブ文字を埋めて変数名の開始位置を揃えることは、多くのプログラマーが実践する慣習である。原告ソフトウェアで用いられている型の中で最も長いものはBottomAlign(11文字)であるため、型名に3個のタブに相当するスペースを与えることは理にかなっている。しかし、被告ソフトウェアで用いられている型の中で最も長いものはCString(7文字)であり、型名に2個のタブに相当するスペースを配置すれば十分で、3個のタブに相当するスペースを与える必要はない。
F ●●●●●●●●●●●●●●●●●●●●のコメントがタブ文字を含めて完全に一致している。特に、「(0:無し 1:フェードイン)」や「(0:無し 1:フェードアウト)」という表記そのもの、「種別」と「(0:無し」の間にタブ文字が置かれていることは、双方のソースコードの共通点・類似点を強く示唆している。仮に、原告ソフトウェアと被告ソフトウェアの開発者が同一人物で、その人物の記憶を手がかりとしても、原告ソフトウェアのソースコードを参照せずに、これほど細かい特徴を一致させるのは難しいのではないかと考える。
 @とAは開発者の慣習であるため、異なる開発者の間でもこれらの特徴が一致することはあり得るが、BないしFの共通点から、原告ソフトウェアと被告ソフトウェアの開発者は同一人物と考えられる。表1.3で示した共通点が多いこと、EFの共通点を鑑みると、被告ソフトウェアは原告ソフトウェアを参照して開発されたと考えるのが自然である。
b 原告ソフトウェアと被告ソフトウェアには、以下の相違点もある。
@ 被告ソフトウェアでは、コメントの開始に//(スラッシュ2つ)が用いられるが、原告ソフトウェアでは、///(スラッシュ3つ)が用いられている。
A 被告ソフトウェアでは、●●●●●●●●●変数のコメントが「本文フォントサイズ」であるが、原告ソフトウェアでは、「本文フォントサイズ(高さ)」のように「高さ」という括弧書きがある。
B 被告ソフトウェアでは、●●●●●●●●●変数の型をLONGとして定義しているが、原告ソフトウェアでは、列挙型である●●●●●●●●である。
C 被告ソフトウェアでは、●●●●●●●●●●●●●●●●●●●●●●●●●のコメントがない。
D その他、仕様の差に由来すると思われる変更点。
c 外部要因の可能性(例えば、原告ソフトウェアのソースコードの一部がSDKのサンプルなどで公開されていたなど)はないと仮定し、類似箇所1のみで判断すると、原告ソフトウェアの開発者と被告ソフトウェアの開発者は必ず同一人物であり、被告ソフトウェアを開発する際に原告ソフトウェアを参照した可能性が高いが、参照せずに開発することが全く不可能とは言い切れない。
 相違点を生み出すことよりも、共通点を生み出すことの方が珍しい現象であると考えられるため、共通点の一致を重く見て被告ソフトウェアの独自性が乏しいと判断した。
(イ) 類似箇所2、3について
 類似箇所2、3については、原告ソフトウェア、被告ソフトウェアのいずれも、類似箇所1の変数やコメントをコピーし、類似箇所2と類似箇所3のコードを記述した可能性を否定できず、類似箇所1に基づいて発生していると考えられるため、類似箇所2、3に基づいて、原告ソフトウェアと被告ソフトウェアの開発者の同一性を判定したり、被告ソフトウェアの独自性を判定することはできない。原告ソフトウェアと被告ソフトウェアの共通点や、共通に見られる特徴は類似箇所1で説明したものと一貫しているが、これによって被告ソフトウェアの独自性の評価をさらに下げることは適当ではない。
(ウ) 類似箇所4について
 鑑定人は、原告と被告ソフトウェアの間でmdbファイルの互換性が確保された経緯を把握していない。また、本鑑定はソースコードの類似性・共通性を評価することを目的としているので、まずは一審被告らがmdbファイルに関する情報を全く持っていなかった場合を仮定して議論を進めると、原告ソフトウェアの開発者と被告ソフトウェアの開発者は必ず同一人物である。被告ソフトウェアを開発する際に原告ソフトウェアを参照したと考えるか、それ以外の特別な事情がない限り、この類似箇所が生み出されることはない。
 被告ソフトウェアのデータベースで用いられる52件のフィールドの名前は、全て原告ソフトウェアのデータベースで用いられているものと同一である。それぞれ1から5単語の英単語の連結で命名された変数が、大文字・小文字や単語の並び順の相違なく、完全に一致するというのは、同一人物の記憶を頼りにしたとしても不自然である。
 フィールド名をさらに詳しく分析すると、以下のような知見が得られる。
@ フィールド名の命名規則にはハンガリアン記法、すなわち、変数の型を名前の先頭に付与しておき、変数名から変数へのアクセス方法に関する情報を伝えようとする記法が用いられている。例えば、変数名の冒頭のbはbool型、iはint型、strはCString型、ptはCpoint(POINT)型、rcはCRect(RECT)型、clrはCOLORREF型を表す。これは、Windowsのソフトウェア開発キット(SDK)でよく用いられているため、Windowsをターゲットとしたプログラミングでは珍しいことではない。
A 「ルビ」に対応する英単語は“ruby”であるが、フィールド名では“rubi”という間違った綴りが用いられる。
B 変数名ではアライメント(alignment)をaligneと略すことが多いが、データベースのフィールド名では“e”が脱落し、Alignとされている。
C フィールド名で用いられるGlobという文字列は、おそらく“global”の略語であり、元々は本件ソースコードの中にあるCGlobalSettingsクラスのことを指していたと推定される。被告ソフトウェアでは、CSourceDefaultクラスに変更になったが、そのままGlobが用いられている。
D 複数形を使うかどうか、過去分詞を使うかどうか、命名で判断に迷うようなフィールド名も完全に一致している。フィールド名を命名した時にどの活用形を使うと判断したかによって、フィールド名の相違が出ても不思議ではないが、類似箇所4ではそれが全く見られない。
 以上は、一審被告らがmdbファイルに関する情報を全く持っていなかった場合を仮定した議論であるが、一審被告らがmdbファイルの形式を知り得たかどうかを考慮する必要がある。mdbファイルはマイクロソフトのAccessで開くことができるため、原告ソフトウェアが生成するmdbファイルのレコード名(テーブル名)、フィールド名を調べることは比較的容易である。
 ただし、各フィールドがどのようなセマンティクスを持つのかを正確に把握するのは、容易なことではない。例えば、iGlobOrientationフィールドが格納している整数値のセマンティクスはかなり複雑である。また、被告ソフトウェアが読み書きするフィールドは、原告ソフトウェアのものと比較すると少ないが、なぜ、一審被告らが少ないフィールドだけで互換性を持たせることができると考えたのか、その理由も不明である。
 類似箇所4が発生する原因として、@一審被告らが原告ソフトウェアを参照して被告ソフトウェアを開発した、A一審被告らが原告ソフトウェアのmdbデータベースの構造を解析して、フィールド名を抽出した上で、被告ソフトウェアを開発した、B何らかの事情により、原告ソフトウェアのmdbデータベースのフィールド名に関する情報が公開されていた、の3つの場合が考えられる。A、Bの場合は、類似箇所4をもって被告ソフトウェアの独自性が低いと判断することはできない。
2 不競法2条1項4号、5号、7号及び8号所定の不正競争行為の成否について
 前記1(3)のとおり、本件鑑定の結果によれば、鑑定対象とされた300組のソースコードのペアは、類似箇所1ないし4について、共通ないし類似すると判断されたことが認められる。
 そこで、かかる鑑定結果を踏まえて、一審被告らが本件ソースコードを使用したと評価することができるかについて、以下検討する。
(1) 類似箇所1について
ア 類似箇所1は、字幕データの標準値を格納するクラスメンバ変数を宣言するものである。
 本件鑑定の結果によれば、被告ソフトウェアのソースファイルSourceDefault.hで宣言されている変数30個のうち、20個の宣言が型、注釈、インデントを含めて原告ソフトウェアのソースファイルGlobalSettings.hのものと完全に一致し(表記方法が複数あると考えられる●●●●●●●●●●●●●●●●●●●●の注釈を含む。)、5個では少なくとも変数の名前がGlobalSettings.hのものと一致しており、残りの5個では一致していない。
 また、本件ソースコードと被告ソフトウェアのソースコードに共通してみられる
特徴として、@クラスメンバ変数の名前がアンダースコア(_)で始まること、A複数の英単語から構成される変数名において、各単語の先頭が大文字になっていること、B型名にLONGが多用されていること、CHorizontalをHoriz、VerticalをVertと略していること、D変数宣言の順番が似ていること、Eメンバ変数の型を記述する部分に3個のタブ(12個のスペース)を用いていること、F●●●●●●●●●●●●●●●●●●●●のコメントがタブ文字を含めて完全に一致していることが指摘されている(以下、順に、それぞれ「共通点@」などという。)。
 そして、鑑定人は、上記共通点BないしFから、原告ソフトウェアと被告ソフトウェアの開発者は同一人物であると判断した上で、変数の一致箇所が多いことと、共通点EFを理由に、被告ソフトウェアが原告ソフトウェアを参照して開発されたと考えるのが自然である旨述べていることが認められる。
イ 本件ソースコードの類似箇所1に係る部分について
(ア) 本件ソースコードの類似箇所1に係る部分は、原告ソフトウェアの字幕データの標準値を、GlobalSettings.hのCGlobalSettingsクラスのパブリック・メンバ変数に格納し、字幕データの標準値を格納する変数を宣言するものであって、処理を行う部分ではない。
 また、本件ソースコードのうち、被告ソフトウェアのソースコードと一致又は類似するとされた25個の変数名は、●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●というものである。そして、上記括弧内の注釈に記載されたとおり、上記の変数は、それぞれ、字幕を表示する際の基本的な設定に関する変数と解される。
 これらの変数名は、字幕制作ソフトウェアで使用する一般的な内容をごく短い英単語で表記したものであり、その形式は、変数の命名をアンダースコアで始め(共通点@)、各英単語の先頭を大文字にして一体化したもの(共通点A)となっているが、鑑定人は、共通点@Aについて、変数の命名規則として、クラスメンバ変数の名前の先頭にアンダースコア(_)があり、各単語の先頭を大文字とする命名規則もWindowsでよくみられ、開発者の慣習であるから、異なる開発者間でも一致することがあり得るとの意見を述べており、変数名の付け方は、特徴的とはいえないと認められる。
 さらに、上記25個の変数についてのデータの型名のうち、両者で一致するとされた23の変数のデータ型は、LONG型、CString型、BOOL型が使用されているところ、これらは、マイクロソフト社が提供する標準のデータ型であって(乙57〜60)、特別なものではない。
 なお、前記1(3)イ(ア)のとおり、本件鑑定の結果によれば、類似箇所1に係る本件ソースコードと被告ソフトウェアのソースコードは、字幕データの標準値(変数名)をパブリック・メンバ変数(公開変数)に格納している点で一致しているとされる。
 しかし、これらの変数は字幕データの標準値を設定するものであって、他のクラスの関数から参照されることが前提であるから、パブリック・メンバ変数とすることは通常のことであると解され、本件鑑定においても、この点は有用な一致点とはされていない。
(イ) 共通点@ないしFについて
 共通点@Aは、異なる開発者であっても一致することがあり得るものであることは、前記(ア)で検討したとおりである。
 共通点Bは、LONG型が多用されているというもの、共通点Cは単語の略し方の特徴、共通点Dは、変数宣言の順番であるが、いずれもプログラムの制作者が同一であれば、同じになることは自然であると解される。また、共通点Eは、変数名の開始位置を揃えるため、メンバ変数の型を記述する部分にタブ文字を使う際に、被告ソフトウェアでは2個のタブに相当するスペースを配置すれば十分で、3個のタブに相当するスペースを与える必然性はないにもかかわらず、3個のタブを使っている点で原告ソフトウェアと共通するというものであるが、被告ソフトウェアにおいては、タブが2個以上であれば変数名の開始位置を揃えることができるから、3個のタブを使用したことが不自然とまではいえない。
 そうすると、共通点BないしEは、原告ソフトウェアと被告ソフトウェアの制作者が同一であれば不自然な一致とはいえないことから、いずれも、一審被告らが本件ソースコードを使用したことを推認させるものではない。
 他方、共通点Fは、●●●●●●●●●●●●●●●●●●●●のコメントがタブ文字を含めて完全に一致しているというものであり、鑑定人は、「特に、『(0:無し 1:フェードイン)』や『(0:無し 1:フェードアウト)』という表記そのもの、『種別』と『(0:無し)』の間にタブ文字が置かれていることは、双方のソースコードの共通点・類似点を強く示唆している。仮に、原告ソフトウェアと被告ソフトウェアの開発者が同一人物で、その人物の記憶を手がかりとしても、原告ソフトウェアのソースコードを参照せずに、これほど細かい特徴を一致させるのは難しいのではないかと考える。」との意見を述べている。そうすると、共通点Fによれば、一審被告らが、本件ソースコードの変数定義部分を参照した可能性を否定できないというべきである。
ウ 検討
 上記イ(イ)のとおり、類似箇所1に係る本件ソースコードと被告ソフトウェアのソースコードとの共通点Fによれば、一審被告らが、本件ソースコードの変数定義部分を参照した可能性は否定できない。
 しかし、上記イ(ア)によれば、類似箇所1に係る本件ソースコードは、変数定義部分であり、字幕データの標準値を格納する変数を宣言するもので、処理を行う部分ではないこと、変数は、いずれも字幕を表示する際の基本的な設定に関する変数であること、変数名は、字幕制作ソフトで使用する一般的な内容を表す、ごく短い英単語に基づくものであって、その形式も開発者の慣習に基づくこと、変数のデータの型は、マイクロソフト社が提供する標準のデータ型であること、注釈の内容も、変数名が表す字幕の意味をそのまま説明したものであることが認められる。
 そして、字幕表示に必要な設定項目は、原告ソフトウェアの設定メニューから把握できること(乙64)、変数の定義の仕方として、変数名、型、注釈で定義することは極めて一般的であること、変数名は字幕ソフトが使用する一般的な名称であること、データの型はマイクロソフト社が提供する標準の型であること、注釈も一般的な説明であることによれば、類似箇所1に係る本件ソースコードの情報の内容(変数定義)自体は、少なくとも有用性又は非公知性を欠き、営業秘密とはいえない。
 一審被告らが、類似箇所1に係る本件ソースコードの変数定義部分を参照して、被告ソフトウェアのソースコードを作成したとしても、このことから他の部分を参照したことまで推認されるものではない上、それ自体が営業秘密とはいえない変数定義部分を参照したことのみをもって、本件ソースコードを使用したとも評価できないというべきである。
エ 小括
 以上によれば、一審被告らが、類似箇所1について、本件ソースコードの変数定義部分を参照した可能性が否定できないとしても、そのことをもって、一審被告らが本件ソースコードを使用したとは評価できない。
(2) 類似箇所2及び3について
ア 類似箇所2、3は、それぞれ、字幕データの標準値を格納するオブジェクトの代入演算子、比較演算子のオーバーロードを定義するものであるから、類似箇所1と同じ変数が使用される。これらの変数は、誤入力を避けるために類似箇所1をコピーして作成したと考えるのが自然であり、類似箇所2、3は、類似箇所1に基づいて発生したものと解される。
 鑑定人も、「類似箇所2、3については、原告ソフトウェア、被告ソフトウェアのいずれも、類似箇所1の変数やコメントをコピーし、類似箇所2と類似箇所3のコードを記述した可能性を否定できず、類似箇所1に基づいて発生していると考えられるため、類似箇所2、3に基づいて、原告ソフトウェアと被告ソフトウェアの開発者の同一性を判定したり、被告ソフトウェアの独自性を判定することはできない。」との意見を述べている。
イ 一審原告は、類似箇所3における比較演算子のオーバーロードは、編集中の字幕フォーマット情報を保存しようとする際、既存のフォーマットのリストの中に、保存しようとする前記フォーマット情報と同一のものがあるか否かを判断するために呼び出される比較処理部分であるところ、そもそも被告ソフトウェアにはフォーマット情報をファイルに保存してリスト化する機能はないから、この部分は被告ソフトウェアにとって不要であると主張し、B大阪大学大学院情報科学研究科准教授作成の意見書(甲143。以下「B意見書」という。)は、類似箇所3について、被告ソフトウェアのソースコードには必要のないコードが存在していることを、流用の根拠として指摘する。
 しかし、演算子のオーバーロードは、C++言語のプログラムでは普通に実装されるものであり、被告ソフトウェアのCSourceDefaultクラスの比較演算子のオーバーロードは、フォーマット情報をファイルに保存してリスト化する機能に特化されたものとは認められないから、被告ソフトウェアにとって不要なものとはいえない。
 そして、他に、類似箇所2、3が、類似箇所1とは別個に生じた類似箇所であることを認めるに足りる証拠はなく、類似箇所2、3によって、一審被告らが本件ソースコードを使用したことを推認することはできない。
(3) 類似箇所4について
ア 類似箇所4は、字幕データの標準値をADOインターフェースでmdb形式のデータベースに格納するためのプログラムに関し、原告ソフトウェアのSSTDB.cppのソースコードと被告ソフトウェアのMdb.cppのソースコードにおいて、52個のフィールド名が一致したというものである。
 上記フィールド名自体はmdbファイルから参照可能であるところ、一審被告らは、旧SSTとの互換を得るため、mdbファイルを参照してMdb.cppファイルを実装したことを認めており、類似箇所4に係るフィールド名の一致は、そのことによって生じたものと推認される。
イ 一審原告は、被告ソフトウェアにおいて、Template.mdbを利用し、旧SSTのプロジェクトファイルと互換性のあるプロジェクトファイルをエクスポートできていることは、Template.mdbのセマンティクス、すなわち、Template.mdbの解析アルゴリズム(解析ロジック)を利用していることを意味するところ、本件鑑定において、類似箇所4から生じるセマンティクスの正確な把握は困難であると指摘されており、Template.mdbのセマンティクスの利用は、本件ソースコードを使用していることにほかならない旨主張する。
(ア) セマンティクスの意味
 セマンティクスとは、データの形式や構造ないし枠であるシンタックスに対応する概念であり、データの意味、内容のことであるとされる(甲95)。
 Template.mdbは、旧SSTにおいて生成された字幕データを書き出すためのmdb形式のファイルを作成するためのひな型であり、ひな型を構成するフィールド名、データ型がシンタックスであるのに対し、各フィールドが表す意味、各フィールドのデータ型に従った個々のデータ値の表す意味がセマンティクスであると解される。例えば、Globalsテーブル1行目の「strGlobFontName」(甲48、50)では、フィールド名「strGlobFontName」、データ型「テキスト型」がシンタックスであり、フィールドの意味が、字幕本文フォント名を表し、「MSゴシック」というように文字列(テキスト)で記述するということが、セマンティクスに当たる。
 この点、一審原告は、セマンティクスとは、解析アルゴリズムであると主張する。
 しかし、Template.mdbは、mdb形式のファイルを作成するためのひな型であり、プログラムではないから、そのセマンティクスに解析アルゴリズムが含まれるとは解されず、一審原告の主張は採用できない。
(イ) セマンティクスの把握方法
a 類似箇所4に係るフィールド名は、Template.mdbに具体的な字幕データ等を上書きしたファイルであるmdbファイルをマイクロソフトAccessで開けば見ることができるところ、フィールド名には、「Font」、「Edge」など、字幕制作に携わる者であれば容易に分かる名称が用いられていることから、それ自体から、フィールドの意味を理解することができるものと認められる。例えば、フィールド名「strGlobFontName」であれば、「FontName」の意味は本文フォント名を表すことを理解することができ、「str」の記載から、データ型がハンガリアン記法(変数の型を名前の先頭に付与しておき、変数名から変数へのアクセス方法に関する情報を伝えようとする記法)により、「CString」、すなわち、文字列型であることを推測することができる。さらに、mdbファイルのプロパティを見れば、データ型も見ることができるから(甲50)、データ型がテキスト型(文字列型)であることを確認することができ、本文フォント名を表し、テキスト型(文字列型)で記載されるフィールドであるというセマンティクスを把握できる。
 フィールド名からすぐにはその内容がわからないものについても、mdbファイルを参照し、記録されている具体的な字幕データの数値を変えて字幕の変化を見たり、目標とする字幕を見つけて該当項目の数値を確認し、字幕の設定を変えて数値の変化を確認したりすることにより、データの属性を把握することができると解される。例えば、mdbファイルで保存した字幕ファイルには、strGlobFontNameのデータとして、「MSゴシック」のように字体の名称が記載されているところ(甲89)、これを手掛かりとして、本文フォントの字体の設定を変えたときに、mdbファイルのstrGlobFontNameのデータがどのように変化するかを試すことにより、どのような名称の字体が記述されるセマンティクスなのかを把握することは可能であると認められる。
 また、「strFormat」は、標準設定と異なる個別設定をする際のフォーマット情報が格納されたフィールドであり、文字修飾の個別設定を指定すると、mdbファイルのstrFormat欄にその個別設定に対応する数字や文字列が格納される(乙24、28)。そうすると、字幕データの入力内容を変化させ、その変化に対して格納される数字や文字列がどのように変化するかを確認することで、strFormatの値がいかなる文字修飾を意味するものであるかを把握できるものと認められ、セマンティクスを把握することができるというべきである。
 以上によれば、一審被告らが、Template.mdbのセマンティクスを利用しているとしても、かかるセマンティクスは、本件ソースコードを使用しなくても把握可能であるものと認められる。
b 鑑定人は、「各フィールドがどのようなセマンティクスを持つのかを正確に把握するのは、容易なことではない。例えば、iGlobOrientationフィールドが格納している整数値のセマンティクスはかなり複雑である。」との意見を述べている。
 しかし、SSTG1操作マニュアルによれば、原告ソフトウェアにおいては、「表示位置・行配置」欄において、6箇所の表示位置と5箇所の行配置を指定することができるとされるところ(乙25)、mdbファイルを参照すれば、iGlobOrientationのデータ値と「表示位置・行配置」とは、「4」と「横下中央」、「1」と「横下中頭」、「8」と「横下中末」、「16」と「横下行頭」というように1対1の対応で把握することができることが認められる(乙29)。そうすると、本件ソースコードを参照しなくても、iGlobOrientationフィールドのセマンティクスを把握することができるものと認められる。
 もっとも、iGlobOrientationは、16進表記で表されており(甲101)、その各桁の数値と、字幕の表示位置・行配置とがそれぞれ対応していると思われるところ、かかる各桁の数値からその意味を把握することは困難であり、鑑定人の上記意見は、この点を指して正確なセマンティクスを把握するのは容易ではないとするものと推察される。しかし、データ値と「表示位置・行配置」の1対1の対応関係を把握できれば互換を得ることができるのであれば、それ以上に、iGlobOrientationのセマンティクスを正確に把握する必要はないと解されるから、互換を得るために必要なiGlobOrientationのセマンティクスは、mdbファイルから把握可能であり、本件ソースコードを参照しない限り把握できないものとはいえない。
(ウ) 以上によれば、一審被告らが、旧SSTとの互換を得るため、mdbファイルを参照してMdb.cppファイルを実装していることは、本件ソースコードを使用していることを意味するものではない。
ウ 一審原告は、本件鑑定書は、SSTDB.cppファイルとMdb.cppファイルは、ファイル自体が類似・共通すると指摘しており、フィールド名の一致は、両ファイルが一致していると判断する理由の一つにすぎない上、SSTDB.cppファイルの行数は優に3000行を超えるのであるから、類似箇所は52のフィールド名の一致にとどまるものではないと主張し、B意見書は、52のフィールド名が一致しており、ファイルが巨大であることから、処理も一致している可能性が高いとの意見を述べる。
 しかし、本件鑑定において、鑑定人は、原告ソフトウェアのSSTDB.cppと被告ソフトウェアのMdb.cppとの目視確認を行った上で、類似箇所は52個のフィールド名にあると鑑定したのであり、処理も含めて両ファイルが類似・共通すると鑑定していないことは明らかである。
 また、B意見書は、被告ソフトウェアのソースコードを視認せずに、類似した処理を含んでいる可能性が高いと述べているにすぎない上、ファイルの行数が多いことが処理の一致を意味すると解すべき根拠はないから、採用することはできない。
 そして、被告ソフトウェアにおいて、本件ソースコードを参照して原告ソフトウェアの解析アルゴリズムを把握し、同じ処理を行っていることを認めるに足りる証拠はない。かえって、エクスポートされるmdbファイルの字幕の配置に関するiGlobOrientationフィールドとiOrientationフィールドのデータ値は、エクスポート前においては、原告ソフトウェア及び被告ソフトウェアのいずれも変数名を●●●●●●●●●●●●とする変数に格納されているが、原告ソフトウェアにおいては、データ型をLONG型とし(甲99、原判決別紙a)、表示位置・行配置の設定について、水平位置、垂直位置、行揃え、縦書き横書きの4種の情報を16進表記の特定の桁に割り当て、特定の桁をマスクビットを用いてビット演算により抽出している(甲100〜102)のに対し、被告ソフトウェアにおいては、データ型を列挙型としており(原判決別紙a)、表示位置・行配置の設定について、水平位置、垂直位置、行揃え、縦書き横書きの4種の情報を16進表記の特定の桁に割り当て、特定の桁をマスクビットを用いてビット演算により抽出するものではないと解され、表示位置・行配置の設定処理のアルゴリズムは同一ではないことが認められるのであって、本件ソースコードを参照したものではないことが推認されるというべきである。
エ 小括
 以上によれば、類似箇所4は、一審被告らによる本件ソースコードの使用を意味するものではないのであって、一審原告の主張は採用できない。
(4) 一審被告らによる本件ソースコードの使用の有無
ア 以上の検討によれば、類似箇所1については、一審被告らが本件ソースコードの変数定義部分を参照したことにより生じた可能性を否定できないものの、当該変数定義部分は営業秘密とはいえない以上、これのみをもって、本件ソースコードを使用したとは評価できない。
 また、類似箇所2、3は、類似箇所1とは別個に生じた類似箇所ではない。
 類似箇所4は、本件ソースコードを参照したことにより生じた一致とはいえない上、旧SSTとの互換を得るために本件ソースコードを参照したとも認められない。
 そして、本件鑑定の結果によれば、300組のソースコードのペア中、類似箇所1ないし5に該当する118行の他には本件ソースコードと被告ソフトウェアのソースコードとが一致ないし類似する部分があったとは認められず、鑑定の対象となったソースコード2万9679行(コメント、空行を除いた有効行)のうち2万9561行は非類似であって、非類似部分が99%以上となる。
 以上によれば、一審被告らが、類似箇所1に係る部分以外に本件ソースコードを参照したとは認められず、また、類似箇所1に係る変数定義部分を参照した可能性が否定できないことをもって、本件ソースコードを使用したとは評価できない。そうすると、本件ソースコードについて、不競法2条1項7号にいう「使用」があったとはいえないというべきである。
イ 一審原告の主張について
(ア) 一審原告は、本件鑑定は最低限度の共通性の言及にとどまり、類似箇所や共通箇所を網羅的に指摘したものではないから、本件鑑定の結果によって、類似箇所1ないし4以外は類似しないとは認定できない旨主張し、B意見書も、本件鑑定手法は不十分であり、他に類似箇所がないとはいえない旨の意見を述べる。
 しかし、鑑定人は、「表1.2に示した(判決注:類似箇所1ないし5)以外の場所では、類似・共通すると認定できる箇所は見つからなかった」と明記しており、本件鑑定の結果によっては、他に類似・共通する箇所があるとはいえないことは明らかである。そして、前記(3)ウのとおり、B意見書は、被告ソフトウェアのソースコードを参照しておらず、具体的な一致箇所を指摘するものではないから、採用の限りではなく、他に本件鑑定の結果を左右するに足りる証拠はない。よって、一審原告の主張は理由がない。
(イ) 一審原告は、類似箇所1ないし4の他にも、一審被告らによる本件ソースコードの使用を推認させる事実が多数存在するとも主張する。
 しかし、以下のとおり、一審原告の主張は、いずれも理由がない。
a 一審原告は、被告ソフトウェアに原告ソフトウェアで使用されているsdb形式の字幕データベースが実装されていたことは、一審被告らが本件ソースコードを不当に入手、利用していることを推認させる旨主張する。
 しかし、被告ソフトウェアのプログラムファイルに、sdbとの記載があることは認められるものの(甲51の1〜5)、sdb形式の字幕データベースが実装されていたことを認めるに足りる証拠はないから、一審原告の主張は、その前提を欠くものである。
b 一審原告は、被告ソフトウェアと原告ソフトウェアには、@字幕の全体設定(デフォルト)を縦書きに設定して作成されたmdbファイルをインポートした場合に、原告ソフトウェアも被告ソフトウェアも横書きでインポートされてしまう、A一審被告フェイスは平成22年に設立されていて、それ以降に開発された被告ソフトウェアからエクスポートしたExcelファイルの拡張子は「.xlsx」となるはずであるところ、被告ソフトウェアのエクスポート先の拡張子は「.xls」である、BExcelの言語設定を英語にした状態で、Excelファイルをエクスポートすると、原告ソフトウェアも被告ソフトウェアもハングアップする、Cエクスポート先をC:¥に設定してExcelファイルをエクスポートすると、原告ソフトウェアと被告ソフトウェアもハングアップする、D横書きで、例えば「ワシントンD.C.」と入力した字幕を縦書きに変換すると、原告ソフトウェアも被告ソフトウェアも「D.C.」のピリオドの位置がおかしくなってしまうとの共通したバグが存在することも、一審被告らによる本件ソースコードの使用を推認させると主張する。
 しかし、本件鑑定の結果によれば、@の事象は、被告ソフトウェアでは発生するものの、原告ソフトウェアでは発生していないとされ、そもそも事象の共通性が認められない、Aについては、原告ソフトウェアは拡張子の情報がリソースの文字列定数として格納されているのに対し、被告ソフトウェアではC#のソースコード中で直接記述されているという差異がある、Bについては、原告ソフトウェアと被告ソフトウェアはExcelのAPIを読み出すために異なるアプローチを採用し、不具合が発生する直接の原因は原告ソフトウェアと被告ソフトウェアでは異なる、Cについては、原告ソフトウェアと被告ソフトウェアとでは不具合が発生する原因が異なる、Dについては、表示位置を左上から右上に修正させる処理が、原告ソフトウェアと被告ソフトウェアとでは、大きく異なっているとの意見が述べられている。かかる本件鑑定の結果によれば、これらのバグが共通することは、一審被告らが、本件ソースコードを使用したことを裏付ける事実とは認められない。
c 一審原告は、本件ソースコードと被告ソフトウェアのソースコードでは、スペルミスが一致するところ、かかる一致は、一審被告らが本件ソースコードを複製したものでなければ到底発生し得ないものである旨主張する。
 しかし、本件鑑定の結果によれば、原告ソフトウェアと被告ソフトウェアとで共通するスペルミスは圧倒的に少ないから、共通するスペルミスの存在は一審被告らが原告ソフトウェアを複製したことの根拠とならないとされる。また、原告ソフトウェアと被告ソフトウェアとで共通して、rubyの複数形をrubiesとすべきところがrubysとなっていたり、ルビの綴りは正しくはrubyであるにもかかわらず、rubiという綴りが混在しているほか、alignmentをalign、horizontalをhorz又horizと略す傾向があるところ、これらは、原告ソフトウェアを参照しなくても、同一開発者の一貫した記憶間違いや発想によっても生じ得るとされる。そうすると、共通するスペルミスも、一審被告らによる本件ソースコードの使用を推認させる事実とは認められない。
d 一審原告は、被告ソフトウェアでは、C++/CLI言語による無用なコーディングが行われており、C++言語の本件ソースコードを流用したことを推認させる旨主張する。
 しかし、本件鑑定の結果によれば、鑑定人は、C++言語とC#言語を使い分けるというのは、「Visual Studio」を用いた開発においては合理的な選択と考えられ、C++/CLI言語は、C++言語とC#言語の間を橋渡しするために用いられていると考えられるとの意見を述べている。そうすると、被告ソフトウェアにおけるC++/CLI言語でのコーディングの存在も、一審被告らが、一審原告から持ち出したC++言語のソースコードを流用したことを裏付ける事実とは認められない。
e 一審原告は、被告ソフトウェアの開発が開始した平成24年頃には、「Visual Studio2008」、「Visual Studio2010」という2つの新しい開発環境がリリースされ、広く一般的に利用されていたにもかかわらず、被告ソフトウェアの当初の開発環境が、原告ソフトウェアの開発環境と同じ「Visual Studio2005」であることは、被告ソフトウェアにおいて、「Visual Studio2005」で開発された本件ソースコードを流用したことを推認させると主張する。
 しかし、本件鑑定の結果によれば、「Visual Studio2005」は、Windows7までしか対応しておらず、被告ソフトウェアの開発環境もWindows7であるから、被告ソフトウェアを開始した時期に、「Visual Studio2005」を開発環境として採用することに、特段の矛盾は見つからないとされる。そうすると、被告ソフトウェアの開発環境が「Visual Studio2005」であることも、一審被告らが本件ソースコードを流用して被告ソフトウェアのソースコードを作成したことを推認させる事実とは認められない。
f その他、一審原告は、るる主張するが、いずれも採用できない。
(5) まとめ
 以上によれば、一審被告Yの行為は、不競法2条1項7号の営業秘密の使用に該当せず、一審被告フェイスについても、同項8号の不正競争行為は認められない。また、同項4号、5号の不正競争行為についても認定することはできない。
 その余の争点については判断するまでもないが、原判決が、将来バージョンアップされた後の被告ソフトウェアについて、本件ソースコードを使用するものか否か審理することなく、その使用等の差止めを認めたことは、その範囲が過大であって、相当でないことを付言する。
3 結語
 よって、一審原告の一審被告らに対する請求は、いずれも理由がないから棄却すべきところ、これと異なる原判決は一部失当である。一審被告らの控訴はいずれも理由があるから、原判決中一審被告ら敗訴部分を取り消して、一審原告の請求をいずれも棄却し、一審原告の控訴は理由がないからこれを棄却することとして、主文のとおり判決する。

知的財産高等裁判所第1部
 裁判長裁判官 高部眞規子
 裁判官 小林康彦
 裁判官 関根澄子
line
 
日本ユニ著作権センター
http://jucc.sakura.ne.jp/