以下の点に注意して投稿してください。
private void button1_Click(object sender, EventArgs e) { // 画像のロード Bitmap bmp = new Bitmap("path_to_your_image.bmp"); // 指定する色を透明に設定 Color targetColor = Color.White; // 例: 白色を透明にする bmp.MakeTransparent(targetColor); // マスク画像を作成(PixelFormat.Format32bppArgbを使用) Bitmap maskBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb); using (Graphics g = Graphics.FromImage(maskBmp)) { // 元の画像を描画する g.DrawImage(bmp, 0, 0); // 彩度を0にするColorMatrixを作成 ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} }); // 画像属性を作成 ImageAttributes attributes = new ImageAttributes(); attributes.SetColorMatrix(colorMatrix); // マスク画像に透明部分以外を黒に設定 g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, askBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes); } // 結果画像を作成(元画像にマスク画像を重ねる) Bitmap resultBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb); using (Graphics g = Graphics.FromImage(resultBmp)) { // 元の画像を描画 g.DrawImage(bmp, 0, 0); // マスク画像を重ねる g.DrawImage(maskBmp, 0, 0); } // PictureBoxに結果画像を表示 pictureBox1.Image = resultBmp; }
処理のご提案ありがとうございます。
画像を拝見しました。 なるほど、これはネイティブの人でも読み辛そうですね・・・。
いくつか質問させてください。
こちらで前に試した時は前に書いた通り、巻き込む色を増やすと激重になりました。 そして、添付された画像を見る限り、白色部分はアンチエイリアスの影響で単色ではないように思います。 貼って頂いたソースでは、マスクしている色、即ち「targetColor」は白の単色(255,255,255)ですが、これはちゃんと動作するのでしょうか? 巻き込む色を全てマスクする場合、重くなるのではないかと懸念しています。
ご提示頂いたソースでは彩度を0(黒)にしていますが、これは色置換の逆ではなく処理としては「指定した色以外を全て黒色に置換する」となっています。 仮に黒色(またはそれに近しい色)をマスクした時、彩度を0にする方法だと処理後の画像は真っ黒になりそうな気がします。 これについて何か解決方法はありますか?
最後に、PCOTはC#で組んでいるのでご提示頂いたソースはそのまま流用可能です。 ありがとうございます。 書き込みに関しては全く不快だとは思いません。解決方法までご提示頂けて感謝の気持ちで一杯です。 PCOTは当初自分で使う目的で突貫工事で作ったツールで、大半は一人であれこれ悩んで実装してきたので、こうしてコードベースで一緒に考えてくれる人がいるのは大変心強いです。
ご返信、ありがとうございます。ご検討いただけてうれしいです。 >白色部分はアンチエイリアスの影響で単色ではないように思います はい、なのでPCOTの「画像加工&OCR読み取り設定」を使ってアンチエイリアス部を変換します。 ①橙色(画面から取得)を範囲100で橙色に変更 ②白(画面から取得)を範囲100で橙色に変更 これにより文字をすべて橙色に変換した結果がこんな感じです。
この画像(ハードコピーしたpng)に対してサンプルソースで ③橙色以外を黒に変換 という処理を重ねた結果が以下画像になります。
この画像をPCOTで翻訳すると以下のようになりました。 こんな感じで実用性はありそうに感じています。
前に書いたソースは文字部分が白になっているので、部分修正と補足説明を追加したものを次にアップしますが、処理の概要としてはいかになります。 (1)オリジナル画像(orgBmp)の文字部分(橙色)を透明にしたものをwkBmpに格納する。 (2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。 (3)オリジナル画像(orgBmp:変換前のもの)にwkBmpを重ねると、文字部分のみが透明なので、文字部分は橙色として見えるがその他の部分はwkBmpの黒が上書きされている。 というイメージです。
今回作っているのは文字部分が橙色のため「橙色以外を彩度0(真っ黒)に変換する」でよいのですが、文字色が黒だとこれではだめです。その対策のため、ソースに「文字色が黒なら背景は赤色にする」というサンプルを入れております。文字色が黒なら、という判定はif(false)になっているので、ここは修正ください。
ちょっと補足すると、文字部分を透明にしたのはRGB値ではなくアルファチャンネルの値によるものです。 >(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。 RGBカラーとしては全部真っ黒なんですけど、文字(橙色)部分はアルファチャンネルによって透明になるので、画像を重ねたときに文字部分がちゃんと見えるということになると思います。
private void button1_Click(object sender, EventArgs e) { // 画像のロード Bitmap wkBmp = new Bitmap("D:\work\test2.png");
// 指定する色を透明に設定 Color targetColor = Color.FromArgb(255, 136, 0); // 例: 橙色を透明にする wkBmp.MakeTransparent(targetColor);
// マスク用画像オブジェクトを作成(PixelFormat.Format32bppArgbを使用) Bitmap maskBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(maskBmp)) { // 元の画像(橙文字部分が透明)を描画する g.DrawImage(wkBmp, 0, 0);
// 彩度を0にするColorMatrixを作成 ColorMatrix colorMatrix = new ColorMatrix( new float[][] { new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 0, 0}, new float[] {0, 0, 0, 1, 0}, new float[] {0, 0, 0, 0, 1} });
//もし文字色が黒なら、背景は赤色にする。 if (false) { colorMatrix = new ColorMatrix( new float[][] { new float[] { 1, 0, 0, 0, 0 }, new float[] { 0, 0, 0, 0, 0 }, new float[] { 0, 0, 0, 0, 0 }, new float[] { 0, 0, 0, 1, 0 }, new float[] { 1, 0, 0, 0, 1 }
}); }
// 画像属性を作成 ImageAttributes attributes = new ImageAttributes(); attributes.SetColorMatrix(colorMatrix); // マスク画像に透明部分以外を黒(or赤)に設定 g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, maskBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes); } // 結果画像を作成(元画像にマスク画像を重ねる) Bitmap resultBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb); using (Graphics g = Graphics.FromImage(resultBmp)) { // オリジナル画像のロード Bitmap orgBmp = new Bitmap("D:\work\test2.png");
// オリジナル画像を描画 g.DrawImage(orgBmp, 0, 0);
// マスク画像を重ねる(橙文字部分が透明、その他の背景部分は黒(or赤)に変換済み) g.DrawImage(maskBmp, 0, 0); } // PictureBoxに結果画像を表示 pictureBox1.Image = resultBmp; }
③橙色以外を黒に変換 の部分は「画像加工&OCR読み取り設定」にて「文字色以外は消去」という選択項目を追加します。 文字色を指定(画像から色を抽出)させて追加ボタンを押させる形なので、既存のUIを踏襲できると思います。
重ねてご提案を頂き、ありがとうございます。
理解として正しいかどうかちょっと不安ですが・・・ 1.現行のPCOTにある色置換で文字色を単色にする(アンチエイリアスを潰す) 2.単色にした文字色のマスクを作成 3.背景を黒にする という理解で合っていますか?
単色以外を置換する方法であれば、今のアルゴリズムで判定を反転させるだけでも十分実用的な速度になると思います。 単色+色距離(10~100)とすると、凄まじく重くなるのが問題です。
単色以外を置換で機能的に必要十分ということであれば「色1以外を色2に置換」の方が文字色を判定する必要がないので、実装する私も使用するはまさんも楽だと思うのですが、いかがでしょうか?
はい、その理解大丈夫です。 私はPG構造を知らないので目的のことがもっと簡単にできるのであればその手段のほうが適切だと思います。エンドユーザーにとってPG構造は意識するところではなく、使い勝手がすべてですので。 「色1以外を色2に置換」 この表現はいいですね。ユーザーにとってより理解しやすいと思います。 実装を楽しみにしております。
ダウンロードを押すとエラーファイルが入ったものがDLされます
追記です
フォルダ一覧のPCOT.zipフォルダの横部分には、◯に-が入った様なアイコンが表示されています
PCOTをダウンロードしようとしたところダウンロードできませんでした(同じOneDriveにアップロードされているSWFRはダウンロードできました)
DLボタン→OneDriveの画面でダウンロードボタンをクリック→OneDriveへのログイン画面が表示される→適切なユーザーとパスワードを入力する→リダイレクトのような処理(?)が実行されるもログインできずエラー画面が表示される(※添付ファイル参照)
PCOTはダウンロードできていません
同じアカウントでOneDriveのサービスにはログインできることは確認しています
↑と同じ現象です。 ファイル名のところにカーソルを合わせると「PCOT.ZIP ブロック」と表示されます。
OneDriveの障害でしょうか? https://news.yahoo.co.jp/articles/9965a4d3aa9c846fc69fa71c8c2be3eca5adda97
原因はさっぱり見当がつきませんが、対応策としてOneDriveの共有リンクを取得し直してみました。
お手数ですが、もう一度試して頂いてもよろしいでしょうか? これでダメな場合はE様が報告して頂いた通り、OneDriveの障害の可能性が高いです。 その場合はGoogleDriveに置き直すなど、対策を講じたいと思います。
Xにてフォロワーさんに色々試して頂いた結果「他のファイルはDL出来る」との報告を頂いたので、もしかしたらPCOTがOneDriveにウイルス認定されている可能性があります。 一旦GoogleDriveに置き直したので、ダメだった方は再度試して頂きたいです。
GoogleDrive上からダウンロードでき利用することができました。お早い対応ありがとうございました!
ご対応ありがとうございます!
対応頂きありがとうございます、難なくDLすることが出来ました!
英語が苦手なので、本日英語のGAME配信で使用させて頂きます
ご報告ありがとうございます。 PCOTが配信のお役に立てるよう願っております!
こんなソフトがあったとは感激です! 実はYouTubeのゲーム実況で使用させていただく予定です。 ありがたく使用させていただきます!!😆
こちらこそ、PCOTを見つけてくださってありがとうございます! PCOTがじごちゃん様の配信でお役に立てるよう願っています!
海外のインディーゲームをプレイするときだいたい日本語化がないのでPCOTを見つけられてよかった 😊 フルスクリーンのゲームでも「Alt+Enter」でウィンドウ化すれば機能する、かも? 🧐
PCOTをご利用いただきありがとうございます。 昔のゲームではフルスクリーンしか存在せず「Alt+Enter」でも反応しないゲームも確かにありますが、その場合は窓化ツールなどを利用できるかもしれません。
コメント失礼致します。 現在PCOTを利用してゲームを遊んでいるのですが、一部で画像上のように翻訳したい文章の背景に文字が流れてくるため、うまく翻訳が行えません。 こういった場合はどのように設定を変えると背景の文字を読み込まず翻訳が行えるのでしょうか? 初歩的なことで申し訳ないのですが、ご教授願います。
画像が添付できていませんでした、すみません。
外出から帰って早速試してみました。 結論から言うと、難しそうです・・・。
理由は下部の画像の通り、白い文字を拡大すると白の単色ではなく、複雑な中間色があるため、画像加工で色を置換しようとしても、背景色と近すぎて背景色も文字色として巻き込んで置換されてしまう為です。
現在、画像加工の機能強化を模索していますので、それによって改善される可能性はありますが、保証はできません。
お役に立てず誠に申し訳ないのですが、何卒ご了承頂きたいです。
改めて試したところ、ちゃんと読めるようになったので設定方法をご案内させていただきます。環境によってそのままでは使えない可能性があるので、適宜調整してください。
方法として、PCOTの画像加工機能を利用します。 1.画面上部メニューの設定→画像加工&OCR読取設定で画像加工画面を開きます。 2.添付した画像の通りに画像加工を行い、OCRテストで読取確認を行った後、保存ボタンを押して設定を保存します。
設定画像
以下に細かい設定と注意点を記載します。
【設定方法】 1.描画補間法「高品質双三次」を追加 2.彩度「10」を追加 3.彩度「5.2」を追加 4.グレースケール「八値」を追加 5.ノイズになっている部分を色置換で背景色に置換
【注意点】 ・OCR読取設定にある倍率項目の「加工前に適用」に必ずチェックを入れる ・画面左上の「設定選択」で専用のプリセットを作成することを推奨します(他のゲームでも上記の画像加工が適用されてしまうため)
以上、参考になれば幸いです。 また、画像加工はとても複雑な機能なので、使い方が分からない場合は気軽にお問い合わせください。
こんばんわ。PCOT作者さんの知人です。作者さん今長期旅行中でなぜか出先から掲示板に書き込めないそうです。作者さんが旅行から帰られるまで待っていただけるとありがたいですが、お急ぎでしょうか?
代筆ありがとうございました! 帰ったので、回答を引き継ぎます。
画像翻訳時に範囲を選択したときに下記エラーが発生します。 「image[プロセス名]内に画像ファイルが存在しません。」
特定のプロセスだけではなくすべてのプロセスにて表示されます。 インストールしてすぐは問題なく普通に使用できていましたが、途中から出てき始めました。
※再インストールは試してみましたが、効果はありませんでした。 ご回答お願い致します。
PCOTのご利用ありがとうございます。 お問合せの件についてですが、色々試してみても残念ながら再現できません。 「範囲選択時」とあるので、画像ファイルは然るべき場所に存在するということですよね?
途中まで普通に使えていたとの事なので、設定ファイルが壊れたのかもと思いましたが画像翻訳で画像ファイルに対して何かする設定はない筈(パスを見てるだけ)なので、パスの参照が上手くいかない原因がないかを確認して頂きたいです。
具体的には下記に挙げた確認項目を確認して頂きたいです。
ざっと思い浮かぶのはこの辺りですが、設定ファイルが壊れているのが原因である可能性もあります。 再インストールは既に試されたとのことですが、上記のリストの確認に加え、HPからPCOTをダウンロード&展開し、真っ新な状態で実行した上で新しく画像をキャプチャーしても同様のエラーが発生するかも確認して頂きたいです。
お手数をおかけしますが、提示した確認方法を試した後にもう一度結果を報告して頂けると助かります。
すみません。上記問い合わせに関しては完全にこちらの勘違いでした。 「フリー選択」の機能を使いたいところを途中から「画像翻訳」だと思い込んで間違って使用しておりました。 ご対応いただきありがとうございました。
おぉ、勘違いでしたか。問題が解決したようで何よりです。 画像翻訳はプロローグなど、勝手に字幕が流れてしまうようなものを画像ファイルとして保存して、任意のタイミングで翻訳する為の機能です。 PCOTにしかない機能なので、常用しないと中々慣れませんが使いこなせば便利なので、頭の隅にでも覚えておいて頂けると幸いです。
更新項目を以下に列挙します。
・セキュリティー上脆弱性のあるライブラリを更新 ・画像加工で表の画像加工種別名を右クリックしてもパラメータを変更できるように修正 ・画像加工にガンマ補正を追加
今回は利用しているライブラリのセキュリティー対策のため、実行ファイル以外のファイルも更新しています。 更新する場合はPCOTに同梱している「PCOTの更新方法.txt」内にある「確実な方法」で更新してください。
私信:はま様 ご要望頂いた「色1以外を色2に置換」の処理ですが、巻き込む色を指定させない完全一致の場合、通常の色置換と機能が非対称になり混乱するため、実装を見送りました。 その代わり、「ガンマ補正」という加工方法を追加しました。 使ってみた感じ、ご要望頂いた機能の代替になると思われますので、一度試して頂きたいです。
最後に、大分時間がかかった上にご希望に添えず、誠に申し訳ないのですが、何卒ご理解頂きたいです。
大変便利に使わせてもらってます! ショートカット設定の「連続翻訳有効/無効」キーなのですが、有効/無効を切り替えるよりも、普段使っている「フリー選択」の他に「連続翻訳有効フリー選択」というようなショートカット設定ができるようになってくれると、大変ありがたいです。あるいは、すでにそのようなことが可能になる方法がありますでしょうか?
PCOTをご利用いただきありがとうございます。 お問合せの件ですが、結論から言うと現行の連続翻訳はON/OFFの切り替えしか用意していません。
ON/OFF動作は確かに誤爆して「PCOTが壊れた!」とちょくちょく報告が上がるので、私も今の仕様が最善とは思ってはいないのですが、連続翻訳を使いたい場面はフリー選択だけではなく、固定翻訳や画像翻訳でも使う機会があるのです。 ご提案の方法だと、連続翻訳有効フリー選択の他に連続固定翻訳のショートカットが必要になってしまいます。それも各固定翻訳に一つ付く形になるので、かなり冗長になってしまいます。
やるとしたら今の仕様を残しつつ、フリー選択だけはご提案頂いた方法で動作させるという感じになると思いますが・・・かなり複雑で混乱しそうです。 何かいい案があれば是非ご提案頂けると助かります。
そうなんですね。ありがとうございます!
今回は実行ファイル以外にも多数のファイルを更新しています。 特にライブラリのセキュリティーの脆弱性に伴う更新が含まれるため「PCOTの更新方法.txt」にある「確実な方法」で更新してください。
また、ライブラリの更新でTesseract OCRが5.2から5.3にアップグレードされました。 以前よりも読取精度、速度などが向上しているかもしれません。していないかもしれません。
例によって資料を作成しました。
資料1/2
資料2/2
今回の新機能であるクリップボード監視機能は以前私がX上で「Ren’Py製のゲームを快適に遊ぶ方法」としてVNTranslatorというツールを利用する方法を紹介した方法と基本的に同じ仕組みで動作します。
参考にさせて頂いたVNTranslatorの配布ページはこちら https://docs.vntranslator.com/
Ren’Pyエンジンに関する様々な情報を提供してくださった ty様が作成したゲームはこちら(PCOTの動作検証でお世話になりました) https://p6ik.itch.io/amayadoru
上記の方々によって新たな機能を実装することができました! この場を借りてお礼申し上げます。
いつも重宝させていただいてます! 最近実装されたクリップボード監視機能が別枠で開いてフォントカラー以外にも背景カラーや枠の有り無しが自由にいじれるのがゲーム配信等で翻訳しながら進める用途で見た目をアレンジできてかなり良い感じなのですが、クリップボード監視機能以外でもこの機能は使えませんでしょうか。(別枠表示や背景色変更など) コピーしたものすべて翻訳がかかってしまい画面に表示されてしまうので、従来の使い方のように翻訳するものはショートカットを使って選べるのが理想なのですがデザインの自由度がなくクリップボード監視のようにいじれたらなと思った次第です。 もしすでに方法があれば教えていただきたいです!(無ければ今後実装を期待してます…!)
PCOTをご利用いただき、ありがとうございます。 お問合せの件についてですが、PCOTのメイン画面も細かく外観を弄れるオプションが欲しい、もしくは、別の表示専用画面みたいなものを用意して、そちらで細かく外観を変更できるようにして欲しいという要望で合っていますか?
残念ながら、現状ご要望の機能は存在していません。 確かに外観を色々と変えられるのは便利ですよね。ちょっと検討してみます。 ただ、やるとしても大改修が発生しそうなので対応を確約できません。 それでもよければ、気長にお待ち頂ければと思います。
既にご存じだったら申し訳ないのですが、配信で利用するとのことだったので、配信用途に使えるOBSとの連携方法について詳しく説明している記事がありますので、是非参考にしてください。
「やまちゃんねるブログ」 https://yamachannel-blog.com/game-translation/#rtoc-13
そちらの記事は知りませんでした!ファイル出力できるんですね、紹介いただいた方法で解決できそうですありがとうございます。 併せてもう一点だけ良いでしょうか…! 翻訳した後、翻訳内容(文章)をクリアするショートカットやそれに近い方法はないでしょうか。(クリアボタンを押せば消せますがそれをキーボード上で行いたい) 翻訳にはショートカットがあったのでそれに合わせてOBS上で翻訳ソースを同じショートカットで表示、終わったら非表示をしているのですがこの方法だと翻訳が終わるまでの間、前の翻訳内容が表示されてしまいややこしくなってしまうので何かしらの方法でリセット出来ればと思うのですが可能でしょうか。 翻訳ソフトのショートカット→翻訳が完了したらOBS表示ショートカット→非表示ショートカット と1つショートカットを増やせば解決はするのですが手数が増えてしまうのでソフトの機能で解決できればと思うのですがよい方法があればご教授いただきたいです!
紹介した記事がお役に立ったようで何よりです!
クリアのショートカットについては、トリガーキーをどれにするかを悩んで結局実装していませんでした。 順当に考えればCtrl+Shift+Cなんですが、連続翻訳(Continue)で同じショートカットを既に使用してしまっています。 よろしければ、候補を挙げて頂けると助かります。 一応、こちらの候補としては(ちょっと苦しいですが)Ctrl+Shift+D(Delete)になるかと思います。
また、ご要望頂いた機能はちょっと大変ですが、実装すること自体は可能です。 ただ、こうしてやり取りをしている方が名無しさんだと、要望を実装したとしても機能を有効活用されているかどうかが分かりません。 配信されている(or 配信予定がある)とのことなので、差し支えなければどちらで配信されている方なのかを教えて頂けますと幸いです。
ご返答ありがとうございます! ショートカットキーですが私はゲーム内で競合していないこともありctrlを外してフリー翻訳をShift+Fでやってる都合上、OBSでの翻訳非表示をShift+Gでやってるのでクリアが実装された際はそれに合わせてShift+Gでやると思います。(Dだとゲームで移動ボタンと重複するので都合悪い場合があるかもしれません) 場合によって変わることも多いと思うのでショートカットは他のものと同じように自由に設定できるとより助かります! 活動名は公開控えたいのですがそれなりに活動しているのでPCOTは周りの活動者にも布教しておきます!
ご回答頂き、ありがとうございます。 では、他のショートカットキーと足並みを揃えたいので、初期状態は「CTRL+SHIFT+G」とさせていただきます。 今は幾つか見つけた不具合を修正中なので、それが終わり次第取り掛かりたいと思います。 気長にお待ちください。
いつも大変ありがたく利用させていただいております。 不躾なお願いで大変恐縮ですが、 PCOTのスクリーンショット付きで、簡単な使い方・個人的にオススメの設定などを記載した資料を 印刷してコミケ等で頒布させていただくことは可能でしょうか?? 非公式かつ個人的な資料である旨の補足と、 当サイトのURL・ぬるっぽ様のツイッターIDのクレジットを表記する予定です。 なお該当資料は、無料頒布するA4用紙1枚の一部分に含める予定です。 もちろん不可であれば作成・頒布はいたしません。 お忙しい中恐縮ですがご検討のほどよろしくお願い申し上げます。
いつもPCOTをご利用いただき、ありがとうございます。 PCOTをコミケでご紹介して頂けるとのこと、大変嬉しく思います! 是非是非お願いします!
ただ、一つだけ サイト上部に列挙されているPCOTの紹介ページを見て分かる通り、(使い方は極力変えない様にはしていますが)PCOTのUIは結構頻繁に変わっています。 なので、なるべく最新バージョンで紹介して頂きたいのと、紹介したバージョンをどこかに併記して頂けると、混乱が少ないと思います。
それでは、今後もよろしくお願いいたします。
お世話になっております。 ご快諾いただけて幸甚の極みです! 最新バージョンの利用と、紹介時バージョン併記の件承知いたしました。 これからもPCOTの発展を楽しみにしております。 お忙しい中ありがとうございました!
【クリップボード監視機能】 今回の更新で翻訳時に「翻訳結果をコピー」にチェックがない場合、原文をクリップボードにコピーするように修正しました。 また、翻訳機能を無効にしている場合はOCR時にメイン画面をアクティブにしないようにも修正しました。 上記修正の目的はクリップボード監視機能が有効時にクリップボード監視機能の翻訳のみをアクティブにするためです。 以下の画像は「翻訳結果をコピー」にチェックなしに設定し、「翻訳機能を無効」にチェックしている場合で且つ、「クリップボード監視機能」を有効にしている状態の画像です。
参考画像
画像の通り、ノベルゲームでは雰囲気を壊すことなく翻訳できるので重宝すると思います。
【テキストクリア】 動画配信者の方はPCOTとOBSを連携させて、配信画面上に訳文を表示している方もいると思います。 今回、動画配信者向けにクリア処理をショートカットで起動できるように修正しました。 OBSの画面上では「result.txt」ファイルの内容を表示していますが、クリアボタン or クリアショートカットキー「CTRL+SHIFT+G」を押すと、画面に表示している内容をクリアすることができます。 配信画面中に前の翻訳結果がずっと表示されている場合などに重宝すると思います。
今回の修正で新規のショートカットキーが追加されています。 既存のユーザーの方は設定→システム設定→ショートカット設定からショートカット設定を開き「リセット」ボタンを押して、新規のショートカットキーを反映させる必要があります。 ご注意ください。
いつも使わせていただいています。 連続翻訳時 ショートカットで翻訳後スクロールバーが自動で動かなくなってしまったのですが 原因はなにか分かりますでしょうか?
いつもPCOTをご利用いただきありがとうございます。 スクロールバーは原文側でしょうか?それとも訳文側でしょうか?もしくは両方でしょうか? 不具合の可能性が高いので、もう少し詳しい状況を教えていただけますと助かります。
ぬるっぽ様、素晴らしいツールの作成ありがとうございます。 OblivionやSkyrimの大型クエストModなどを遊ぶ時に有志の方が作ってくださった日本語化ファイルがないから諦めるかと思った事が何度もありました。 しかし今このツールを使わせて貰い可能性が大きく広がった事に大変感謝しています。 現在はMorrowindプレイ中にてこのツールの素晴らしさを噛み締めています、本当にありがとうございました。
PCOTをご利用いただき、ありがとうございます。 人づてに聞いた話ですが、Morrowindは大分古いゲームで、かつては日本語化が出来たものの、現在では日本語化MODを配っていたサイトなどでもリンク切れが目立つようになり、PCOTの利用は選択肢としてベストではないものの、ベターだとのことです。
PCOTは「一つでも多くのゲームを遊べるようにしたい」というモットーで開発しているツールなので、こうして暖かい言葉を頂けると、製作者としてとても励みになります。
今後もPCOTがお役に立てるよう願っております。
素晴らしいソフトウェアの開発、ありがとうございます。 Windows10OCRを設定するために、設定の言語の追加から英語(米国)を追加して再起動を行いましたが、PCOTの選択肢にWindows10OCRが追加されませんでした。 私は現在Windows11を使用しているのですが、Windows11ではWindows10OCRは使用できないのか、あるいは他に原因があるのでしょうか。 ご回答いただければ幸いです、既出の質問でしたらすみません。
PCOTをご利用いただき、ありがとうございます。 お問い合わせについてですが、Windows10OCRはWindows11でも利用できることを確認しています。 ただ、過去に上手く行かなかった例もいくつか報告されています。 というわけで、いくつか確認させてください。
上記の全てが問題ない状態で、OCRエンジンにWindows10OCRが出てこない場合は不具合の可能性があるので、お手数ですが再度ご連絡ください。 その際には、Windows11のエディション、どんな操作でOCRエンジンの切替を行おうとしたか等、詳しい情報を頂きたいです。
ご回答ありがとうございます。 ご指摘いただいた以下3点について確認しましたが、すべて正常でした。
OCRエンジンの切り替えは、以下のように行いました。
すみません、自己解決しました。 理由は不明ですが、キーボードレイアウトを一度英語(米国)に切り替えた後、選択肢にWindows10OCRが何故か表示されるようになりました。 お騒がせして申し訳ありませんでした。
おぉ、解決したようで何よりです! 確かに理由は分かりませんが、キーボードレイアウトを一度切り替えると表示されるようになるのですね。 もし今後、同様の報告が上がった場合にはそのようにアドバイスしたいと思います。ご報告ありがとうございました!
素晴らしいソフトを開発して頂きありがとうございます。 PCOTを使い始めたばかりですが、当方の環境でエラーが発生するためご確認頂けますと幸いです。
<エラー発生時の状況> フリー選択にて1回目の翻訳は成功するが、2回目の翻訳がエラーとなる。
**** 例外テキスト **** System.Runtime.InteropServices.ExternalException (0x800401D0): 要求されたクリップボード操作に成功しませんでした。 場所 System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr) 場所 System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay) 場所 System.Windows.Forms.Clipboard.SetText(String text, TextDataFormat format) 場所 System.Windows.Forms.Clipboard.SetText(String text) 場所 PCOT.frmShowTranslatedText.d202.MoveNext() --- 直前に例外がスローされた場所からのスタック トレースの終わり --- 場所 System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b6_0(Object state)
<当方の設定等> ・PCOTバージョン 1.7.7 ・OS:windows11Pro 24H2 ・VC_redist.x86.exe は最新をインストール ・Windowsのクリップボードの履歴はオフに設定 ・使用OCRエンジンは「Windows10 OCR」、「Tesseract OCR」どちらでもエラーとなる。 ・翻訳エンジンを「Google翻訳」、「DeepL」、「みんなの自動翻訳連携」のどれに変更してもエラーとなる。 ・翻訳エンジンを「Google翻訳」、「DeepL」とした場合はエラーダイアログの[続行]ボタンを押すとそのまま使える。 ・翻訳エンジンを「みんなの自動翻訳連携」とした場合は[フリー選択]ボタンを押しても範囲選択できる状態にならない。 この場合はPCOTの再起動が必要
現在は翻訳エンジンを「Google翻訳」にして、エラー発生時は[続行]ボタンを都度押して使っている状況です。 よろしくお願いいたします。
PCOTをご利用いただき、ありがとうございます。 不具合報告と詳しいエラー状況を教えて頂き、感謝いたします。
みんなの自動翻訳を利用しているときだけ、続行を押しても利用できない理由は分かりませんが、スタックトレースを拝見した感じ、クリップボードに文字をセットしている過程でなんらかの例外が発生しているようです。
調べてみたところ、こんな記事が出てきました。 PowershellやC#からクリップボード転送時にExternalExceptionが頻発する原因と対策
これの回答に、「他の誰かがクリップボードを開いているとき」とあるので、PCOTと一緒に起動している何かしらのアプリと、クリップボード操作で競合している可能性があります。
もし心当たりがある場合は、心当たりのあるアプリの利用を中止して、PCOTとの併用を避けて頂けるとエラーの発生を抑制できる可能性があります。 また、その場合はエラーの再現を行いたいので、差し支えなければ併用しているアプリの名前を教えて頂けると、エラーの修正に役立ちます。
以上、あまりお役に立てず恐縮ですが、ご確認の程よろしくお願いいたします。
早々にご回答頂きありがとうございます。 システムトレイに常駐しているアプリを一つずつ落として確認したところ、問題のアプリを特定することが出来ました。
G-Ignition(Ver3.0.2) https://www.eizo.co.jp/support/db/products/model/G-Ignition / G-Ignition Mobile
EIZO製モニターのユーティリティツールになります。クリップボードを使っているとは思いもしませんでした。 このツールを終了した状態では今のところ全くエラーは発生しておりません。
PCOTを使う際はこのツールを終了する運用にしたいと思います。 貴重なアドバイスありがとうございました。感謝いたします。
ご報告ありがとうございます! エラーの発生原因を特定できたようで何よりです。 また、競合しているアプリをご教示頂き、感謝いたします。
場当たり的な対応になりますが、次の更新でPCOTでクリップボードを操作する処理全般を修正したいと思います。
それまではご不便をおかけしますが、ご返信頂いた運用をお願いいたします。
今回の更新でPCOTの画面キャプチャーで扱える画像形式が増えました! 例によって更新資料を作成しました。 注意点などもありますので、熟読してください。
【画像翻訳改修資料】 1/3 2/3 3/3
資料にもありますが、今回の更新でキャプチャーした画像をPNGからJPEGへ、JPEGからWEBPへと相互変換できるようになりました。
とても便利になったので是非使って頂きたいです!
いつも重宝させていただいてます。 設定ファイル等は引き継がずに新規に解凍したver1.7.8でフリー翻訳機能を使ってみたところ、従来はおそらくフォントの都合でうまく読み込めていなかったゲーム内の単語が正しく読み込めるようになっていました。比較対象はver1.7.3をアップデートしたver1.7.7だったはずです。 今回の更新履歴だけを見ると関連は無いように思えるのですが、何か変化があったのでしょうか。
いずれにせよ、更に便利になったので嬉しい驚きでした。
PCOTをご利用いただき、ありがとうございます。 恐らくですが、v1.7.6でライブラリの脆弱性が見つかったため、セキュリティー対応のついでに更新できるライブラリ全てを更新しました。 その際に、Tesseractが5.2から5.3へアップグレードされたようなので、その影響かもしれません。
なんにせよ、更に便利になったようで何よりです!ご報告ありがとうございました! 頂いた報告で、ライブラリの更新に意義があることが分かったので、今後はライブラリの更新通知も注視するようにします!
不適切なコンテンツとして通報するには以下の「送信」ボタンを押して下さい。 現在このグループでは通報を匿名で受け付けていません。 管理者グループにはあなたが誰であるかがわかります。
どのように不適切か説明したい場合、メッセージをご記入下さい。空白のままでも通報は送信されます。
通報履歴 で、あなたの通報と対応時のメッセージを確認できます。
トピックをWIKIWIKIに埋め込む
次のコードをWIKIWIKIのページに埋め込むと最新のコメントがその場に表示されます。
// generating...
プレビュー
ここまでがあなたのコンテンツ
ここからもあなたのコンテンツ
private void button1_Click(object sender, EventArgs e)
{
// 画像のロード
Bitmap bmp = new Bitmap("path_to_your_image.bmp");
// 指定する色を透明に設定
Color targetColor = Color.White; // 例: 白色を透明にする
bmp.MakeTransparent(targetColor);
// マスク画像を作成(PixelFormat.Format32bppArgbを使用)
Bitmap maskBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(maskBmp))
{
// 元の画像を描画する
g.DrawImage(bmp, 0, 0);
// 彩度を0にするColorMatrixを作成
ColorMatrix colorMatrix = new ColorMatrix(
new float[][]
{
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
});
// 画像属性を作成
ImageAttributes attributes = new ImageAttributes();
attributes.SetColorMatrix(colorMatrix);
// マスク画像に透明部分以外を黒に設定
g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, askBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes);
}
// 結果画像を作成(元画像にマスク画像を重ねる)
Bitmap resultBmp = new Bitmap(bmp.Width, bmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(resultBmp))
{
// 元の画像を描画
g.DrawImage(bmp, 0, 0);
// マスク画像を重ねる
g.DrawImage(maskBmp, 0, 0);
}
// PictureBoxに結果画像を表示
pictureBox1.Image = resultBmp;
}
処理のご提案ありがとうございます。
画像を拝見しました。
なるほど、これはネイティブの人でも読み辛そうですね・・・。
いくつか質問させてください。
こちらで前に試した時は前に書いた通り、巻き込む色を増やすと激重になりました。
そして、添付された画像を見る限り、白色部分はアンチエイリアスの影響で単色ではないように思います。
貼って頂いたソースでは、マスクしている色、即ち「targetColor」は白の単色(255,255,255)ですが、これはちゃんと動作するのでしょうか?
巻き込む色を全てマスクする場合、重くなるのではないかと懸念しています。
ご提示頂いたソースでは彩度を0(黒)にしていますが、これは色置換の逆ではなく処理としては「指定した色以外を全て黒色に置換する」となっています。
仮に黒色(またはそれに近しい色)をマスクした時、彩度を0にする方法だと処理後の画像は真っ黒になりそうな気がします。
これについて何か解決方法はありますか?
最後に、PCOTはC#で組んでいるのでご提示頂いたソースはそのまま流用可能です。
ありがとうございます。
書き込みに関しては全く不快だとは思いません。解決方法までご提示頂けて感謝の気持ちで一杯です。
PCOTは当初自分で使う目的で突貫工事で作ったツールで、大半は一人であれこれ悩んで実装してきたので、こうしてコードベースで一緒に考えてくれる人がいるのは大変心強いです。
ご返信、ありがとうございます。ご検討いただけてうれしいです。

