HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
1122
K.Rマインクラフトのチャット読み込みについて14未解決


K.R

リンク

2015/11/22(Sun) 11:22:55|NO.73189

最近マインクラフトを購入したんですがマルチをやっているときに
答えが返ってきているにもかかわらず何度もおなじ質問をしている人を見かけましたそこでマインクラフトのチャットを読み込み設定した言葉が出た場合設定している言葉を返信すると言うソフトを作りたいのですあHPS初心者なので分かり易く解説していただけないでしょうか



この記事に返信する


スペース

リンク

2015/11/22(Sun) 12:14:26|NO.73190

マイクラはやった事がないのでチャット画面等はわかりませんが、基本的な流れは以下の通りかと。
①マイクラの画面を取り込む
②cvマッチング(cvmatch)や画像比較モジュール等でその言葉があるかを検索
③あったらsetkeyやmouse_eventを使って操作

って感じですかね。
画面の取り込みは以下に。
http://chokuto.ifdef.jp/advanced/capturewindow.html
http://chokuto.ifdef.jp/advanced/capturescreen.html

cvマッチングはHDLで「cvmatch」と検索すれば出てくると思います。

画像比較モジュールは以下のものはどうでしょう?(ちゃっかり自分のを宣伝)
http://quasiquote.org/hspwiki/%E7%94%BB%E5%83%8F%E6%AF%94%E8%BC%83%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB



スペース

リンク

2015/11/22(Sun) 12:16:01|NO.73191

あ、書き忘れ。
setkeyは以下のサイトに。ページ真ん中辺りです。
http://www.placeark.com/program_hsp_sample.html

mouse_eventはHDLに。



K.R

リンク

2015/11/22(Sun) 14:58:52|NO.73192

うーん
チャットのシステム上ループさせるしかないんだろうけど…
処理が異常なほどにおもくなってしまい、とても使えたものでは
無くなってしまうんですよ…
とりあえず教えて欲しいことがいくつかありまして…
1、画像を保存せずに処理する方法
2、画像のなかから指定された言葉を抜き出す方法
3、2の言葉があった場合にマインクラフトでTキーを入力し設定されている言葉を入力するほうほう
4、これらの処理を出来るだけ軽量化する方法
これら4つの事を教えていただけないでしょうか



スペース

リンク

2015/11/22(Sun) 16:17:49|NO.73193

>>1、画像を保存せずに処理する方法
私が貼ったリンク先のウィンドウorスクリーンキャプチャのソースコードの事ですよね?
よく読んでみてください。取得した画像(画面)はbuffer 2に描きこまれています。

2、3は言っている意味がよく解りません。
チャットを文字としてHSPで取得したいという意味ですか?(つまりOCR)
もしそうなら不可能に近いです。
OCRは1文字ずつ認識することになるので、かなり重くなるかと。
ですが1つの文章としてならCVマッチング・画像比較モジュールで十分出来ます。

>>4、これらの処理を出来るだけ軽量化する方法
そもそもそこまで重くないと思います。
推定ですが1フレームレート程度は出るのではないでしょうか。
チャットを認識する処理の場合、十分かと。
ですが仮に軽くする場合、画像を縮小してcvマッチングするとかでしょうか?



空気

リンク

2015/11/22(Sun) 16:21:14|NO.73194

cvmatchでは一致度合いを数値として返してくれないので文字の検出はできないようですね。
詳しくは2をご覧になって下さい。

