以下の点に注意して投稿してください。
更新項目を以下に列挙します。
今回はムービーを快適に翻訳するための機能として「範囲選択時に対象プロセスのスレッドを停止」の派生オプション、「次回アクティブになるまでスレッドを停止」という機能を追加しました。
便利は便利ですが、曰くのある機能なので必ず下記の資料を読んでください。
新機能資料(1/3)
新機能資料(2/3)
新機能資料(3/3)
今回は色々手直しして取っ散らかってきたので、キリよく更新しましたが、次回の更新は、NICTで新たに公開された「MINHON_WebAPIHelper」を組み込む予定です!
乞うご期待!!
(アカウント登録したためアイコンが変わっています)古いスレッドにレス失礼しました。 PCOTをオープンソースにして欲しい理由は、(これはオープンソース全般に言えることですが)単純にその方が多くの人が開発に参加でき、ぬるっぽさん自身も含め全員の利益になると思ったからです。それと現在Windowsに「安全性が確認されてないソフト」判定されてしまいますが、ソースコードが公開されていればセキュリティホールが無いかなど誰もが確認できるようになるからです。 過去のインタビュー記事で収益化などは全く考えてないと書かれてましたが、もし今は気が変わって将来的に収益化したいなどの理由でオープンソースにしてないという事ならもちろん構いません。あるいはMusicBeeのように完全無料ソフトでもオープンソースでないソフトはありますし。
改めてコメント頂きありがとうございます。
個別の事柄について返信する前に、先に現在の状況をお話させて頂きますと、PCOTは現在GitHubでプライベートリポジトリとして運用しています。
上記を前提として、ご提案について返信させて頂きます。 ご提案の骨子として、公益性を重視されているようですね。
まず、今のPCOTには秘匿したいソースが含まれています。 技術面の話ではなく、私が個人的に使いたい機能でそれをあまり公にしたくない事情があります。これについての言及は避けさせてください。
上記の理由と、あとソースを渡す人は私自身が選びたいのです。 具体的にはPCOTの長所と短所を理解した上で更に利便性を向上させたい方や、ITの分野でスキル向上を図る目的でPCOTを解析してみたいという方などが該当します。 上記に該当する方には個別で対応しています。
セキュリティホールの確認など、確かに公益性を重視するのであれば有意義なご提案ではあるのですが、私のモチベーションが続く限りは私一人で開発を続けていくつもりです。もちろんPCOTを利用する方は完全に自己責任となるので、セキュリティホールを懸念される方がPCOTを利用しないのも、それもまた自由です。
収益化については現在も全く考えていません。 今現在、NICTのみんなの自動翻訳を利用した機能を実装中ですが、みんなの自動翻訳は商用利用を禁止しています。 みんなの自動翻訳の機能を組み込んだ時点で、PCOTは永劫フリーソフトという位置づけになります。
最後に乱暴な言い方になりますが、仕事であれば別ですが、開発に関して知らない人とは誰とも関わりたくないので、もしPCOTのソースを公開する場合は、私自身がPCOTの開発から身を引く時(まさに丸投げですね)だと思っています。
長くなりましたが、ご理解いただけますと幸いです。
今回は多数のファイルを更新しています。 更新する場合は、PCOT同梱の「PCOTの更新方法.txt」にある「■確実な方法」で更新を実施してください。
今回の更新でPCOTの訳文欄に直接みんなの自動翻訳の翻訳結果を表示できるようになりました! みんなの自動翻訳は国立研究開発法人情報通信研究機構が研究開発している自動翻訳サービスです。利用するにはアカウント登録が必要となります。
利用登録はこちらから→みんなの自動翻訳@TexTra®
例によってみんなの自動翻訳の導入方法、及び利用方法の資料を作成しました。
みんなの自動翻訳の資料(1/4)
みんなの自動翻訳の資料(2/4)
みんなの自動翻訳の資料(3/4)
みんなの自動翻訳の資料(4/4)
この機能の作成にあたり、沢山の方にお世話になりました! この場を借りてお礼申し上げます!
今回は不具合修正&マイナーチェンジです。
はじめまして。オンラインゲームで韓国語の翻訳にいいのないか探して見つけました。 質問なのですが、韓国プレイヤーとの会話を翻訳したいときに日本語や英単語が文章に混じる場合、文字列が韓国語か数字に変換され翻訳されるのですが解決方法はあったりしますでしょうか? 英語翻訳の英語と日本語の場合は対応しているとの更新情報は見かけましたが、他言語はまだ未対応なのでしょうか?
はじめまして。PCOTをご使用いただき、ありがとうございます。
お問い合わせの件に関してですが、ご推察のとおり英日以外は言語の混在に対応していません。
まず、先に言語を指定する特性上、どの言語をどう組み合わせるかという問題があります。それと、言語を複数指定した場合は、言語を単発で指定した場合に比べて明らかに読取精度が落ちます。 例えば韓国語のみの文章を読もうとしたときに、日本語+韓国語で指定すると、韓国語の中の日本語っぽい表記を無理やり拾って、原文の中に意味不明な日本語が混じる事態になります(これは既に実装済みの英日でも同様の事が起きます)
一番良い解決方法は有料になってしまいますが、Google Cloud Vision APIを導入して、Google OCRを利用することです。 こちらは、特に言語を指定する必要がないのと、多種多様な言語の混在にも対応していますし、読取精度も既存のOCRとは一線を画す性能を持っています。
以上、あまり答えらしい答えになっていませんが、参考にしていただければ幸いです。
お世話になります。 画像加工&OCR読み取り設定について要望です。 現状「指定した色」を置換することができるのですが、「指定した色以外」を置換することができるといいなと思いました。使用中のゲームでは添付のように背景に文字がまぎれるため、OCRがうまくできません。夜になり、背景が真っ暗だとOCRができます。なので、指定した色以外を変換できるオプションがあるとOCRができそうに思います。 添付画像では ①橙色を範囲100で橙色に変更 ②白を範囲100で橙色に変更 ③橙色以外をすべて黒に変更 という風に処理を重ねるといけそうに想像してます。
0が完全一致なので、-1が不一致のもの、というような感じだとUI変更も少なくて済みそうに思いますが。 ご検討のほど、よろしくお願いします。
補足、「-1が不一致のもの」としましたが、-1~-100で範囲指定でもいいかもと思いました。-10に設定した場合は、色の近似範囲10から外れるものが変換対象になる、というのをイメージしています。ご検討のほど、よろしくお願いします。
PCOTをご使用いただき、ありがとうございます。 ご要望についてですが、画像が添付されていないので具体的にどうしたいのかはちょっと分かりませんが、色置換の逆は実は前にやろうとしたことがあるんです。 安直に「逆色置換」と呼んでましたが、結果から言うと無理でした。
理由として、0(完全一致)を設定した場合は問題なく上手く行くんです。
下記の引用の通り
-10に設定した場合は、色の近似範囲10から外れるものが変換対象になる
これを実装した途端、凄まじく処理が重くなってしまい、実用的な速度での置換が不可能でした。組み方が不味いのかもしれませんが、少なくともアルゴリズム的に今やっている色置換の判定を反転させるだけでは、上手くいきません。
恐らく処理が重くなる理由は置換する色が多すぎるせいだと思われるので、高精度に256色程度まで減色した画像であれば、上手く行く可能性があります。
高精度に色を減色するサンプルは前に見つけたのですが、かなり複雑な画像処理を行う必要があるので直ぐに対応するのは不可能です。
ただ、仰る要望は前々からやりたいとは思っているので今後もトライはして行こうと思います。
以上、ご理解いただけますと幸いです。
ご返信ありがとうございます。画像のアップ方法を間違ってました。 このように背景に文字がまぎれるので、OCRが失敗しやすいです。
なるほど、すでに検討されてたのですね。処理が激重になるとのことでなるほど、理解できます。なんとかできないものかなぁと思い、chatGPTで調査してみたところ、以下のような方法がどうかなと思いました。
文字部分の色(範囲指定無し)を透明色に変換したあと、画像の明度、彩度を0に変換します。その画像をマスクとして、元画像の上にマスク画像を重ねることで、背景のみ黒に変換できそうかなと。 cahtGPTでソース(C#)を作成して動かしたところ、希望通りに動きました。ソースは部分抜粋ですが、次にあげます。
PCOTの開発言語が何か不明ですが、同じようなことができれば処理時間も短くて実現できないかなと思った次第です。 あくまでアイデアとしてご検討いただければ、との思いでおります。 もしこの書き込みに不快な思いをされたようでしたら削除してください。 よろしくお願いします。
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
不適切なコンテンツとして通報するには以下の「送信」ボタンを押して下さい。 現在このグループでは通報を匿名で受け付けていません。 管理者グループにはあなたが誰であるかがわかります。
どのように不適切か説明したい場合、メッセージをご記入下さい。空白のままでも通報は送信されます。
通報履歴 で、あなたの通報と対応時のメッセージを確認できます。
トピックをWIKIWIKIに埋め込む
次のコードをWIKIWIKIのページに埋め込むと最新のコメントがその場に表示されます。
// generating...
プレビュー
ここまでがあなたのコンテンツ
ここからもあなたのコンテンツ
PCOTを更新しました。v1.7.2
更新項目を以下に列挙します。
新機能:対ムービー最終兵器
今回はムービーを快適に翻訳するための機能として「範囲選択時に対象プロセスのスレッドを停止」の派生オプション、「次回アクティブになるまでスレッドを停止」という機能を追加しました。
便利は便利ですが、曰くのある機能なので必ず下記の資料を読んでください。
新機能資料(1/3)
新機能資料(2/3)
新機能資料(3/3)
今回は色々手直しして取っ散らかってきたので、キリよく更新しましたが、次回の更新は、NICTで新たに公開された「MINHON_WebAPIHelper」を組み込む予定です!
乞うご期待!!
(アカウント登録したためアイコンが変わっています)古いスレッドにレス失礼しました。
PCOTをオープンソースにして欲しい理由は、(これはオープンソース全般に言えることですが)単純にその方が多くの人が開発に参加でき、ぬるっぽさん自身も含め全員の利益になると思ったからです。それと現在Windowsに「安全性が確認されてないソフト」判定されてしまいますが、ソースコードが公開されていればセキュリティホールが無いかなど誰もが確認できるようになるからです。
過去のインタビュー記事で収益化などは全く考えてないと書かれてましたが、もし今は気が変わって将来的に収益化したいなどの理由でオープンソースにしてないという事ならもちろん構いません。あるいはMusicBeeのように完全無料ソフトでもオープンソースでないソフトはありますし。
改めてコメント頂きありがとうございます。
個別の事柄について返信する前に、先に現在の状況をお話させて頂きますと、PCOTは現在GitHubでプライベートリポジトリとして運用しています。
上記を前提として、ご提案について返信させて頂きます。
ご提案の骨子として、公益性を重視されているようですね。
まず、今のPCOTには秘匿したいソースが含まれています。
技術面の話ではなく、私が個人的に使いたい機能でそれをあまり公にしたくない事情があります。これについての言及は避けさせてください。
上記の理由と、あとソースを渡す人は私自身が選びたいのです。
具体的にはPCOTの長所と短所を理解した上で更に利便性を向上させたい方や、ITの分野でスキル向上を図る目的でPCOTを解析してみたいという方などが該当します。
上記に該当する方には個別で対応しています。
セキュリティホールの確認など、確かに公益性を重視するのであれば有意義なご提案ではあるのですが、私のモチベーションが続く限りは私一人で開発を続けていくつもりです。もちろんPCOTを利用する方は完全に自己責任となるので、セキュリティホールを懸念される方がPCOTを利用しないのも、それもまた自由です。
収益化については現在も全く考えていません。
今現在、NICTのみんなの自動翻訳を利用した機能を実装中ですが、みんなの自動翻訳は商用利用を禁止しています。
みんなの自動翻訳の機能を組み込んだ時点で、PCOTは永劫フリーソフトという位置づけになります。
最後に乱暴な言い方になりますが、仕事であれば別ですが、開発に関して知らない人とは誰とも関わりたくないので、もしPCOTのソースを公開する場合は、私自身がPCOTの開発から身を引く時(まさに丸投げですね)だと思っています。
長くなりましたが、ご理解いただけますと幸いです。
PCOTを更新しました!!v1.7.3
更新項目を以下に列挙します。
【注意点】既存のPCOTを利用している方へ
今回は多数のファイルを更新しています。
更新する場合は、PCOT同梱の「PCOTの更新方法.txt」にある「■確実な方法」で更新を実施してください。
【新機能】みんなの自動翻訳について
今回の更新でPCOTの訳文欄に直接みんなの自動翻訳の翻訳結果を表示できるようになりました!
みんなの自動翻訳は国立研究開発法人情報通信研究機構が研究開発している自動翻訳サービスです。利用するにはアカウント登録が必要となります。
利用登録はこちらから→みんなの自動翻訳@TexTra®
例によってみんなの自動翻訳の導入方法、及び利用方法の資料を作成しました。
みんなの自動翻訳の資料(1/4)
みんなの自動翻訳の資料(2/4)
みんなの自動翻訳の資料(3/4)
みんなの自動翻訳の資料(4/4)
この機能の作成にあたり、沢山の方にお世話になりました!
この場を借りてお礼申し上げます!
PCOTを更新しました。v1.7.4
今回は不具合修正&マイナーチェンジです。
更新項目を以下に列挙します。
はじめまして。オンラインゲームで韓国語の翻訳にいいのないか探して見つけました。
質問なのですが、韓国プレイヤーとの会話を翻訳したいときに日本語や英単語が文章に混じる場合、文字列が韓国語か数字に変換され翻訳されるのですが解決方法はあったりしますでしょうか?
英語翻訳の英語と日本語の場合は対応しているとの更新情報は見かけましたが、他言語はまだ未対応なのでしょうか?
はじめまして。PCOTをご使用いただき、ありがとうございます。
お問い合わせの件に関してですが、ご推察のとおり英日以外は言語の混在に対応していません。
まず、先に言語を指定する特性上、どの言語をどう組み合わせるかという問題があります。それと、言語を複数指定した場合は、言語を単発で指定した場合に比べて明らかに読取精度が落ちます。
例えば韓国語のみの文章を読もうとしたときに、日本語+韓国語で指定すると、韓国語の中の日本語っぽい表記を無理やり拾って、原文の中に意味不明な日本語が混じる事態になります(これは既に実装済みの英日でも同様の事が起きます)
一番良い解決方法は有料になってしまいますが、Google Cloud Vision APIを導入して、Google OCRを利用することです。
こちらは、特に言語を指定する必要がないのと、多種多様な言語の混在にも対応していますし、読取精度も既存のOCRとは一線を画す性能を持っています。
以上、あまり答えらしい答えになっていませんが、参考にしていただければ幸いです。
お世話になります。
画像加工&OCR読み取り設定について要望です。
現状「指定した色」を置換することができるのですが、「指定した色以外」を置換することができるといいなと思いました。使用中のゲームでは添付のように背景に文字がまぎれるため、OCRがうまくできません。夜になり、背景が真っ暗だとOCRができます。なので、指定した色以外を変換できるオプションがあるとOCRができそうに思います。
添付画像では
①橙色を範囲100で橙色に変更
②白を範囲100で橙色に変更
③橙色以外をすべて黒に変更
という風に処理を重ねるといけそうに想像してます。
0が完全一致なので、-1が不一致のもの、というような感じだとUI変更も少なくて済みそうに思いますが。
ご検討のほど、よろしくお願いします。
補足、「-1が不一致のもの」としましたが、-1~-100で範囲指定でもいいかもと思いました。-10に設定した場合は、色の近似範囲10から外れるものが変換対象になる、というのをイメージしています。ご検討のほど、よろしくお願いします。
PCOTをご使用いただき、ありがとうございます。
ご要望についてですが、画像が添付されていないので具体的にどうしたいのかはちょっと分かりませんが、色置換の逆は実は前にやろうとしたことがあるんです。
安直に「逆色置換」と呼んでましたが、結果から言うと無理でした。
理由として、0(完全一致)を設定した場合は問題なく上手く行くんです。
下記の引用の通り
これを実装した途端、凄まじく処理が重くなってしまい、実用的な速度での置換が不可能でした。組み方が不味いのかもしれませんが、少なくともアルゴリズム的に今やっている色置換の判定を反転させるだけでは、上手くいきません。
恐らく処理が重くなる理由は置換する色が多すぎるせいだと思われるので、高精度に256色程度まで減色した画像であれば、上手く行く可能性があります。
高精度に色を減色するサンプルは前に見つけたのですが、かなり複雑な画像処理を行う必要があるので直ぐに対応するのは不可能です。
ただ、仰る要望は前々からやりたいとは思っているので今後もトライはして行こうと思います。
以上、ご理解いただけますと幸いです。
ご返信ありがとうございます。画像のアップ方法を間違ってました。
このように背景に文字がまぎれるので、OCRが失敗しやすいです。
なるほど、すでに検討されてたのですね。処理が激重になるとのことでなるほど、理解できます。なんとかできないものかなぁと思い、chatGPTで調査してみたところ、以下のような方法がどうかなと思いました。
文字部分の色(範囲指定無し)を透明色に変換したあと、画像の明度、彩度を0に変換します。その画像をマスクとして、元画像の上にマスク画像を重ねることで、背景のみ黒に変換できそうかなと。
cahtGPTでソース(C#)を作成して動かしたところ、希望通りに動きました。ソースは部分抜粋ですが、次にあげます。
PCOTの開発言語が何か不明ですが、同じようなことができれば処理時間も短くて実現できないかなと思った次第です。
あくまでアイデアとしてご検討いただければ、との思いでおります。
もしこの書き込みに不快な思いをされたようでしたら削除してください。
よろしくお願いします。
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