>白色部分はアンチエイリアスの影響で単色ではないように思います
はい、なのでPCOTの「画像加工&OCR読み取り設定」を使ってアンチエイリアス部を変換します。
①橙色(画面から取得)を範囲100で橙色に変更
②白(画面から取得)を範囲100で橙色に変更
これにより文字をすべて橙色に変換した結果がこんな感じです。
この画像(ハードコピーしたpng)に対してサンプルソースで

③橙色以外を黒に変換
という処理を重ねた結果が以下画像になります。
この画像をPCOTで翻訳すると以下のようになりました。

こんな感じで実用性はありそうに感じています。
前に書いたソースは文字部分が白になっているので、部分修正と補足説明を追加したものを次にアップしますが、処理の概要としてはいかになります。
(1)オリジナル画像(orgBmp)の文字部分(橙色)を透明にしたものをwkBmpに格納する。
(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
(3)オリジナル画像(orgBmp:変換前のもの)にwkBmpを重ねると、文字部分のみが透明なので、文字部分は橙色として見えるがその他の部分はwkBmpの黒が上書きされている。
というイメージです。
今回作っているのは文字部分が橙色のため「橙色以外を彩度0(真っ黒)に変換する」でよいのですが、文字色が黒だとこれではだめです。その対策のため、ソースに「文字色が黒なら背景は赤色にする」というサンプルを入れております。文字色が黒なら、という判定はif(false)になっているので、ここは修正ください。
ちょっと補足すると、文字部分を透明にしたのはRGB値ではなくアルファチャンネルの値によるものです。
>(2)wkBmpの画像全体について、彩度を0にして真っ黒にする。真っ黒にしたとしても、文字部分は透明のまま。
RGBカラーとしては全部真っ黒なんですけど、文字(橙色)部分はアルファチャンネルによって透明になるので、画像を重ねたときに文字部分がちゃんと見えるということになると思います。
private void button1_Click(object sender, EventArgs e)
{
// 画像のロード
Bitmap wkBmp = new Bitmap("D:\work\test2.png");
// 指定する色を透明に設定
Color targetColor = Color.FromArgb(255, 136, 0); // 例: 橙色を透明にする
wkBmp.MakeTransparent(targetColor);
// マスク用画像オブジェクトを作成(PixelFormat.Format32bppArgbを使用)
Bitmap maskBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(maskBmp))
{
// 元の画像(橙文字部分が透明)を描画する
g.DrawImage(wkBmp, 0, 0);
// 彩度を0にするColorMatrixを作成
ColorMatrix colorMatrix = new ColorMatrix(
new float[][]
{
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}
});
//もし文字色が黒なら、背景は赤色にする。
if (false)
{
colorMatrix = new ColorMatrix(
new float[][]
{
new float[] { 1, 0, 0, 0, 0 },
new float[] { 0, 0, 0, 0, 0 },
new float[] { 0, 0, 0, 0, 0 },
new float[] { 0, 0, 0, 1, 0 },
new float[] { 1, 0, 0, 0, 1 }
});
}
// 画像属性を作成
ImageAttributes attributes = new ImageAttributes();
attributes.SetColorMatrix(colorMatrix);
// マスク画像に透明部分以外を黒(or赤)に設定
g.DrawImage(maskBmp, new Rectangle(0, 0, maskBmp.Width, maskBmp.Height), 0, 0, maskBmp.Width, maskBmp.Height, GraphicsUnit.Pixel, attributes);
}
// 結果画像を作成(元画像にマスク画像を重ねる)
Bitmap resultBmp = new Bitmap(wkBmp.Width, wkBmp.Height, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(resultBmp))
{
// オリジナル画像のロード
Bitmap orgBmp = new Bitmap("D:\work\test2.png");
// オリジナル画像を描画
g.DrawImage(orgBmp, 0, 0);
// マスク画像を重ねる(橙文字部分が透明、その他の背景部分は黒(or赤)に変換済み)
g.DrawImage(maskBmp, 0, 0);
}
// PictureBoxに結果画像を表示
pictureBox1.Image = resultBmp;
}
③橙色以外を黒に変換
の部分は「画像加工&OCR読み取り設定」にて「文字色以外は消去」という選択項目を追加します。
文字色を指定(画像から色を抽出)させて追加ボタンを押させる形なので、既存のUIを踏襲できると思います。
重ねてご提案を頂き、ありがとうございます。
理解として正しいかどうかちょっと不安ですが・・・
1.現行のPCOTにある色置換で文字色を単色にする(アンチエイリアスを潰す)
2.単色にした文字色のマスクを作成
3.背景を黒にする
という理解で合っていますか?
単色以外を置換する方法であれば、今のアルゴリズムで判定を反転させるだけでも十分実用的な速度になると思います。
単色+色距離(10~100)とすると、凄まじく重くなるのが問題です。
単色以外を置換で機能的に必要十分ということであれば「色1以外を色2に置換」の方が文字色を判定する必要がないので、実装する私も使用するはまさんも楽だと思うのですが、いかがでしょうか?
はい、その理解大丈夫です。
私はPG構造を知らないので目的のことがもっと簡単にできるのであればその手段のほうが適切だと思います。エンドユーザーにとってPG構造は意識するところではなく、使い勝手がすべてですので。
「色1以外を色2に置換」 この表現はいいですね。ユーザーにとってより理解しやすいと思います。
実装を楽しみにしております。
ダウンロードを押すとエラーファイルが入ったものがDLされます
追記です
フォルダ一覧のPCOT.zipフォルダの横部分には、◯に-が入った様なアイコンが表示されています
PCOTをダウンロードしようとしたところダウンロードできませんでした(同じOneDriveにアップロードされているSWFRはダウンロードできました)
環境
操作
DLボタン→OneDriveの画面でダウンロードボタンをクリック→OneDriveへのログイン画面が表示される→適切なユーザーとパスワードを入力する→リダイレクトのような処理(?)が実行されるもログインできずエラー画面が表示される(※添付ファイル参照)
PCOTはダウンロードできていません
補足
同じアカウントでOneDriveのサービスにはログインできることは確認しています
↑と同じ現象です。
ファイル名のところにカーソルを合わせると「PCOT.ZIP ブロック」と表示されます。
OneDriveの障害でしょうか?
https://news.yahoo.co.jp/articles/9965a4d3aa9c846fc69fa71c8c2be3eca5adda97
PCOTをDLできないと報告してくださった方々へ
原因はさっぱり見当がつきませんが、対応策としてOneDriveの共有リンクを取得し直してみました。
お手数ですが、もう一度試して頂いてもよろしいでしょうか?
これでダメな場合はE様が報告して頂いた通り、OneDriveの障害の可能性が高いです。
その場合はGoogleDriveに置き直すなど、対策を講じたいと思います。
追記
Xにてフォロワーさんに色々試して頂いた結果「他のファイルはDL出来る」との報告を頂いたので、もしかしたらPCOTがOneDriveにウイルス認定されている可能性があります。
一旦GoogleDriveに置き直したので、ダメだった方は再度試して頂きたいです。
GoogleDrive上からダウンロードでき利用することができました。お早い対応ありがとうございました!
ご対応ありがとうございます!
対応頂きありがとうございます、難なくDLすることが出来ました!
英語が苦手なので、本日英語のGAME配信で使用させて頂きます
ご報告ありがとうございます。
PCOTが配信のお役に立てるよう願っております!
こんなソフトがあったとは感激です!
実はYouTubeのゲーム実況で使用させていただく予定です。
ありがたく使用させていただきます!!😆
こちらこそ、PCOTを見つけてくださってありがとうございます!
PCOTがじごちゃん様の配信でお役に立てるよう願っています!
海外のインディーゲームをプレイするときだいたい日本語化がないのでPCOTを見つけられてよかった 😊
フルスクリーンのゲームでも「Alt+Enter」でウィンドウ化すれば機能する、かも? 🧐
PCOTをご利用いただきありがとうございます。
昔のゲームではフルスクリーンしか存在せず「Alt+Enter」でも反応しないゲームも確かにありますが、その場合は窓化ツールなどを利用できるかもしれません。
コメント失礼致します。
現在PCOTを利用してゲームを遊んでいるのですが、一部で画像上のように翻訳したい文章の背景に文字が流れてくるため、うまく翻訳が行えません。
こういった場合はどのように設定を変えると背景の文字を読み込まず翻訳が行えるのでしょうか?
初歩的なことで申し訳ないのですが、ご教授願います。
画像が添付できていませんでした、すみません。
外出から帰って早速試してみました。
結論から言うと、難しそうです・・・。
理由は下部の画像の通り、白い文字を拡大すると白の単色ではなく、複雑な中間色があるため、画像加工で色を置換しようとしても、背景色と近すぎて背景色も文字色として巻き込んで置換されてしまう為です。
現在、画像加工の機能強化を模索していますので、それによって改善される可能性はありますが、保証はできません。
お役に立てず誠に申し訳ないのですが、何卒ご了承頂きたいです。
改めて試したところ、ちゃんと読めるようになったので設定方法をご案内させていただきます。環境によってそのままでは使えない可能性があるので、適宜調整してください。
方法として、PCOTの画像加工機能を利用します。
1.画面上部メニューの設定→画像加工&OCR読取設定で画像加工画面を開きます。
2.添付した画像の通りに画像加工を行い、OCRテストで読取確認を行った後、保存ボタンを押して設定を保存します。
設定画像

