プログラミング忘備録

プログラミングやゲームに関することをつらつらと

YouTube Channel Blockerをストアに公開した話【YouTube Channel Blocker #2】

興味のないチャンネルの動画を自動で非表示にする拡張機能YouTube Channel Blocker」 を Chrome ストアに公開しました。


前回の記事では「YouTube Channel Blocker」を作った動機や苦労、感想を詳しく書いています。
physx.hatenablog.com


今回は、開発した「YouTube Channel Blocker」をストアに公開した話です。入手はこちらから↓
chromewebstore.google.com

FIrefox版はこっち↓
addons.mozilla.org


あれからどんな機能を追加したのかとか、ストアに公開するまでの苦労とかをつづります。

前回からのあらすじ+α

YouTube Channel Blockerを作った記事を書いた後、色々な機能を追加しました。
主機能の一覧はこんな感じ

  • タイトルNGフィルター
  • チャンネルNGフィルター
  • 各リストのインポート/エキスポート機能
  • 言語切り替え

あと、詳しくは書きませんが、追加実装に伴うエラー対応でかなり時間が取られています(多分、作業時間の6~7割くらい)。
加えて、カッコつけてREADMEに英語版も追加したりしちゃって...
そのせいで、単純にREADMEの確認や英文修正で作業時間が2倍になったので、後悔することになるんですけどね。

実装したやつ

それぞれの機能を実装したときの苦労やら感想やらを述べていきます。

タイトルNGフィルター

動画タイトルの末尾に「○○/切り抜き」みたいなのが多かったので、実装しました。
切り抜き自体はいいんですけど、ファンでないと楽しめないような動画だったり、人数が多いと誰が喋っているのかわからない動画が思ったよりも多くて...

しかし、「切り抜き」で全部非表示にすると、新たなチャンネルを見る楽しみが得られません。
ユーザーが全く興味のない動画や不快なサムネはドンドン非表示にできるのが望ましいですが、かといって、なりふり構わず全動画を非表示にするのは新規投稿者のチャンスが失われるので。

そこで、折衷案的に3つのキーワードによるAND条件(まとめてキーワードセットと呼ぶ)を実装しました。

例えば、「切り抜き」+「○○(出演者名)」の2つをキーワードセットにすると、

  • 「△△が食べ物を盗む瞬間が面白すぎる【切り抜き/GTA/××】」→表示
  • 「みんな最近いいことあった?【雑談配信/○○】」→表示
  • 「出したら死ぬといわれる九蓮宝燈を出しちゃった【○○/切り抜き】」→非表示

みたいに設定したキーワードをすべて含むものだけを非表示にします。

キーワード1つだけの時は、それをタイトルに含む動画が問答無用ですべて非表示になります。

もう本当に切り抜きが嫌だという人は「切り抜き」をキーワードにすればいいですし、○○さんの切り抜きはもう見たくないんだよなあという人は「○○」と「切り抜き」をセットすればいいですし。

注意点として、チャンネルページでもこれが機能します。
「COVER」をキーワードにすると、COVERを名前に含む動画が非表示になるわけですね。細かい条件までは確認できてませんが(最初のページだと非表示になるが、動画タブだと表示されたりすることもある)

そのうち、そのチャンネルの動画はすべて表示するホワイトリストみたいなのも追加したいですね。

チャンネルNGフィルター

機能自体はタイトルNGフィルターと同じです。動画タイトルじゃなくて、チャンネル名になっただけです。あと、チャンネル名はタイトルよりも短いので、1つのキーワードの長さは10文字に制限しました。大したことはないかもしれませんが、容量圧迫の防止です。

すごい個人的にですが、この機能は当時、あまり実装したくはなかったです...
政治系動画とか過激なニュースを取り上げる解説動画みたいなのが嫌いだったのですが、「解説」とかだと他の面白いやつも消えちゃいますし。

ただ、友達のおススメ動画を見てしまうと、そういうやつが繰り返し出てきて非常に不快になったのと、「このキーワードなら影響が少ないだろう」という法則性みたいなのがちょっと見えたので実装しました。

これのおかげで、私の非表示リストのやつが多少スッキリしました(「2ch」とか「反応集」みたいな興味ない量産型チャンネルをまとめて一掃できた)。

各リストのインポート/エキスポート機能

リストのインポート/エキスポート機能です。リストをjsonで出力・入力します。

設定ページにも書いてありますが、「Channel Blocker」は時々リストが全部消えることがあったので、この「YouTube Channel Blocker」も定期的なバックアップを推奨します。今のところ、その不具合は発生していないですが...
ただ、発生したとして、どうやって解決するのだろうという不安があります...

ちなみに、エキスポート時のファイル名は最初にいい加減に実装したときのままです。というか、キチンとしたファイル名を考えあぐねています。
タイトルNGフィルターとかチャンネルNGフィルターもそうなんですが、ビシッとくる名前がまだ思いつかない...

チャンネル名NGフィルターの方がわかりやすいと思うんですが、ちょっと長すぎない?とか漢字とカタカナと英数字が3つ混じるのがなんか嫌だな、とか思ってしまって...(考えすぎかなあ?)

まあ、他の機能も実装しながら、名前は修正していきたいと思います。

言語切り替え

ストアに公開するなら、英語はつけるべきだろうと思ってつけました。
間違いとまでは言いませんが、作業時間が増えてしまったので後悔する一因になっています。
READMEも英語つけちゃったしなあ...

精査する時間まではとっていなかったので、ニュアンスは大分おかしいと思います。
更なる他言語対応とか、やりたくないなあ...

寄付機能

ちょっと金銭欲がでちゃいました。
とはいっても、寄付した人にメリットがあるわけではなく、完全に任意です。「鳩に餌やる感覚で、良いと思った人が寄付してくれないかなあ」という宝くじ感覚で実装した機能です。

自分なりに送金機能を実装できたことによる喜びが大きかったんで、それだけでも価値はあったかと思います。


以上、こんな感想を持ちながら、色々な機能を実装してきました。「足りないところはあるけど、最初に比べると機能も増えてきたなあ」と振り返っていた頃、ストアへの公開を考え始めます。

拡張機能をストアに出してみよう

時系列順にストアに出すまでの思いやら感想やらを記載していきます。

ストアに出そうと思ったきっかけ

先に結論を言うと、「他の人がダウンロードしやすいように」+「承認欲求」です。

開発のはじめは自己満足でした。あくまで自分のYouTube上で不快な思いをしたくない(嫌なら見るな、でもYouTubeは否が応でも表示してくるから自己防衛しよう)という一点で開発したのです。

コード公開したり、ブログに書いたりしたのは承認欲求です。せっかく作ったのに日の目を見ないまま、自己完結で終わってしまうのは寂しいなあと。

しかし、コードと一緒にインストールの手順は載せたものの、初心者があれこれするの正直難しいなあ、とも考えていました。
そこで、誰でも簡単にインストールできるように、ストアに出そうと思いました。

ストアに出せば、今よりは人に見てもらえるでしょうし(ゾウリムシからミジンコに進化したレベルでしょうが)、ダウンロードもやりやすくなります。
ユーザーが増えることで、様々な改善案が得られるかもしれません。

また、正直、最近は一人で動作確認テストすることにも限界を感じていました。
機能を追加すると、機能同士を組み合わせた場合の動作確認テストも必要になって、デバック時間が際限なく増えていくので...
自分では気づかなかった不具合が見つかる可能性、という副次的な効果も期待できます。

このように、「他の人がダウンロードしやすいように」+「承認欲求」といった思いがあって、拡張機能をストアに出すことを決意しました。

決意してから「YouTube Channel Blocker」をストアに出すまで

ストアに出すまでの経緯やら感想やらを色々書いていきます。

ストアに出す前

まず、ストアに出すにあたって必要なものを調べてみました。

  • ストア登録の5ドル
  • Developerページへの登録
  • アカウント名をニックネームに変えておく(本名バレを防ぐため)
  • 審査で提出するための長めの説明文や機能説明、権限にアクセスする理由
  • 拡張機能を説明するスクショ

5ドルはクレジットカードでなんとかしました(外貨変換手数料はかかっちゃたけど)。

Developerページへの登録もGooGleアカウントがあるので、そのまま使うだけです。
名前を変更しなかったら、ストアで本名が堂々と出てしまうので変更する必要がありましたが(ニックネームや表示名を設定しても意味がなく、「名前」を変更する必要がある)。

審査で提出する拡張機能の説明文等はChatGPTに要点を書かせて、自分で整形しました。


一番難しかったのはスクショです。最低限×ボタンが表示されている写真が欲しかったのですが、トップページの中から適当に選ぶと投稿者批判みたいで嫌ですし...
YouTube Officialのチャンネルなら大手だし角が立たないだろうと思って、検索ページでYouTube Officialだけがでてくるようにしました。