>1、画像を保存せずに処理する方法 試していませんが、こちらのモジュールが使えるかと。 http://hsp.tv/play/pforum.php?mode=pastwch&num=61151 上記のモジュールでbufferに書き込まれた画像は cvputimgでコピーしてcvmatchにかけたほうが速いかと思われます。 >2、画像のなかから指定された言葉を抜き出す方法 cvmatchは画像で一番似ている場所を検出してくれますが、 逆に言うと、似てない場合でもその中で一番近い物を探し出す上、 類似度を返してくれる命令はないので、全く使い物になりません。 完全一致なら、このサイトのスクリプトが参考になるかもしれません 大幅に改変しなくてはいけませんが。。。 http://rpen.blogspot.jp/2007/06/blog-post_21.html >3、2の言葉があった場合にマインクラフトでTキーを入力し設定されている言葉を入力するほうほう スペースさんが、HSPからキーボードのキーを押したのと同等の事が可能なモジュールの リンクを張って下さっているのですが・・・ >4、これらの処理を出来るだけ軽量化する方法 以下の方法を試してみて下さい メインループ内のawait 16をより大きな値にする。 (同時にたくさんのチャットが来た場合に取りこぼす可能性が上がります。) キャプチャした画像はCVバッファに直で保存する キャプチャした画像をcvresizeで縮小(CV_INTER_NN以外推奨)してから、 cvmatchにかける(誤検出が増加する可能性があります。)



スペース

リンク

2015/11/22(Sun) 16:28:28|NO.73195

書き忘れていました。
確かに空気さんのいうようにcvマッチングは最も似ている場所を調べるので、
人間の目で見れば全く違う場所を示したり・・・
なのでcvマッチングを使うとしたら、使った後に画像比較モジュールで確認する必要があります。



空気

リンク

2015/11/22(Sun) 16:54:43|NO.73198

マイクラのようにチャット欄が半透明でゲーム画面が写る場合は
画像比較モジュールで完全一致以外でも検出できるように
改造しないと駄目なような気もします。



スペース

リンク

2015/11/22(Sun) 17:11:03|NO.73202

>>空気さん
なるほど、マイクラのチャットは背景が半透明系でしたか・・・
うぅ~ん格段に難しくなりますね・・・



空気

リンク

2015/11/22(Sun) 17:30:49|NO.73206

マイクラ側にチャット欄を不透明にする
Mod等があれば、完全一致でも検出可能かもしれません。



K.R

リンク

2015/11/22(Sun) 17:57:18|NO.73208

ありがとうございます
とりあえずまずは誤作動を覚悟してつくってみます…



prince

リンク

2015/11/23(Mon) 07:50:46|NO.73211

チャットの読み込みであればパケットキャプチャはどうでしょうか。
Minecraftの通信はTCPなのでそこまで難しくはないと思います。

Win10Pcap: http://www.win10pcap.org/ja/
Minecraftの通信プロトコル(英語): http://wiki.vg/Protocol



ぜーっと!!

リンク

2015/11/23(Mon) 11:40:23|NO.73212

こんにちは。

あちらこちら調べてみたら、PCにチャットのログが常時(?)保存されているようです。
gz形式の圧縮ファイルだそうですが、中身はテキストデータでしょうから、
それを常時監視していれば検索も比較的楽なのではないかと。

ファイルの場所は下記の記事内容を参照してくだしあ(`・ω・)-3
https://pvp.minecraft.jp/threads/1721

参考になれば・・。



空気

リンク

2015/11/23(Mon) 13:10:06|NO.73213

7zipを用いた圧縮ファイルの回答方法が過去ログにありました。
このソースコードだとzipのみ対応かと思われるので
改造が必要かもしれません。
http://hsp.tv/play/pforum.php?mode=pastwch&num=41729

7zipのダウンロード先(使うのはインストール後にProgram Filesに入る.dllだけかと)
https://sevenzip.osdn.jp
7zipのライセンス(LGPL)
http://www.gnu.org/copyleft/lesser.ja.html



K.R

リンク

2015/11/24(Tue) 19:46:10|NO.73243

TCP?プロトコル?gz?
ますます分からなくなりましたw
えと、
テキストデータの保存場所から読み取ってそこに特定の言葉があった場合返信する?
うーん
やるだけやってみますが
技術的に無理かな…



ONION software Copyright 1997-2025(c) All rights reserved.