以下に細かい設定と注意点を記載します。
【設定方法】
1.描画補間法「高品質双三次」を追加
2.彩度「10」を追加
3.彩度「5.2」を追加
4.グレースケール「八値」を追加
5.ノイズになっている部分を色置換で背景色に置換
【注意点】
・OCR読取設定にある倍率項目の「加工前に適用」に必ずチェックを入れる
・画面左上の「設定選択」で専用のプリセットを作成することを推奨します(他のゲームでも上記の画像加工が適用されてしまうため)
以上、参考になれば幸いです。
また、画像加工はとても複雑な機能なので、使い方が分からない場合は気軽にお問い合わせください。
こんばんわ。PCOT作者さんの知人です。作者さん今長期旅行中でなぜか出先から掲示板に書き込めないそうです。作者さんが旅行から帰られるまで待っていただけるとありがたいですが、お急ぎでしょうか?
代筆ありがとうございました!
帰ったので、回答を引き継ぎます。
画像翻訳時に範囲を選択したときに下記エラーが発生します。
「image[プロセス名]内に画像ファイルが存在しません。」
特定のプロセスだけではなくすべてのプロセスにて表示されます。
インストールしてすぐは問題なく普通に使用できていましたが、途中から出てき始めました。
※再インストールは試してみましたが、効果はありませんでした。
ご回答お願い致します。
PCOTのご利用ありがとうございます。
お問合せの件についてですが、色々試してみても残念ながら再現できません。
「範囲選択時」とあるので、画像ファイルは然るべき場所に存在するということですよね?
途中まで普通に使えていたとの事なので、設定ファイルが壊れたのかもと思いましたが画像翻訳で画像ファイルに対して何かする設定はない筈(パスを見てるだけ)なので、パスの参照が上手くいかない原因がないかを確認して頂きたいです。
具体的には下記に挙げた確認項目を確認して頂きたいです。
実行ファイルからの相対パスでパス参照している為、コンソールから起動すると作業フォルダが変わってしまうため、正しくパス参照ができません
「Program Files」等のフォルダに置くと、権限の問題でファイルを正しく読み書きできない可能性があります
ざっと思い浮かぶのはこの辺りですが、設定ファイルが壊れているのが原因である可能性もあります。
再インストールは既に試されたとのことですが、上記のリストの確認に加え、HPからPCOTをダウンロード&展開し、真っ新な状態で実行した上で新しく画像をキャプチャーしても同様のエラーが発生するかも確認して頂きたいです。
お手数をおかけしますが、提示した確認方法を試した後にもう一度結果を報告して頂けると助かります。
すみません。上記問い合わせに関しては完全にこちらの勘違いでした。
「フリー選択」の機能を使いたいところを途中から「画像翻訳」だと思い込んで間違って使用しておりました。
ご対応いただきありがとうございました。
おぉ、勘違いでしたか。問題が解決したようで何よりです。
画像翻訳はプロローグなど、勝手に字幕が流れてしまうようなものを画像ファイルとして保存して、任意のタイミングで翻訳する為の機能です。
PCOTにしかない機能なので、常用しないと中々慣れませんが使いこなせば便利なので、頭の隅にでも覚えておいて頂けると幸いです。
PCOTを更新しました。v1.7.5
更新項目を以下に列挙します。
・セキュリティー上脆弱性のあるライブラリを更新
・画像加工で表の画像加工種別名を右クリックしてもパラメータを変更できるように修正
・画像加工にガンマ補正を追加
既存のPCOTを利用している方へ
今回は利用しているライブラリのセキュリティー対策のため、実行ファイル以外のファイルも更新しています。
更新する場合はPCOTに同梱している「PCOTの更新方法.txt」内にある「確実な方法」で更新してください。
私信:はま様
ご要望頂いた「色1以外を色2に置換」の処理ですが、巻き込む色を指定させない完全一致の場合、通常の色置換と機能が非対称になり混乱するため、実装を見送りました。
その代わり、「ガンマ補正」という加工方法を追加しました。
使ってみた感じ、ご要望頂いた機能の代替になると思われますので、一度試して頂きたいです。
最後に、大分時間がかかった上にご希望に添えず、誠に申し訳ないのですが、何卒ご理解頂きたいです。
大変便利に使わせてもらってます!
ショートカット設定の「連続翻訳有効/無効」キーなのですが、有効/無効を切り替えるよりも、普段使っている「フリー選択」の他に「連続翻訳有効フリー選択」というようなショートカット設定ができるようになってくれると、大変ありがたいです。あるいは、すでにそのようなことが可能になる方法がありますでしょうか?
PCOTをご利用いただきありがとうございます。
お問合せの件ですが、結論から言うと現行の連続翻訳はON/OFFの切り替えしか用意していません。
ON/OFF動作は確かに誤爆して「PCOTが壊れた!」とちょくちょく報告が上がるので、私も今の仕様が最善とは思ってはいないのですが、連続翻訳を使いたい場面はフリー選択だけではなく、固定翻訳や画像翻訳でも使う機会があるのです。
ご提案の方法だと、連続翻訳有効フリー選択の他に連続固定翻訳のショートカットが必要になってしまいます。それも各固定翻訳に一つ付く形になるので、かなり冗長になってしまいます。
やるとしたら今の仕様を残しつつ、フリー選択だけはご提案頂いた方法で動作させるという感じになると思いますが・・・かなり複雑で混乱しそうです。
何かいい案があれば是非ご提案頂けると助かります。
そうなんですね。ありがとうございます!
PCOTを更新しました。v1.7.6
更新項目を以下に列挙します。
注意:既存のPCOTを利用している方へ
今回は実行ファイル以外にも多数のファイルを更新しています。
特にライブラリのセキュリティーの脆弱性に伴う更新が含まれるため「PCOTの更新方法.txt」にある「確実な方法」で更新してください。
また、ライブラリの更新でTesseract OCRが5.2から5.3にアップグレードされました。
以前よりも読取精度、速度などが向上しているかもしれません。していないかもしれません。
新機能:クリップボード監視(通称:Ren’Pyモード)について
例によって資料を作成しました。
資料1/2