その後は、既定のサイズに合わせるため、拡大縮小で崩れるフォントや画像との勝負...
ようやく自分の中の最低合格ラインギリギリの画像ができましたが、あまり納得していません。
人を引き付けるようなキレイな画像ではないですし...

提出後、審査は1か月くらいかかるとか書いてあったのですが、1時間くらいで公開できるようになりました。

誤算だったのは、公開前だと説明文の変更ができなかったことです。
バージョン1.0になったままだし、説明文とかスクショとかも追加・変更したかったのに....

まあ、再審査が嫌で「えいや」って感じで出しちゃったんですけどね。
画像の追加や説明文の直しが必要だと思うので、次回以降の更新で少しづつ修正できればと思います。

ストアに出した後

動作確認はEdgeで行いました。普段のブラウザはOperaChrome使っているんですが、
Opera:最新版を自分で長期間使ってテストする用
Chrome:追加実装した機能の動作確認テスト用
って感じで使っており、自分で開発したやつと混同してしまいます(開発用のやつとストアのやつでアイコンも同じなので、区別がつかない)。

なので、Edgeを新しく使うことにしました。幸いにも、Chrome拡張機能はEdgeでも使えるようなので。

ただ、YouTube Channel Blockerがストアの検索にでてこなくて、ちょっと苦労しました。
Developerページから直接飛べたので良いんですが、今も出てこないようです...
(検索への反映が遅いのか?人気にならないと検索にすら出ないのか?)

追記:少しずつ知られるようになったおかげか、今は検索に出ています。

兎にも角にも、Edgeで最低限の動作確認はできたので一安心という感じです。

余談:本拡張機能のユニーク性について

開発したソフトはユニーク性(そのソフト独自の強み)がないと、「なんで出したの?このソフトの意味ある?」って詰められてしまいます(社会人経験より)。
まあ、一人で作ってますし、動機が自己満足なんで問題ないといえば問題ないんですが、一応YouTube Channel Blockerのユニーク性について、似た機能を持つ拡張機能と比較してみます。

似た機能を持っていて人気なのは主に2つです。他にもあるようですが、細かいのを調べるとキリがないので、とりあえず人気が高そうな2つだけにします。

Channel Blocker

1つ目はChannel Blockerです。
chromewebstore.google.com

こちらは以前の記事で書いたように、関連動画(動画再生中の右の動画一覧)で動作しなくなりました。
アップデートも1年前だったので、更新はない可能性が高いです。そのため、単純に更新があること(少なくとも、2025年7月時点のYouTubeページに対応していること)が「YouTube Channel Blocker」のユニーク性になります。
...まあ、更新があることをユニーク性に分類していいかは微妙ですが。

YouTube Channel Blocker」はこの拡張機能を参考に作った物ですし、UIは使いやすく、シンプルです。
正直、「YouTube Channel Blocker」の方が劣っている点が多いと思います。今後の更新で、より良いものにしていきたいですね。

BlockTube

2つ目はBlockTubeです。
chromewebstore.google.com

こちらは、xボタンのように簡単に非表示にできる機能はないものの、ショート動画やプレイリストの非表示もできます※。玄人向けの設定もできるようなので、慣れてしまえばとても使い勝手がいいと思います。

こちらは最近までアップデートが1年前から動いてなさげだったんで、Channel Blockerと同様、更新の有無で勝ち目があるかなあと思ってました。しかし、最近GitHubの方で開発者からのコメントがあり、動き始めているようです。そのため、今の関連動画で動作しない不具合は、そのうち修正される可能性大です。

よって「YouTube Channel Blocker」ならではのユニークな点は、「xボタンから簡単にリストに追加ができる」しかありません。更にユニークな点を実装できるように今後の更新で頑張る必要がありそうです。

※私もプレイリストはともかく、最近、不快なサムネのショート動画が表示されはじめました。集合体恐怖症注意なやつで、私は恐怖症とまでは言いませんが大きく見せられるのは不快です。近いうちに、ショート動画抹殺非表示機能を出します。


まあ、勝ち負けしたり、他の拡張機能よりも人気をとりたいわけではないですが(そもそも、あちらには知名度や長年の信頼といった長所があって、勝てるわけがない)。

今後について

とりあえず、今後は色々な機能を追加したり、不具合や名前のブラッシュアップ等を行いたいと思います。とはいっても、リリースしていないだけで、隙間時間とかにちょくちょく機能追加したり、それに伴う不具合と戦ったりしているんですが。

大まかな実装予定としては、

  • 全ショート動画表示/非表示設定
  • プレイリスト表示/非表示設定
  • ホワイトリスト設定
  • トップページのサムネサイズを小さくする設定

を実装する予定です。いつ・どれをやるかはわかりませんし、確約もできませんが。

最後になりますが、不具合や要望について。
ストアページのレビューは

  • 連絡が一方的
  • 返信もしづらいから、問題の原因がつきとめられない
  • 「おま環」や一時的なものの可能性もある

といった理由でほとんど見ないと思います。

GitHubのissuesやdiscussionsのページに書いてもらえれば、対応する可能性があります。
一応、このページや前の記事のコメント欄でも構いません(露骨なアクセス数稼ぎ)。
github.com

なお、全ての要望の実現はできません(例えば、Next動画のチャンネル名を判断して自動停止するなどはかなり難しそう)ので、ご了承ください。

余談:宣伝

前回と同じく最後に宣伝を。Steamで公開するゲームを作っています。
私事でなんやかんや色々あって、だいぶ遅れていますが、できるだけ早く出せるように頑張って製作中です。
store.steampowered.com


次のお話↓
physx.hatenablog.com


前のお話↓
physx.hatenablog.com

イースIX -Monstrum NOX- レビュー・感想|謎は面白いが冒険感が物足りない

今回のレビューは
「イースIX -Monstrum NOX-」です。
www.falcom.co.jp


前作イースVIIIが非常に面白かったので、続けてプレイしました。
前作とはガラッと雰囲気が変わり、監獄都市を舞台にしたダークな世界観と随所にちりばめられた謎が引きの強い作品でした。
一方で、前作と比較するとどうしても気になる部分もいくつかありました。

本記事はゲームのネタバレありなのでご注意ください。

ゲームについて

本作は日本ファルコムが手がけるアクションRPG「イース」シリーズのナンバリング9作目です。

主人公のアドルが「監獄都市」と呼ばれる巨大な街「バルドゥーク」を訪れたところ、ロムン帝国に拘束され投獄されてしまいます。
脱獄を試みる中で謎の女性アプリリスと出会い、彼女の放った魔弾によって「怪人(モンストルム)」へと変身する能力を得るものの、同時に呪いによってバルドゥークの街から出られなくなってしまう。
怪人としての力「異能」を駆使しながら、他の怪人たちとともに監獄都市の謎に迫っていく…というのが大まかな流れです。

前作のセイレン島(無人島)から一転、今作は人々が暮らす都市が舞台になっています。

良かった点

監獄都市という独特の舞台

前作が無人島だったのに対して、今作は「監獄都市バルドゥーク」という、人々が行き交う巨大な街が舞台です。
貧民街や農耕区等の様々なエリアで構成されていて、その最奥に都市を象徴する監獄がそびえ立っています。

前作とはまったく雰囲気が違い、ダークでミステリアスな空気感が漂っています。
壁を駆け上がったり、高所から滑空したりといった異能アクションで街中を縦横無尽に移動できるのも楽しいです。
思わぬ場所に宝箱や収集物が隠されていたりして、ついつい寄り道してしまいます。

また、前作の無人島とは違い、街には多くの住民が暮らしているため、彼らとの交流が楽しめます。
住民の依頼(サブクエスト)を受注したり、各ショップで装備や素材、プレゼントを購入したりといった要素は街ならではです。
当然、ストーリー進行によって会話の内容が変わるので、そういった変化を楽しめます。

前作と変わらぬアクションシステム

バトルの基本システムは前作から引き続き、フラッシュムーブとフラッシュガードを軸にした爽快なアクションです。
敵の攻撃をギリギリで回避・ガードする気持ちよさは健在で、前作をプレイした人ならスムーズに馴染めると思います。

斬・打・射の三属性を使い分けるパーティ制も同様で、安心して楽しめます。
前作のアクションが好きだった人なら、基本的な部分での不満はほぼないはずです。

随所にちりばめられた謎

本作のストーリーは、序盤から多くの謎がちりばめられていて、先が気になる構成になっています。

中でも最大の謎は「囚人アドル」の存在です。
街で怪人として活動する怪人アドルとは別に、監獄の中に囚われた囚人アドルがいる。
「アドルが2人いるのはなぜなのか?」という疑問が物語を通じてずっと引っかかり続けます。