資料2/2

最後に
今回の新機能であるクリップボード監視機能は以前私がX上で「Ren’Py製のゲームを快適に遊ぶ方法」としてVNTranslatorというツールを利用する方法を紹介した方法と基本的に同じ仕組みで動作します。
参考にさせて頂いたVNTranslatorの配布ページはこちら
https://docs.vntranslator.com/
Ren’Pyエンジンに関する様々な情報を提供してくださった
ty様が作成したゲームはこちら(PCOTの動作検証でお世話になりました)
https://p6ik.itch.io/amayadoru
上記の方々によって新たな機能を実装することができました!
この場を借りてお礼申し上げます。
いつも重宝させていただいてます!
最近実装されたクリップボード監視機能が別枠で開いてフォントカラー以外にも背景カラーや枠の有り無しが自由にいじれるのがゲーム配信等で翻訳しながら進める用途で見た目をアレンジできてかなり良い感じなのですが、クリップボード監視機能以外でもこの機能は使えませんでしょうか。(別枠表示や背景色変更など)
コピーしたものすべて翻訳がかかってしまい画面に表示されてしまうので、従来の使い方のように翻訳するものはショートカットを使って選べるのが理想なのですがデザインの自由度がなくクリップボード監視のようにいじれたらなと思った次第です。
もしすでに方法があれば教えていただきたいです!(無ければ今後実装を期待してます…!)
PCOTをご利用いただき、ありがとうございます。
お問合せの件についてですが、PCOTのメイン画面も細かく外観を弄れるオプションが欲しい、もしくは、別の表示専用画面みたいなものを用意して、そちらで細かく外観を変更できるようにして欲しいという要望で合っていますか?
残念ながら、現状ご要望の機能は存在していません。
確かに外観を色々と変えられるのは便利ですよね。ちょっと検討してみます。
ただ、やるとしても大改修が発生しそうなので対応を確約できません。
それでもよければ、気長にお待ち頂ければと思います。
既にご存じだったら申し訳ないのですが、配信で利用するとのことだったので、配信用途に使えるOBSとの連携方法について詳しく説明している記事がありますので、是非参考にしてください。
「やまちゃんねるブログ」
https://yamachannel-blog.com/game-translation/#rtoc-13
そちらの記事は知りませんでした!ファイル出力できるんですね、紹介いただいた方法で解決できそうですありがとうございます。
併せてもう一点だけ良いでしょうか…!
翻訳した後、翻訳内容(文章)をクリアするショートカットやそれに近い方法はないでしょうか。(クリアボタンを押せば消せますがそれをキーボード上で行いたい)
翻訳にはショートカットがあったのでそれに合わせてOBS上で翻訳ソースを同じショートカットで表示、終わったら非表示をしているのですがこの方法だと翻訳が終わるまでの間、前の翻訳内容が表示されてしまいややこしくなってしまうので何かしらの方法でリセット出来ればと思うのですが可能でしょうか。
翻訳ソフトのショートカット→翻訳が完了したらOBS表示ショートカット→非表示ショートカット と1つショートカットを増やせば解決はするのですが手数が増えてしまうのでソフトの機能で解決できればと思うのですがよい方法があればご教授いただきたいです!
紹介した記事がお役に立ったようで何よりです!
クリアのショートカットについては、トリガーキーをどれにするかを悩んで結局実装していませんでした。
順当に考えればCtrl+Shift+Cなんですが、連続翻訳(Continue)で同じショートカットを既に使用してしまっています。
よろしければ、候補を挙げて頂けると助かります。
一応、こちらの候補としては(ちょっと苦しいですが)Ctrl+Shift+D(Delete)になるかと思います。
また、ご要望頂いた機能はちょっと大変ですが、実装すること自体は可能です。
ただ、こうしてやり取りをしている方が名無しさんだと、要望を実装したとしても機能を有効活用されているかどうかが分かりません。
配信されている(or 配信予定がある)とのことなので、差し支えなければどちらで配信されている方なのかを教えて頂けますと幸いです。
ご返答ありがとうございます!
ショートカットキーですが私はゲーム内で競合していないこともありctrlを外してフリー翻訳をShift+Fでやってる都合上、OBSでの翻訳非表示をShift+Gでやってるのでクリアが実装された際はそれに合わせてShift+Gでやると思います。(Dだとゲームで移動ボタンと重複するので都合悪い場合があるかもしれません)
場合によって変わることも多いと思うのでショートカットは他のものと同じように自由に設定できるとより助かります!
活動名は公開控えたいのですがそれなりに活動しているのでPCOTは周りの活動者にも布教しておきます!
ご回答頂き、ありがとうございます。
では、他のショートカットキーと足並みを揃えたいので、初期状態は「CTRL+SHIFT+G」とさせていただきます。
今は幾つか見つけた不具合を修正中なので、それが終わり次第取り掛かりたいと思います。
気長にお待ちください。
いつも大変ありがたく利用させていただいております。
不躾なお願いで大変恐縮ですが、
PCOTのスクリーンショット付きで、簡単な使い方・個人的にオススメの設定などを記載した資料を
印刷してコミケ等で頒布させていただくことは可能でしょうか??
非公式かつ個人的な資料である旨の補足と、
当サイトのURL・ぬるっぽ様のツイッターIDのクレジットを表記する予定です。
なお該当資料は、無料頒布するA4用紙1枚の一部分に含める予定です。
もちろん不可であれば作成・頒布はいたしません。
お忙しい中恐縮ですがご検討のほどよろしくお願い申し上げます。
いつもPCOTをご利用いただき、ありがとうございます。
PCOTをコミケでご紹介して頂けるとのこと、大変嬉しく思います!
是非是非お願いします!
ただ、一つだけ
サイト上部に列挙されているPCOTの紹介ページを見て分かる通り、(使い方は極力変えない様にはしていますが)PCOTのUIは結構頻繁に変わっています。
なので、なるべく最新バージョンで紹介して頂きたいのと、紹介したバージョンをどこかに併記して頂けると、混乱が少ないと思います。
それでは、今後もよろしくお願いいたします。
お世話になっております。
ご快諾いただけて幸甚の極みです!
最新バージョンの利用と、紹介時バージョン併記の件承知いたしました。
これからもPCOTの発展を楽しみにしております。
お忙しい中ありがとうございました!
PCOTを更新しました。v1.7.7
更新項目を以下に列挙します。
今回の更新の目玉についてご紹介
【クリップボード監視機能】
今回の更新で翻訳時に「翻訳結果をコピー」にチェックがない場合、原文をクリップボードにコピーするように修正しました。
また、翻訳機能を無効にしている場合はOCR時にメイン画面をアクティブにしないようにも修正しました。
上記修正の目的はクリップボード監視機能が有効時にクリップボード監視機能の翻訳のみをアクティブにするためです。
以下の画像は「翻訳結果をコピー」にチェックなしに設定し、「翻訳機能を無効」にチェックしている場合で且つ、「クリップボード監視機能」を有効にしている状態の画像です。
参考画像

画像の通り、ノベルゲームでは雰囲気を壊すことなく翻訳できるので重宝すると思います。
【テキストクリア】
動画配信者の方はPCOTとOBSを連携させて、配信画面上に訳文を表示している方もいると思います。
今回、動画配信者向けにクリア処理をショートカットで起動できるように修正しました。
OBSの画面上では「result.txt」ファイルの内容を表示していますが、クリアボタン or クリアショートカットキー「CTRL+SHIFT+G」を押すと、画面に表示している内容をクリアすることができます。
配信画面中に前の翻訳結果がずっと表示されている場合などに重宝すると思います。
注意:既存のPCOTを利用されている方へ
今回の修正で新規のショートカットキーが追加されています。
既存のユーザーの方は設定→システム設定→ショートカット設定からショートカット設定を開き「リセット」ボタンを押して、新規のショートカットキーを反映させる必要があります。
ご注意ください。
いつも使わせていただいています。
連続翻訳時
ショートカットで翻訳後スクロールバーが自動で動かなくなってしまったのですが
原因はなにか分かりますでしょうか?
いつもPCOTをご利用いただきありがとうございます。
スクロールバーは原文側でしょうか?それとも訳文側でしょうか?もしくは両方でしょうか?
不具合の可能性が高いので、もう少し詳しい状況を教えていただけますと助かります。
ぬるっぽ様、素晴らしいツールの作成ありがとうございます。
OblivionやSkyrimの大型クエストModなどを遊ぶ時に有志の方が作ってくださった日本語化ファイルがないから諦めるかと思った事が何度もありました。
しかし今このツールを使わせて貰い可能性が大きく広がった事に大変感謝しています。
現在はMorrowindプレイ中にてこのツールの素晴らしさを噛み締めています、本当にありがとうございました。
PCOTをご利用いただき、ありがとうございます。
人づてに聞いた話ですが、Morrowindは大分古いゲームで、かつては日本語化が出来たものの、現在では日本語化MODを配っていたサイトなどでもリンク切れが目立つようになり、PCOTの利用は選択肢としてベストではないものの、ベターだとのことです。
PCOTは「一つでも多くのゲームを遊べるようにしたい」というモットーで開発しているツールなので、こうして暖かい言葉を頂けると、製作者としてとても励みになります。
今後もPCOTがお役に立てるよう願っております。
素晴らしいソフトウェアの開発、ありがとうございます。
Windows10OCRを設定するために、設定の言語の追加から英語(米国)を追加して再起動を行いましたが、PCOTの選択肢にWindows10OCRが追加されませんでした。
私は現在Windows11を使用しているのですが、Windows11ではWindows10OCRは使用できないのか、あるいは他に原因があるのでしょうか。
ご回答いただければ幸いです、既出の質問でしたらすみません。
PCOTをご利用いただき、ありがとうございます。
お問い合わせについてですが、Windows10OCRはWindows11でも利用できることを確認しています。
ただ、過去に上手く行かなかった例もいくつか報告されています。
というわけで、いくつか確認させてください。
上記の全てが問題ない状態で、OCRエンジンにWindows10OCRが出てこない場合は不具合の可能性があるので、お手数ですが再度ご連絡ください。
その際には、Windows11のエディション、どんな操作でOCRエンジンの切替を行おうとしたか等、詳しい情報を頂きたいです。
ご回答ありがとうございます。
ご指摘いただいた以下3点について確認しましたが、すべて正常でした。
OCRエンジンの切り替えは、以下のように行いました。
すみません、自己解決しました。
理由は不明ですが、キーボードレイアウトを一度英語(米国)に切り替えた後、選択肢にWindows10OCRが何故か表示されるようになりました。
お騒がせして申し訳ありませんでした。
おぉ、解決したようで何よりです!
確かに理由は分かりませんが、キーボードレイアウトを一度切り替えると表示されるようになるのですね。
もし今後、同様の報告が上がった場合にはそのようにアドバイスしたいと思います。ご報告ありがとうございました!
素晴らしいソフトを開発して頂きありがとうございます。
PCOTを使い始めたばかりですが、当方の環境でエラーが発生するためご確認頂けますと幸いです。
<エラー発生時の状況>