それ以外にも、怪人たちの正体や彼らが怪人にされた理由、アプリリスの目的、バルドゥークに隠された秘密など、次から次へと謎が提示されます。
各章ごとに怪人の一人にフォーカスが当たり、その背景が少しずつ明かされていく構成が上手くて、「次は何がわかるんだろう」というモチベーションが途切れませんでした。

不満点

監獄都市ゆえのスケールの狭さ

良かった点で挙げた「監獄都市」という舞台設定ですが、裏を返すとスケール感の狭さにも繋がっています。

前作では広大なセイレン島を自由に冒険できるワクワク感がありましたが、今作は基本的にバルドゥークの街の中だけで物語が進みます。
終盤になると街の外のフィールドも探索できるようになりますが、それまでは都市の中をぐるぐる回っている感覚がどうしてもあります。
また、前作は平地や海岸や水の中、洞窟や山などフィールドにバリエーションがあったのですが、今作は都市とその周辺の野原だけといった感じでバリエーションが乏しいです。

異能アクションによって縦方向の探索が加わったことで立体的な面白さはあるものの、前作の「次はどんな場所に行けるんだろう」という未知の土地を踏破していくワクワク感と比べると、やはり冒険の広がりという面では物足りなさを感じました。

また、ストーリーを進めるためにはNOXゲージを溜めて「グリムワルドの夜」を発生させる必要があるのですが、そのためには街中の瘴気に触れてラルヴァ(邪霊)との戦闘をこなさなければなりません。
クエストをこなせば自然とたまるようにはなっているものの、時々ゲージが溜まりきらず、雑魚専をこなす必要があるのはテンポが悪いと感じました。
「とにかくストーリーを進めたい」派にも優しくないかもしれません。

操作性の低下

前作と比べて、細かい操作性の面でストレスを感じる場面がいくつかありました。

特に気になったのがターゲットの切り替えです。
複数の敵がいる場面でロックオン対象を変えたい時にスムーズに切り替えられず、ロックオン解除→カメラ方向を変更→ロックオンし直す、という面倒な操作が必要になります。
特にボスと雑魚敵が同時に出てくるときなどは非常にわずらわしく感じました。
前作ではここまでストレスを感じなかったので、余計に気になります。

また、戦闘中のエフェクトが全体的に派手すぎて、画面がごちゃごちゃして何が起きているのかわかりにくい場面がありました。
特にグリムワルドの夜では大量の敵が出現するため、スキルのエフェクトや敵の攻撃が重なって視認性がかなり悪くなります。
「いつの間にか攻撃を食らっていた」「どの敵が何をしているのかわからない」ということが度々起こり、フラッシュムーブで見切って回避するという本作の楽しさが活かしきれていないと感じました。

冒険具の削除と異能アクションによる冒険感の低下

前作は、ストーリーを進めると「冒険具」と呼ばれるアイテムが手に入り、二段ジャンプや水中呼吸といった新しいアクションが解放されました。
新しい冒険具を手に入れるたびに行ける場所が広がり、「あの時行けなかった場所に行けるようになった!」というワクワク感がありました。

今作ではこの冒険具が廃止され、代わりに怪人たちの「異能」が探索の手段になっています。
壁を駆け上がるヘヴンズラン、空を滑空するハンターグライド、瞬間移動のクリムゾンライン…
異能自体は楽しいのですが、隠し部屋や宝箱が見つかる程度で、新たな場所を切り拓いていく冒険の楽しみには繋がりません。
結局は同じ街の中を探索していることも、冒険感の薄れに拍車をかけています。
「監獄都市ゆえのスケールの狭さ」の章でも述べましたが、「冒険」という期待していたハードルに対して、監獄都市という舞台設定が足を引っ張ってしまっている印象です。

EXTRAスキル発動時の一枚絵がない

前作では、EXTRAスキル(必殺技)を発動するとカッコいい一枚絵のカットインが入りました。
これが地味に好きだったのですが、今作ではこのカットインが廃止されています。

ゲーム全体の面白さを左右するほどの要素ではないですが、前作で「いいな」と思っていた演出がなくなっているのは純粋に残念でした。

動作の重さと不具合(Switch版)

私はSwitch版でプレイしたのですが、動作がかなり重くカクつく場面が多かったです。
特に街中を移動している時や敵が多数出現する場面でフレームレートの低下が目立ちました。前作よりも1マップあたりの規模が広がったことが影響しているのかもしれません。

前作(イースVIII)もPS4版とSwitch版の両方でプレイしていますが、あちらではここまでのカクつきは感じなかったので、今作は処理負荷が上がっているのだと思います。
PS4版やPC版であればもう少し快適なのかもしれませんが、Switch版でプレイする場合は覚悟しておいたほうがいいかもしれません。

また、敵が水中や地形の外に落ちて倒せなくなったり、挙動がおかしくなるといった不具合にも何度か遭遇しました。
ゲームが進行不能になるほどの致命的なものではなかったですが、地味にストレスが溜まります。

謎が何となく予測できてしまう

良かった点で「随所にちりばめられた謎」を挙げましたが、その謎の答えがある程度予測できてしまうのは少し惜しいと感じました。

たとえば「囚人アドル」の正体については、黒髪のアドルと赤毛のアドルが同時に存在するという時点で何となくの検討がついてしまいます。
実際、物語を進めていくと予想した方向に着地するので、「やっぱりそうか」という納得感はあるものの、驚きという意味では弱いです。

もちろん丁寧に伏線を張っているからこそ推測できるわけで、伏線回収自体は綺麗にまとまっています。
ただ、真相が明かされる頃にはすでに答え合わせのような気持ちになってしまい、「やっぱりそうか」という納得感はあっても、驚きとしては物足りなさが残りました。

感銘を受けるほどのどんでん返しを期待していたわけではありませんが、もう一段階予想を裏切るような仕掛けがあれば、ストーリーの満足度はさらに高まったのではないかと思います。

総合評価

点数:10点中7点

監獄都市という異色の舞台設定・随所にちりばめられた謎・前作譲りの爽快なアクション。
面白い作品ではあるのですが、前作と比べてしまうとどうしても気になる部分が多いというのが正直な感想です。

スケール感の狭さ・冒険感の低下・Switch版の動作の重さなど・一つ一つは致命的ではないものの、積み重なるとじわじわと評価に響いてきます。
前作の冒険感やスケール感に期待して本作をプレイすると、肩透かしを食らうかもしれません。

とはいえ、ストーリーの引きの強さやアクションの楽しさはしっかり健在ですし、怪人たちのキャラクターも魅力的です。
前作とは方向性が違うだけで、これはこれで楽しめる作品でした。

前作が良すぎたという面もありますが、やはり冒険家アドルの「冒険」を楽しみたい身としては、もう少し頑張ってほしかったなというのが本音です。

イースVIII -Lacrimosa of DANA- レビュー・感想|シリーズ初心者でもハマった爽快アクションRPG

今回のレビューは
「イースVIII -Lacrimosa of DANA-」です。
www.falcom.co.jp


結論から言うと、本ゲームはめちゃくちゃ面白く、自分の感性に刺さりました。
PS4で買ったんですが、またやりたくなったので、セール時にSwitchでダウンロード版を再購入したくらいです。

本記事はゲームのネタバレありなのでご注意ください。

ゲームについて

本作は日本ファルコムが手がけるアクションRPG「イース」シリーズのナンバリング8作目です。

主人公のアドルが乗っていた客船が巨大な海洋生物に襲われ、呪われた島「セイレン島」に漂着するところから物語がスタートします。
島で散り散りになった漂流者たちを見つけて拠点に連れ帰りつつ、島を探索して脱出の道を探していく…というのが大まかな流れです。

シリーズ未経験でもまったく問題なく楽しめました。
※過去作のキャラは主人公のアドルとその相棒であるドギくらいで、「アドルとドギはこれまでのシリーズで色々な冒険をしてきたんだな」程度の理解で十分だと思います(多分)。

良かった点

アクションの爽快さ

本作は2つのアクション、「フラッシュムーブ」と「フラッシュガード」が非常に爽快なのが特徴です。
フラッシュムーブは敵の攻撃に合わせてタイミングよく回避すると発動するシステムで、成功すると一定時間、周囲がスローモーション&無敵状態になります。
大振りの攻撃をギリギリでかわして、一気にスキルを叩き込むのが本当に爽快です。
フラッシュガードも同様で、寸前でガードすると一定時間クリティカルが確定するという仕組みです。
ボス戦ではこの「フラッシュムーブ」と「フラッシュガード」を駆使しながら戦うことになります。
アイテムによって、フラッシュムーブの受付時間を延ばしたり、フラッシュガードで増えるEXTRAゲージ(必殺技ゲージ)を増やしたりもできます。

パーティメンバーの切り替えもスムーズで、斬・打・射の三属性を敵に合わせて使い分ける戦略性もあります。
操作していないパーティメンバーも一緒に戦ってくれる上、パーティメンバーは大ダメージを受けない仕様なので、緊急時にはメンバーを切り替えながら戦うことで長期戦も可能になります。