フリー選択にて1回目の翻訳は成功するが、2回目の翻訳がエラーとなる。
**** 例外テキスト ****
System.Runtime.InteropServices.ExternalException (0x800401D0): 要求されたクリップボード操作に成功しませんでした。
場所 System.Windows.Forms.Clipboard.ThrowIfFailed(Int32 hr)
場所 System.Windows.Forms.Clipboard.SetDataObject(Object data, Boolean copy, Int32 retryTimes, Int32 retryDelay)
場所 System.Windows.Forms.Clipboard.SetText(String text, TextDataFormat format)
場所 System.Windows.Forms.Clipboard.SetText(String text)
場所 PCOT.frmShowTranslatedText.d202.MoveNext()
--- 直前に例外がスローされた場所からのスタック トレースの終わり ---
場所 System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b6_0(Object state)
<当方の設定等>
・PCOTバージョン 1.7.7
・OS:windows11Pro 24H2
・VC_redist.x86.exe は最新をインストール
・Windowsのクリップボードの履歴はオフに設定
・使用OCRエンジンは「Windows10 OCR」、「Tesseract OCR」どちらでもエラーとなる。
・翻訳エンジンを「Google翻訳」、「DeepL」、「みんなの自動翻訳連携」のどれに変更してもエラーとなる。
・翻訳エンジンを「Google翻訳」、「DeepL」とした場合はエラーダイアログの[続行]ボタンを押すとそのまま使える。
・翻訳エンジンを「みんなの自動翻訳連携」とした場合は[フリー選択]ボタンを押しても範囲選択できる状態にならない。
この場合はPCOTの再起動が必要
現在は翻訳エンジンを「Google翻訳」にして、エラー発生時は[続行]ボタンを都度押して使っている状況です。
よろしくお願いいたします。
PCOTをご利用いただき、ありがとうございます。
不具合報告と詳しいエラー状況を教えて頂き、感謝いたします。
みんなの自動翻訳を利用しているときだけ、続行を押しても利用できない理由は分かりませんが、スタックトレースを拝見した感じ、クリップボードに文字をセットしている過程でなんらかの例外が発生しているようです。
調べてみたところ、こんな記事が出てきました。
PowershellやC#からクリップボード転送時にExternalExceptionが頻発する原因と対策
これの回答に、「他の誰かがクリップボードを開いているとき」とあるので、PCOTと一緒に起動している何かしらのアプリと、クリップボード操作で競合している可能性があります。
もし心当たりがある場合は、心当たりのあるアプリの利用を中止して、PCOTとの併用を避けて頂けるとエラーの発生を抑制できる可能性があります。
また、その場合はエラーの再現を行いたいので、差し支えなければ併用しているアプリの名前を教えて頂けると、エラーの修正に役立ちます。
以上、あまりお役に立てず恐縮ですが、ご確認の程よろしくお願いいたします。
早々にご回答頂きありがとうございます。
システムトレイに常駐しているアプリを一つずつ落として確認したところ、問題のアプリを特定することが出来ました。
G-Ignition(Ver3.0.2)
https://www.eizo.co.jp/support/db/products/model/G-Ignition / G-Ignition Mobile
EIZO製モニターのユーティリティツールになります。クリップボードを使っているとは思いもしませんでした。
このツールを終了した状態では今のところ全くエラーは発生しておりません。
PCOTを使う際はこのツールを終了する運用にしたいと思います。
貴重なアドバイスありがとうございました。感謝いたします。
ご報告ありがとうございます!
エラーの発生原因を特定できたようで何よりです。
また、競合しているアプリをご教示頂き、感謝いたします。
場当たり的な対応になりますが、次の更新でPCOTでクリップボードを操作する処理全般を修正したいと思います。
それまではご不便をおかけしますが、ご返信頂いた運用をお願いいたします。
PCOTを更新しました。v1.7.8
更新項目を以下に列挙します。
注意:既存のPCOTを利用している方へ
今回は実行ファイル以外にも多数のファイルを更新しています。
特にライブラリのセキュリティーの脆弱性に伴う更新が含まれるため「PCOTの更新方法.txt」にある「確実な方法」で更新してください。
画像翻訳の改修内容について
今回の更新でPCOTの画面キャプチャーで扱える画像形式が増えました!
例によって更新資料を作成しました。
注意点などもありますので、熟読してください。
【画像翻訳改修資料】



1/3
2/3
3/3
資料にもありますが、今回の更新でキャプチャーした画像をPNGからJPEGへ、JPEGからWEBPへと相互変換できるようになりました。
とても便利になったので是非使って頂きたいです!
いつも重宝させていただいてます。
設定ファイル等は引き継がずに新規に解凍したver1.7.8でフリー翻訳機能を使ってみたところ、従来はおそらくフォントの都合でうまく読み込めていなかったゲーム内の単語が正しく読み込めるようになっていました。比較対象はver1.7.3をアップデートしたver1.7.7だったはずです。
今回の更新履歴だけを見ると関連は無いように思えるのですが、何か変化があったのでしょうか。
いずれにせよ、更に便利になったので嬉しい驚きでした。
PCOTをご利用いただき、ありがとうございます。
恐らくですが、v1.7.6でライブラリの脆弱性が見つかったため、セキュリティー対応のついでに更新できるライブラリ全てを更新しました。
その際に、Tesseractが5.2から5.3へアップグレードされたようなので、その影響かもしれません。
なんにせよ、更に便利になったようで何よりです!ご報告ありがとうございました!
頂いた報告で、ライブラリの更新に意義があることが分かったので、今後はライブラリの更新通知も注視するようにします!