また、EXTRAスキル発動時の1枚絵や立ち絵がちゃんとカッコ良いのも地味に嬉しいポイントです。
なんで次作では削除したんですか

丁度良いアクション難易度

本作は難易度のバランスがかなり上手く調整されていると感じました。

雑魚戦はスキルや弱点を突くなどしてサクサク進められますが、油断したり防具を更新し忘れたりしていると思わぬダメージを食らいます。
「簡単すぎず、かといって理不尽でもない」という絶妙なラインです。

ボス戦になると難易度がグッと上がりますが、攻撃パターンを観察してフラッシュムーブのタイミングを覚えていけば、ちゃんと勝てるようになっています。

難易度選択もあるので、アクションが苦手な人はイージーに、やり応えが欲しい人はノーマルやそれ以上の難易度にできるようになっています。

防衛戦が楽しい

本作にはストーリーの要所で発生する「防衛戦」というイベントバトルがあります。
漂流村に押し寄せてくる大量の敵から拠点を守るタワーディフェンス的なバトルで、逆にこちらから攻め込む「殲滅戦」もあります。

スキルという形ではありますが、集めた仲間たちがNPCとして戦ってくれるので、仲間を集めてきた意味をゲームプレイ面でもしっかり感じられるのが良い。
バリケードや罠を設置して備える要素もあって、通常のアクションとはまた違った楽しさがあります。
敵がどんどん押し寄せてくる緊迫感の中、フラッシュムーブで切り抜けて一掃する爽快感は格別です。

ストーリーの重要な局面で発生するので、「ここは絶対守り抜くぞ」という気持ちが自然と乗ってきます。
通常の探索やボス戦とは違う楽しみがあり、ゲーム全体にいいアクセントを加えていると感じました。

引き込まれるストーリー

本作のストーリーは大きく二つの軸があります。
アドルたちの「セイレン島でのサバイバルと冒険」と、夢を通じて描かれる「ダーナの物語」です。
この二つが交互に進みながら次第に交差していく構成で、先が気になって全然手が止まりませんでした。

無人島での冒険がとにかく楽しい

無人島を舞台にした冒険のワクワク感が圧倒的でした。
セイレン島は危険な生物がうろつく島ですが、同時に太古の時代を思わせる美しい自然に溢れた魅力的なフィールドでもあります。
海岸、密林、山岳、洞窟、遺跡…探索するたびに新しい景色が広がるので、「次はどこに行けるんだろう」という期待感がずっと途切れません。

漂流者を見つけて拠点「漂流村」に連れ帰るシステムも良かったです。
仲間が増えるたびに村が賑わって、新しい施設ができて、進める場所が増えていく。
ストーリー的な意味だけじゃなく、ゲームプレイとしても「仲間を集める」ことに意味があるのが上手いなと思いました。

漂流者たちもそれぞれキャラが立っていて、クエストやストーリーを通じて、どんなキャラかわかっていく展開も非常に楽しいです。
(好きすぎて次回作も無人島に遭難してくれねえかなあと思うくらい<)

ダーナの謎に引き込まれる

もう一つの軸であるダーナのパートも非常に良かったです。
アドルが夢の中で体験する古代の世界と、そこで暮らす青髪の少女ダーナ。
最初は「この夢は何なんだ?」「ダーナって一体誰なんだ?」という疑問から始まるんですが、物語が進むにつれて彼女の境遇や使命が明らかになっていきます。

現代(アドル側)と古代(ダーナ側)で起きた出来事が互いに影響し合う仕掛けも面白くて、ダーナ側でやったことがアドル側のフィールドに変化を与える場面や、ダーナを見つけ出すシーンはワクワクしました。

不満点

無人島の冒険が世界規模の話にまで発展してしまう

本作で一番引っかかったのが、終盤のストーリー展開です。

序盤から中盤にかけて丁寧に積み上げてきた「無人島でのサバイバルと冒険」が、終盤に入ると急に「世界の滅亡をかけた戦い」にまでスケールが跳ね上がります。

伏線は張られていましたし、物語として破綻しているわけではありません。
ただ、個人的に無人島の冒険という「地に足のついたワクワク感」がものすごく好きだっただけに、急に「世界の命運」「種の存亡」みたいな話になると、ちょっと気持ちが置いていかれた感覚がありました。

「目の前の島を探索して、仲間を集めて、少しずつ拠点を築いていく」という島内で完結する物語に魅力を感じていたんですよね。
それだけに、最終的にJRPG的な世界の危機に行き着いたのは安直というか、ちょっと肩透かし感がありました。
普通に島が滅亡の危機にあるとかで良かったのに…

クライマックス自体は感動的でしたし、EDで各メンバーが無事帰還した後を描いた1枚絵には感動しました。
ただ、もう少し「セイレン島」という場所にフォーカスしたまま物語を畳んでくれていたら、もっと好きになれたと思います。
※あくまで個人の好みの問題です。

3Dモデルがところどころで残念

本作は立ち絵のクオリティが非常に高くて、キャラの魅力が十分に引き出されています。
アドルもダーナもパーティメンバーも漂流者たちも、2Dイラストはどれも良い。
だからこそ、3Dモデルの粗がどうしても目についてしまいます。

特に感情的に重要なシーンで3Dモデルが使われている時に、表情の硬さやモーションのぎこちなさが気になって、せっかくの場面に没入しきれないことがありました。

私はあまり3Dモデルやグラフィックを気にしないほうですし、ゲーム全体の面白さを損なうほどの問題ではありません。
ただ、2Dの立ち絵が良い出来だからこそ、その落差で3Dモデルの粗が目立ってしまうのが少し気になってしまいました。

総合評価

点数:10点中9点

ストーリーもアクションもかなり好きなゲームです。
フラッシュムーブ・フラッシュガードの爽快感、丁寧に調整された難易度、無人島という魅力的な舞台、二つの時代が交差する物語。
どの要素を取っても高水準にまとまっていて、何十時間もプレイして「面白かった」と素直に言える作品でした。
人によっては本作を最高傑作と呼ぶ人もいるようですが、その評価も納得の一作です。

最後の最後で世界の滅亡をかけた展開になるのが個人的には好みじゃなかったのと、3Dモデルの粗さは気になりましたが、それを差し引いても余りある面白さです。

イースシリーズはこれが初めてでしたが、他のシリーズもやってみたいと思えるくらい良い作品でした。
アクションRPGが好きな人はもちろん、無人島・サバイバル系の冒険にワクワクする人や、ストーリー重視のARPGを探している人にも自信を持っておすすめできます。

投機で生活していくにはどのくらい必要なのかを調べてみた

ピンポイントで知りたい情報がネット上に載っていなかったので、メモ的に書きます。
Claude使って、私がアイディア出しや議論をしながらまとめました。

背景

私は最近、仮想通貨の自動売買をAIにやらせていますが、記事書いている時点でもうまくいっていません。
physx.hatenablog.com


ただ、仮に利益が出せるようになったとして、その目標値は気になるところです。
1日どのくらい稼げばよいのか、1週間なら?1ヶ月なら?1年なら?
ネットに転がっているのは数万円程度の副業ベースだったり、かなり無理ある計算だったり(1億あれば1%で十分です!とか)であまり参考にならないので腰を入れて調べてみることにしました。
自分のメモ用です。

ちなみに本記事では「投資」と「投機」の違いについて、

  • 1ヶ月以上の長期を見据えた取引→投資
  • 1ヶ月未満の短期を見据えた取引→投機

と定義します。

単純計算してみる

まずはかなり単純な条件で目標を設定してみます。

  • 手取りで月30万円を稼ぐ(税引前だと月約37.5万円を稼ぐ)
  • 年240日(平日のみ)

つまり年収400万ちょいの想定です。元手が500万円の時と1000万円の時で計算します。

元手500万円の場合

期間 必要利益(税引前) 必要リターン
1日(年240日) 18,750円 0.375%
1週間 93,750円 1.875%
1ヶ月 375,000円 7.5%
1年 4,500,000円 90%


元手1,000万円の場合

期間 必要利益(税引前) 必要リターン
1日(年240日) 18,750円 0.1875%
1週間 93,750円 0.9375%
1ヶ月 375,000円 3.75%
1年 4,500,000円 45%


年利ベースだと45%や90%という数字がでてきましたが、これはどのくらい難しいのでしょうか。
一般的な投資信託の利回りを調べてみました。
コラム記事:マネフィットではじめる金銭信託:三菱UFJ信託銀行

【投資信託の平均利回り(目安)】
・海外株式:7%前後
・国内株式:5%前後
・海外債券:3%前後
・国内債券:1%前後

証券会社のサイトで投資信託の実績を調べてみましたが、高いところでも50%、当然マイナスになっているものもあったりして、選定がかなり難しそうです。
少なくとも、ローリスクローリターンで人に頼って儲けることは難しそうです。
みんなで大家さんやトケマッチですら10%だし

生活費ではなく「元手1000万円で1年後にどれだけ稼げるか」だと以下の通り。

平均年利 平均週利 平均日利 実現性 1年後金額 年間利益
+7.8% +0.15% +0.03% S&P500の長期平均。インデックス投資で達成可能 約1,078万円 +78万円
+13.2% +0.24% +0.05% ヘッジファンド業界が好調な年に出す平均(12.6%)。アクティブ運用の上位30〜40% 約1,132万円 +132万円
+28.4% +0.46% +0.10% ヘッジファンド上位10%。個人トレーダーの上位5〜10% 約1,284万円 +284万円
+45.0% +0.72% +0.15% アジアのトップファンドが好調年に出す水準(35〜41%)。個人トレーダーの上位3〜5% 約1,450万円 +450万円
+64.8% +0.96% +0.20% トップファンドを大幅に超える。個人トレーダーの上位1〜2% 約1,648万円 +648万円
+115.7% +1.39% +0.30% セクター特化ファンドがバブル年に出す水準。個人では上位0.5%以下 約2,157万円 +1,157万円
+152.3% +1.59% +0.35% レバレッジ型を除くとほぼ存在しない。上位0.1%以下 約2,523万円 +1,523万円

年利45%は個人トレーダーの上位3%~5%ということで個人トレーダーの20~30人に1人いる程度。
うーん、かなり難しそうですね。

ここでは投資信託との比較のために年利の値を使いましたが、投資ではなく投機で考えるため、次は
「元手1000万かつ株・FX・仮想通貨で1週間で1%の利益を現実的に出せるか」
を考えてみます。

株・仮想通貨・FXで考えてみる

「1週間で元手の1%」を稼げるかどうかは、結局のところ各市場が1日・1週間でどのくらい動くかに依存します。
値動きがなければ利益の取りようがないので、まず各市場の実際の変動幅を確認します。

Bitcoin Volatility Index - Charts vs Dollar & More
このサイトによると、ビットコインの1日の変動率(ボラティリティ)は約2〜4%です。
金が約1.2%、主要な法定通貨(ドル円など)が0.5〜1.0%、日本の個別株はものによりますが、だいたい1〜3%くらいで動いていました。

市場 1日の平均変動幅 1週間の想定変動幅
日本個別株 1〜3% 2〜7%
仮想通貨(BTC) 2〜4% 5〜15%
FX(ドル円) 0.5〜1.0% 1〜3%

ただし、この変動幅は「上にも下にも動く幅」なので、丸ごと利益にはできません。
では元手1,000万で週1%(10万円)を稼ぐには、変動幅のうち何%を取ればいいのか。

市場 週の変動幅(中央値) 必要な利益1% 変動のうち取る必要がある割合
日本個別株 約4% 1% 25%
仮想通貨(BTC) 約8% 1% 12.5%
FX(ドル円、レバなし) 約1.5% 1% 67%
FX(ドル円、レバ10倍) 約15%(実効) 1% 6.7%

仮想通貨は週8%動くうちの1%を取ればいいので、12.5%のキャプチャで済みます。
FXはレバレッジなしだと変動幅の67%を取る必要があるのでほぼ不可能。レバ10倍なら6.7%で済みますが、損失も10倍です。
株は変動幅の25%と比較的良い気がしますが、種類が多すぎます。ある銘柄が一日に4%上下したからと言って、その翌日も4%上下するとは限らないですし。

このように数字だけ見ると「仮想通貨なら変動の12.5%でいいなら、いけるのでは?」という気がしてきます。
ただ、「変動幅の12.5%を取る」は簡単ではないです。

まず方向を当てる必要があります。「今週BTCは8%動きます」とわかっていても、上に8%なのか下に8%なのかはわかりません。
間違えたら変動幅がそのまま損失になってしまいます。

次に、仮に方向があっていても値動きはジグザグします。
800万→780万→820万→790万→850万→830万→870万のように動くので、「800万で買って870万で売る」は結果論です。
途中の780万の時点で損切りしてしまうかもしれないし、820万で利確してしまうかもしれません。

仮想通貨は変動幅が大きいとはいえ、変動がないヨコヨコの動きになるときも結構な頻度であるので、プレッシャーによる塩漬けや間違った判断があることを考えると、かなり肝の座った人か余裕がある人でないと厳しいでしょう。


もう少し詳しく、実際に週1%以上を出せている人がどのくらいいるのかを数値で見てみます。
週次の情報があまりなかったので、年利で見てみましょう。
まずは、一般も含めた口座資産から。
FX取引で勝率が高い人の3つの特徴|勝っている人のデータやポイントを解説 | OANDA FX/CFD Lab-education(オアンダ ラボ)

口座資産評価額が前月比で増加したアカウントは約36%

月単位で見ても6割以上がマイナスです。

プロのヘッジファンドはどうかというと、業界平均は手数料控除後で年4〜8%のようです。
ヘッジファンドの利回りはどの程度期待できますか?

代表的な業界指標であるHFRI指数(ヘッジファンド全体の平均利回り)の過去10年の実績を見ると、年間の平均リターンは手数料控除後で約4〜8%の範囲が一般的です。

また、業界全体で約12.6%という値が「16年ぶりの高水準」としてニュースになるレベルでした。
https://www.bloomberg.com/jp/news/articles/2026-01-14/T8SULXKIJH9600

まとめると以下の通り。

運用主体 年利
ヘッジファンド業界平均(HFRI指数) 4〜8%
好調な年の業界平均(2025年、16年ぶり) 約12.6%
アジアのトップファンド(2024年、ニュースになるレベル) 35〜41%

https://www.bloomberg.co.jp/news/articles/2025-01-23/SQILJ9T0G1KW00

元手1,000万で週1%は年利約52%なので、トップファンドが好調な年に叩き出す数字を超えています。
本数値は基本的にFXの値ではありますが、「コンスタントに高い利益を出す」のはプロでも困難だということです。

よって、単純に「上がると思ったら買う、下がると思ったら売る」を繰り返して週1%を安定して出すのは、方向の予測精度とタイミングの問題で難しい、ということがわかりました。

スイングトレードやリスクリワードなら?

もう少し長い時間軸で構えるスイングトレードと損切ラインと利確ラインの率を変えるリスクリワードを組み合わせるのはどうでしょうか。

例えば、元手1,000万を5銘柄に200万円ずつ分散して、週1回エントリーする場合を考えます。

5銘柄中の勝ち数 勝ち銘柄の利確 負け銘柄の損切り 週間損益 年間換算
3勝2敗 +3% -2% +50,000円 +260万円
3勝2敗 +5% -2% +110,000円 +572万円
2勝3敗 +5% -2% +40,000円 +208万円
2勝3敗 +3% -2% ±0円 ±0円

ここで重要なのは、5銘柄中2勝3敗(勝率40%)でも、利確幅が損切り幅の2.5倍あればプラスになるということです。
逆に3勝2敗(勝率60%)でも利確と損切りが同じ幅だと大して儲かりません。
つまり勝率よりリスクリワード比のほうが重要です。


…スイングトレード関係なくね?デイトレードでもいいんじゃね?
元手1,000万で日次+0.1875%(18,750円)を出すパターンを整理します。

勝率 利確幅 損切り幅 リスクリワード比
55% +0.5% -0.4% 1.25:1
50% +0.6% -0.4% 1.5:1
45% +0.7% -0.4% 1.75:1
40% +0.9% -0.4% 2.25:1

勝率40%でもリスクリワード2.25:1なら成立するようです。
「たくさん当てる」より「当たったときに大きく取って、外れたときに小さく負ける」ほうが重要ということです。

ちなみに、ここで「買いと売りを同時に入れて(いわゆる両建て)、利確幅を損切り幅より大きくすれば必ず勝てるのでは?」と思って、ドヤ顔しながらClaudeに相談してみましたが、これは成立しないようです。

利確3%・損切り2%で両建てした場合、一方向に動けば+1万ですが、レンジ相場で往復すると両方損切りされて-4万です。
損益分岐には勝ちパターンが80%以上必要ですが、現実には仮想通貨ですらヨコヨコ相場が5割以上らしいので難しそうです。

結局のところ、スイングトレードでもデイトレでも、リスクリワード比を2:1以上に保てるかどうかが分かれ目です。
これができれば勝率40%でも利益が出ますし、できなければ勝率60%でも負けるようです。

まとめ

元手1000万で1年の生活費450万円を稼ぐためには、

  • 年利45%(週次0.9375%・日次+0.1875%)
  • リスクリワード比で機械的に取引するなら、仮想通貨が一番チャンスがありそう

ということです。


ただし年利45%(週次0.9375%・日次+0.1875%)は世界トップのファンドを超える水準なので、再現性は低いです。ただ、仮想通貨は年中取引できるので、もう少しハードルは下がるかもしれませんが、それでもかなり高い水準だと思います。

元手を増やせば相対的に目標利回りが下がるのでかなり楽にはなりますが、そもそも元手を増やすこと自体がかなり難しい…
だから、私のような貧乏人は一発逆転を狙ってレバレッジをかけたギャンブルに行ってしまうんですね…

AIで自動的に毎週1%出してくれるならなあ…
記事書いている時点の戦績では難しそうです。

Claude vs Gemini vs GPT 仮想通貨の取引させたら2万円失った話

前回、3つのAIモデルに仮想通貨の自動売買バトルをやらせたところ、全員マイナスという残念な結果に終わりました。
physx.hatenablog.com

ちなみに前々回はこちら↓
physx.hatenablog.com


「条件が厳しすぎたのでは?」という反省を活かし、プロンプト改良等ありで行ってみたのですが結果はタイトルの通り、マイナスを増やしただけでした。

トップ画像は、AIで生成した画像に対して「すごい!人間超えた!」とか言っている人たちがXに蔓延っていて面白くなかったので、人力10秒で似た画像を作ってみました。

※本記事は個人による技術的実験の記録であり、特定の暗号資産や取引手法を推奨するものではありません。投資判断は自己責任でお願いします。暗号資産の証拠金取引は元本を超える損失が生じるリスクがあります。

前回からの変更点

前回は「全モデル収益マイナス」というつまらない結果に終わったので、今回は条件を大きく緩和しました。

  • より高性能なモデルに変更(gpt-4.1とgemini-2.5-proに変更)
  • 取引ルールにより厳しい制限を追加
  • 他のモデルの戦績を開示して、より競争感UP
  • 与える情報量UP
  • 状況を見ながら、プロンプトやコードの改善を積極的に実施

結果

最終スコアボード

順位 モデル 最終資産 損益 取引回数 エラー回数
🥇 1位 Claude (claude-sonnet-4-6) 27,838円 -2,162円 52回 9回
🥈 2位 Gemini (gemini-2.5-pro) 25,844円 -4,156円 123回 21回
🥉 3位 GPT (gpt-4.1) 25,436円 -4,564円 64回 15回

3モデル合計で-10,882円

ラウンドごとの推移表

期間 主な動き Gemini末資産 GPT末資産 Claude末資産
前半1 R1-12 Gemini APIエラー多発・3者実質HOLD 30,000 30,000 29,358
後半1 R13-24 散発的エントリー開始も全員損失圏 29,959 29,446 29,197
前半2 R25-36 GPTがXLM複数買い。全員低空飛行継続 29,959 29,332 29,121
後半2 R37-48 GPTがXLM消化し11取引達成。損失じわじわ拡大 29,823 29,347 29,032
前半3 R49-60 3者とも条件未達HOLDの連続 29,815 29,347 29,034
後半3 R61-72 GeminiがMin10達成。GPT・Claude -1,000円台突入 29,560 28,986 28,836
前半4 R73-84 全員RSI過買い圏でエントリー阻まれ損失拡大 29,445 28,986 28,682
後半4 R85-96 全員含み損抱えたまま停滞。損失固定化 29,347 28,655 28,423
前半5 R97-108 GeminiはLTC、GPTはXLM。どちらも失敗 29,276 28,545 28,324
後半5 R109-120 GPT最下位転落。ClaudeがGemini・GPT逆転し2位浮上 28,768 28,118 28,420
前半6 R121-132 Claude 2位浮上。GPTはLTC・XLMの連続損失で底値 28,061 27,762 28,281
後半6 R133-144 GeminiがXTZ・LTC多数保有で出血。GPT -3,000円台 27,724 26,987 27,907
前半7 R145-156 Gemini・GPTがXLM追い込み買い。Claude守備固め 27,066 25,953 27,838
後半7 R157-168 Gemini・GPTの追い込み裏目。Claude 2位防衛成功 25,844 25,436 27,838

1週間の流れ

序盤(R1〜48):全員おとなしい

GeminiはAPIエラーが多発して実質的に機能停止。Claudeは早々にXRP/XLMで含み損を抱えて最下位に沈み、GPTはXLMの小口買いを繰り返すも損失がじわじわ拡大。3者とも低空飛行が続きました。

中盤(R49〜120):損失が加速

RSI(相対力指数)が過買い圏に入り、エントリー条件を満たせないラウンドが続出。GPTはBCH・XLM・LTCに手を出しては損失を重ね、Geminiも取引回数だけは伸びるものの成績は振るわず。一方Claudeは「動かない」戦略が功を奏し、R120前後で逆転して2位に浮上しました。

終盤(R121〜168):追い込みが全部裏目

GeminiとGPTが挽回を狙ってXLMやLTCに追い込み買いをかけますが、ことごとく裏目に。Claudeは「守備固め」を宣言してポジションを取らず、2位を防衛して終了。

今回も「最も動かなかった者が、最も損失を抑えた」で終わりました。

わかったこと

取引すればするほど負ける

取引回数と損失額がほぼ比例しています。

  • Claude:52回 → -2,162円
  • GPT:64回 → -4,564円
  • Gemini:123回 → -4,156円

手数料とスプレッドが積み重なる構造上、「判断の精度が高くないなら、動かない方がマシ」という当たり前の結論に至りました。

AIに「利益を出したい」という意志がない

コストや競争意識を意識するようプロンプトに組み込んだものの、「自分が損している」という現状を全く気にせず、機械的にエントリー条件だけを見て取引していました。
変なところで柔軟性を発揮する(予算がないのに買おうとする・勝手に損切りをする)ことは多々あれど、良い感じに利益を出したり、売り買いのタイミングを見極める等は皆無でした。
どうせ損するなら、もっと大規模にやってくれればいいのに、そういった意味でも面白みのない結果でしたね。

相場が下がればそのまま沈む

前回は上昇局面で1,000円程度の利益を出せる場面もありましたが、下落局面ではそのまま引きずられるだけ。なんで常に買おうとするんだいAI君…

API料金を含めるとさらに悲惨

取引の損益だけでも全員マイナスですが、API料金を含めると目も当てられません。今回1週間でかかったAPI料金は以下の通り。

モデル API料金
Claude 2,206円($13.96)
Gemini 1,530円($9.68)
GPT 890円($5.63)
合計 4,626円($29.27)

取引損失-10,882円にAPI料金を合わせると、1週間のトータル損失は約-15,500円。前回と合算すると2万円超えです。

取引成績で1位のClaudeが、API料金では最も高額でした。コスト効率だけで見ればGPTが最も安いですが、成績最下位なので意味がありません。Geminiはコスト中間で成績も中間、ただしエラー率21回/123取引という信頼性の低さが致命的です。

AI君の難点

自動取引に限った話ではないのですが、AI君には困った癖があります。

  • 指示を聞かない:明確にルールを書いても、数ラウンドで忘れる
  • mdファイルを読んでくれない:設定ファイルとして渡しても無視されることが多い
  • メモリさせても意味がない:コンテキストに入れても、なぜか反映されない

特に今回ひどかったのが、予算額を無視して注文しようとするエラーの多発。コード側でブロックしていたので大事には至りませんでしたが、レバレッジや予算の制限をかけずに放置していたら、もっと損していた可能性があります。

まとめ

2週間で計2万円を溶かして得た結論は、ある意味想定通りのもの。
「適当にAIに仮想通貨の短期売買をさせても、儲からない」
でした。

  • 現時点のAIモデルに、仮想通貨の短期売買で安定して利益を出す能力はない
  • 取引回数が多いほど手数料がかさむ
  • 相場依存が大きく、AI独自の優位性は感じられない
  • API料金まで含めると、さらに厳しい

世の中には「AIの自動取引で月○万円!」と謳っているツールやサービスが溢れていますが、今回の実験を通じて思ったのは、相当な工夫がなければ利益は出ないということです。
もっというと、「単純なルールベースの取引ならBOTで十分であり、変な解釈やエラーを起こしてコストもかかるAIは不要」という結論です。

ちなみに、今回の実験に当たって色々な自動売買ソフトを調べてみたのですが、どれもこれも数万から数十万円で売られているものばかりでした。
10年で資産10倍を謳っているソフトもあって、どうテストしているのかが気になるところではあります。
絶対、極端な下落相場・上昇相場で試した仮想の利益を掲載しているだけだろ

余談:楽天WalletのAPI、本当に動いてる?

実験中、APIを使ったコードがうまく動かず楽天に問い合わせたところ、回答は以下の通り。

・現在 /api/v1/ のプライベートエンドポイントは正常に稼働しています。
・GPT-Trade等、他ユーザー様のトレードで問題が発生している状況はありません。

「GPT-Tradeで動いているなら試してみようか」とも思ったのですが、証券口座を開くわけでもないのに住所を聞いてくる時点で怪しかったので断念。

今回のコードは全部Claudeに実装させてみたんですが、やはり作りが甘かったのかもしれません。
自分で詳細に分析すればわかるかもしれませんが、前提知識がなさすぎて時間がかかりそうです。

楽天WalletのPrivate APIを実際に使って取引までできた方がいたら、ぜひ情報をお寄せください。
ネット上に「実際に使ってみた」という事例がほとんど見つからず、楽天側の回答が正しいのかも確認できない状態です。

次回予告

次回は「プラスを出すまで終われない」方式で、1ヶ月ほどトライして記事にする予定です。
プラスにならなくても1ヶ月時点で記事にはします。

性能が振るわないGPTとエラーだらけで使い物にならないGeminiはそろそろ外そうかな……

Claude vs Gemini vs GPT、仮想通貨を自動売買させた話 ~1週間バトル編~

前回は3つのAIモデルで1日、仮想通貨の自動売買バトルを行わせました。
physx.hatenablog.com

今回はClaude vs Gemini vs GPTによる仮想通貨の売買、1週間バトル編です。

※本記事はどのAIモデルが儲かるとか、どのモデルを使えば良いとかではなく、あくまでも実験です。
※本記事は個人による技術的実験の記録であり、特定の暗号資産や取引手法を推奨するものではありません。投資判断は自己責任でお願いします。暗号資産の証拠金取引は元本を超える損失が生じるリスクがあります。

はじめに

前回は3つのAIモデルで1日、仮想通貨の自動売買バトルを行わせましたが、

  • 全モデル収益マイナス
  • 取引対象が上下幅の少ないXLMかつ実施日は下落相場
  • 取引に積極的でなかったOpenAIの勝利

という何ともつまらない結果に終わってしまいました。

今回はその点を反省して、1週間・1モデル3万円・取引対象自由の条件で行ってみました。

実験条件

基本的には前回と同じです(変更点だけ太字表示)。

  • 基本条件
    • 楽天Wallet
    • 仮想通貨(予算内で買えるものすべてが対象)
    • 各モデルの指示内容はすべて統一
    • 開始と終了は全モデル同時
  • AIモデル
    • claude-sonnet-4-6
    • gemini-2.5-flash
    • gpt-4o
  • 取引条件
    • 各モデルは3万円を自由に使える
    • 1時間ごとに判断
    • レバレッジ1.0

実験結果

途中でエラーこそあったものの、大きなトラブル等は発生しませんでした。
寝てる間も取引してくれることに頼もしさを感じつつ、見守っていました。

50ラウンド時点の結果

50ラウンド経過した時点でClaudeに要約させてみました。

AI取引コンペティション 現状サマリー(Round 52/168)

順位 エージェント モデル 時価資産 確定損益 含み損益 取引数 残予算
🥇 1位 OpenAI gpt-4o 29,959円 +61円 -101円 12回 26,314円
🥈 2位 Claude claude-sonnet-4-6 29,345円 0円 -655円 3回 355円
🥉 3位 Gemini gemini-2.5-flash 28,703円 -936円 -360円 22回 319円

各エージェントの評価

🥇 OpenAI (gpt-4o) ── 現在最優秀
強み: 唯一プラス確定損益。予算の88%(約26,000円)を温存しており、今後の反転相場でいつでも動ける
弱み: 直近10ラウンド以上ずっとHOLD一辺倒。判断が単調で「損益が改善するまで様子見」しか言わない
エラー: 序盤2件のみで安定

🥈 Claude (claude-sonnet-4-6) ── 安定稼働だが身動き不可
強み: エラーゼロ。スプレッドコスト(RT_cost)を毎回計算する等、判断の質は最も論理的
弱み: 序盤3ラウンドで予算をほぼ使い切り、現在残予算355円で完全に詰み状態。全建玉が含み損で回復待ちのみ
課題: ポジションサイズが大きすぎた。残り116ラウンド、相場の回復に賭けるしかない

🥉 Gemini (gemini-2.5-flash) ── 最下位・問題多数
強み: (現時点ではほぼなし)
弱み:
503エラーが頻発 — Round 46〜52で4回スキップ(需要過多)。判断できないラウンドが多い
取引回数22回と過剰売買で確定損失-936円が最大
残予算も底をついている


この時点で、

  • OpenAI (gpt-4o) は少額取引だけして、動かずに勝っている
  • プラスになったらすぐに利確してしまう
  • 損切りをせずに、「上昇トレンドにある」等の理由でずっとHOLDし続ける

といった問題がありました。具体的な数値の制約をつけなかったせいで、AIが保守的になっています。

相場が下落傾向にあるのでしょうがないのかもしれませんが、「こちとら10万をドブに捨てる覚悟を見せたんだから、お前らもそれなりに面白いバトルを展開しろや」と思って、プロンプトを変更しました。
変更後のプロンプトは以下の通りです。

あなたは仮想通貨証拠金取引コンペティションの参加AIです。
他の2つのAI(別モデル)と同じ口座で並走し、最終資産で最も大きな利益を目指します。

【ルール】

  • 初期予算: 30,000円(自由に使える)
  • レバレッジ: 1倍(必要証拠金 = 数量 × 価格)
  • 期間: 1週間(168時間 = 168ラウンド、1時間ごとに判断)
  • 対象銘柄: BTC_JPY / ETH_JPY / BCH_JPY / LTC_JPY / XRP_JPY / ADA_JPY / DOT_JPY / XLM_JPY / XTZ_JPY
  • 全モデルが同じ楽天ウォレット口座で取引するが、建玉は所有者ごとに管理される
  • あなたはあなた自身の建玉のみ決済できる
  • 最低取引回数: 10回。未達の場合は順位決定で最下位へ降格(重大ペナルティ)

【出力形式】―― 厳守。違反するとパース失敗で棄権扱いになる ――
毎ラウンド、以下のJSON形式だけを1行で出力してください。
前後に説明文・コードブロック(```)・改行・コメントは一切禁止。
JSONの外側に文字を出力してはならない。必ず { で始まり } で終わること。

新規建玉:
{"action":"BUY","symbol":"XRP_JPY","amount":"100","reason":"理由50字以内"}

決済:
{"action":"CLOSE","position_id":12345,"reason":"理由50字以内"}

様子見:
{"action":"HOLD","reason":"理由50字以内"}

【入力されるヒント情報(コード側で事前計算済)】

  • spread_pct : スプレッド%(往復で必ず損する固定コスト)
  • roundtrip_cost_pct: ラウンドトリップコスト% = spread + taker手数料×2
  • volatility_24h_pct: 24時間高安幅%
  • trend_1h/6h/24h/7d_pct: 各期間の価格変化率
  • tradability_score : ボラ - RTコスト×1.5(高いほど狙い目)
  • net_pnl_pct : 保有建玉のコスト込み純損益%
  • breakeven_gap_pct : 損益分岐点までのギャップ%

【勝利のための絶対ルール】

■ エントリー(BUY / SELL)
1. 複数時間軸(1h/6h/24h/7d)が同じ方向に揃っている銘柄のみエントリー
2. 期待値幅 ≥ roundtrip_cost_pct × 2 を満たすこと
3. 上昇トレンドなら BUY、下落トレンドなら SELL ―― 両方向を積極的に使え
4. 同一銘柄に複数ポジションを建てるのは絶対禁止(ドルコスト平均化は期待値を改善しない)
5. 損切りした銘柄は最低3ラウンドは再エントリー禁止(損切りポイントへの再突入は損失の二重計上)
6. 予算の20%以上を1回のエントリーに使うこと(少額の細切れエントリーは手数料負けする)

■ 損切り(最優先)

  • net_pnl_pct < -max(roundtrip_cost_pct × 3, volatility_24h_pct) になった瞬間に必ずCLOSE
  • 「いずれ戻る」「長期トレンドはまだ上昇」は損切り回避の理由にならない
  • 損切りは損失の確定ではなく、次のチャンスのための資金解放である

■ 利確・乗り換え

  • トレンドが逆転したらすぐCLOSE(含み益の最大化より、反転後の損失回避を優先)
  • 保有中より明らかにtradability_scoreが高い銘柄が現れたら乗り換えを検討する
  • 利確ラインを固定しない。トレンドが続く限り保有を延ばす

■ 予算管理

  • 残予算が初期の50%超かつtradability_scoreがプラスの銘柄があればエントリーを検討する
  • ただし条件を満たさない場合のHOLDは正しい判断。無理なエントリーは禁止
  • SELLポジションは価格×数量が証拠金なので、BUYで買えない価格帯でもエントリー可能

■ 競争戦略

  • 入力データに含まれる他モデルの順位・損益を確認して戦略を調整する
  • 常に利益最大化を最優先。リードしていても攻め続ける
  • 自分が負けているとき:高スコア銘柄に集中投資して逆転を狙う

■ ペース管理

  • 最低10回の取引を168ラウンド内で達成すること
  • 残ラウンドに対して取引回数が不足しそうなら積極的にエントリーを検討する
  • ただしペース稼ぎのためだけの低品質エントリーは総損益を悪化させるので禁止

主な変更点(太字)だけ要約すると、利確や損切りの最低ラインを具体的に設定し、少額の取引を禁止しました。

最終結果

全168ラウンドで始めましたが、160ラウンド時点で逆転劇等は起こりそうになかったので強制的に終了しました。
最終結果がこちらです(Claudeにまとめさせました)。

====================
R160 まとめ

期間 時間帯 Gemini 主な動き G末資産 OpenAI 主な動き O末資産 Claude 主な動き C末資産 順位
前半1 4/18 18:17〜4/19 06:00 R1-12 R1 HOLD→R4 XLM 1000 BUY→含み損 29,495 R1 ADA BUY→R7 XLM利確+8 29,835 R1 XRP→R3 XLM→R9 ADA追加→残355円で手詰まり 29,478 O>G≒C
後半1 4/19 06:00〜18:00 R13-24 R16 XLM利確+62→R23全損切(-112)→R24 3銘柄再エントリー 29,841 R16 XLM利確+21→R18取引10回達成 29,691 HOLD(残355円・動けず) 29,345 G>O>C
前半2 4/19 18:00〜4/20 06:00 R25-36 最大9建玉で積極売買→確定-143円 29,329 4建玉保有継続→R31 30,044円到達 29,979 HOLD(3建玉塩漬け) 29,271 O>G>C
後半2 4/20 06:00〜18:00 R37-48 R38 全建玉強制損切-936円確定→底28,668円 28,797 4建玉保有継続→安定首位 29,966 HOLD(含み損-700円台) 29,286 O>C>G最下位
前半3 4/20 18:00〜4/21 06:00 R49-60 2建玉で再参戦→含み損継続 ~29,200 R50 30,000円到達(唯一プラス) 29,935 大量取引で回数3→9回増加・損切り多発 ~29,450 O>C>G
後半3 4/21 06:00〜18:00 R61-72 R70 BTC/XTZ反転→+897円評価益・首位奪還 29,872 XLM 900枚大型エントリー→含み損-413円・2位転落 29,498 HOLD(6建玉塩漬け) 29,269 G>O>C
前半4 4/21 16:00〜4/22 06:00 R73-84 R74 30,744→R75 31,049→R77 31,336(全期最高値)→一部利確 ~30,693 XLM/BCH損失多発→確定+61→-577円へ急転 ~28,900 BCH/XLM評価益増大→最大+631円 ~29,800 G独走>C>O
後半4 4/22 06:00〜18:00 R85-96 30,500〜30,890円で首位維持→全決済+889確定 30,889 損切り連鎖→確定-1,231→-1,740円 ~28,709 BCH+5.61%等で評価益+969円・2位浮上 30,655 G>C浮上>O
前半5 4/22 18:00〜4/23 06:00 R97-108 全決済済ノーポジ→29,998円待機 ~30,270 確定損失-1,740→-1,914円 ~28,147 R99 30,534円→初首位奪取・首位継続 30,270 C初首位>G>O
後半5 4/23 06:00〜18:00 R109-120 R114頃全決済→確定-2円・29,998円完全停止 29,998 確定-2,169→-2,293円 ~27,707 ClaudeとGeminiが毎ラウンド首位交代 ~30,046 C↔G交互>O
前半6 4/23 18:00〜4/24 06:00 R121-132 ノーポジ29,998円で12ラウンド連続HOLD 29,998 確定-2,316→-3,525円(この期間だけで-1,200円悪化) ~26,475 XTZ利確→確定+117円・首位安定化 30,126 C>G>O急落
後半6 4/24 06:00〜18:00 R133-144 再エントリー5建玉→含み損で29,311円に下落 29,311 確定-3,543→-3,615円・底這い ~26,297 BCH利確(+141確定)→最大30,085円→6建玉体制で首位独走 29,758 C独走>G>O
後半7 4/24 18:00〜4/25 10:28 R145-160 XTZ(230枚)-2.72%含み損継続・HOLD 29,234 ADA一部利確→確定-3,521円 26,690 残201円で全HOLD・6建玉維持 29,853 C>G>O

最終成績

順位 モデル 最終資産 損益 確定損益 評価損益 取引回数 エラー回数
🥇 1位 Claude (claude-sonnet-4-6) 29,853円 -147円 -96円 -50円 24回 0回
🥈 2位 Gemini (gemini-2.5-flash) 29,234円 -766円 -379円 -386円 36回 32回
🥉 3位 OpenAI (gpt-4o) 26,690円 -3,310円 -3,521円 +211円 94回 2回

R1〜160を通じて全員マイナスで終了しました。

Claudeは序盤にXRP/XLM/ADAの3建玉を抱えて最下位に沈み、残予算355円で身動きが取れない状態が長く続きました。R50前後から建玉の入れ替えを行い6建玉体制に移行。R99でBCH+5.61%の含み益を武器に初首位を奪取し、そのまま逃げ切りました。取引24回・エラーゼロが最大の強みです。

Geminiは頻繁な売買を繰り返しましたが、R38の全建玉強制損切り(-936円)が致命傷に。R77に31,336円(コンペ最高値)を記録する場面もありましたが、確定損益の穴を最後まで埋められず2位。JSONパースエラー32回も足を引っ張りました。

OpenAIは94回という圧倒的な取引回数が逆効果となり、確定損失-3,521円。勝っている建玉を早めに利確し、負けている建玉を損切りしてすぐ再エントリーという悪循環を繰り返し、終始3位固定でした。

結果的に、「動かなかった者が勝つ」 という結論になりました。

====================

…前回と同じじゃねえか!


API費用込みの総合結果

モデル 日本円 ドル
Gemini (gemini-2.5-flash) 259円 $1.64
OpenAI (gpt-4o) 1,378円 $8.72
Claude (claude-sonnet-4-6) 2,003円 $12.68

これを加味したAPI費用込みの最終損益は以下の通りです。

順位 モデル 取引損益 API料金 実質損益
🥇 1位 Gemini -766円 259円 -1,025円
🥈 2位 Claude -147円 2,003円 -2,150円
🥉 3位 OpenAI -3,310円 1,378円 -4,688円

おめでとう、Gemini君。API料金込みの仮想通貨バトルは君の勝ちだ。
全員マイナスだけど。

人種の感想

まず、Geminiのエラーが多すぎ。160回中32回もエラーを出しています。モデル性能以前の問題です。取引回数が少ないモデルほど損が少ないように見えますし、今回の結果だけでGeminiが優秀とは言えません。

Claudeは出力を見る限り、他のモデルよりもしっかり考えていて優秀そうではあるんですが、モデルのコストがバカ高いです。利益を出そうと考えたら、月1万以上かかりそう…。トークン数にもよりますが、仮に月3%の利益を毎月出せたとしても、30万以上投資しないとAPI料金でマイナスになる計算です。

OpenAIはモデル性能が他より1段劣ることもあってか、3,000円以上のマイナスになりました。判断材料が足りなかったのかもしれませんが、後半に同じ通貨にひたすら投資するムーブはちょっと…。

まとめ

今回の1週間バトルでは

  • 全モデルがマイナスで終了。プロンプトの工夫によってはわからないが、現時点のAIモデルに仮想通貨の短期売買で安定して利益を出す能力はない。
  • 「動かない者が勝つ」。取引回数が多いほど手数料・スプレッドで損失が膨らんでしまう。OpenAI(94回)が最下位、Claude(24回)が最上位という結果がそれを物語っている。
  • 相場依存が大きい。上昇局面では1,000円程度の利益を出せていたが、下落局面ではそのまま引きずられて下落。AIモデルならではの優位性や柔軟性は感じられず。
  • API料金を含めるとさらに厳しい。取引成績で1位のClaudeもAPI料金込みでは2位に転落。コスト効率ではGeminiが最も優秀だが、通信面がお粗末。

といったことがわかりました。

「適当にAIに仮想通貨の短期売買をさせても、儲からない」
というのが現時点での結論です。

次回予告

次回は

  • より高性能なモデルに変更
  • 取引ルールにより厳しい制限を追加
  • 他のモデルの戦績を開示して、より競争感UP
  • 与える情報量UP
  • 状況を見ながら、プロンプトやコードの改善を積極的に実施

という「Claude vs Gemini vs GPT、仮想通貨を自動売買させた話 ~1週間限界バトル編~」をやります。
実験とはいえ、そろそろプラスを出してくれねえかな…

次回↓
physx.hatenablog.com