Pokemon Champions日記1:ポケモンバトルしたい

はじめに ポケモンバトル特化のゲーム「Pokemon Champions」がSwitchで販売開始したのでさっそく遊んでみました。 私はポケモンシリーズはいくつかクリアしていますが、対人戦のポケモンバトルは初心者です。 あと最近のポケモンはプレイしていないので知らないポケモンも多いです。 そんな状態で分からないことは多いのですが、基本プレイは無料とのことなのでひとまず遊んでみようかと思います。 下記がPokemon Championsの公式サイトのリンクです。 Pokemon Champions公式サイト ちなみに現在はNintendo Switchだけですが、いずれはスマホアプリ版が出るっぽいです。 ポケモンスカウト Pokemon Championsではポケモンスカウト機能があって、 いわゆるソシャゲのガチャ的な仕組みでポケモンを手に入れることができます。 他のポケモン作品からポケモンを持ってこれる機能もありますが、 私は他にポケモンをプレイしていないので今のところスカウト機能で手に入れたポケモンだけでバトルしています。 下記画像に写っている赤髪が私で、 おじさんはなぜか私をジムの後継ぎにしてくれたコーディさん、 お姉さんはポケモンをスカウトできる牧場みたいなところのルッコラさんです。 スカウトでは1度に10匹のポケモンが提示されて、その中から1匹のポケモンを選択して手に入れます。 ポケモンの能力値やワザ構成、性格、特性などはランダムっぽいですが、 あとでトレーニング機能で自由に変更可能です。 ボックス内のポケモン 自分のポケモンはいつものボックスで確認できます。 現状の私のポケモンは下記画像のようになっています。 スカウトだけでもたくさんのポケモンを手に入れられるので、 今のところは他のポケモン作品を持っていなくても特に困っていないです。 最近のポケモンは詳しくないですが、 ソウブレイズが強くてカッコいいので気に入っています。 カイリューは早期ログインキャンペーンみたいなものでもらいました。 バンギラスやガルーラ、カビゴンのような耐久力のあるポケモンが安心感があって結構好きです。 あとメガシンカも使いどころをまだ理解できていませんが楽しいです。 ポケモンのトレーニング ポケモンの能力値とワザ構成、性格、特性はトレーニングで自由に変更できます。 ただし、VPというポイントかトレーニングチケットが必要なので注意が必要です。 スターターセットみたいなものを購入するとチケットがたくさんもらえます。 ランクバトル Pokemon Championsにはバトルが何種類かありますが、 メインはランクバトル(シングルとダブルがある)かと思います。 ランダムでユーザ同士でバトルして勝つとどんどんランクが上がっていきます。 最初はビギナーでチュートリアルをクリアするとモンスターボール級に上がります。 そしてモンスターボール級で何回か勝ち進むとスーパーボール級になります。 ↑服もポイントで購入できます。赤色系で統一するファッションを目指しています。 現在のランクは下記の通りです。 ビギナー級 モンスターボール級 スーパーボール級 ハイパーボール級 マスターボール級 チャンピオン級 また、一ヶ月程度のシーズンごとにランクが決まるようです。 私も一番上を目指して楽しんでいきたいと思います。 あと今はシングルバトルをメインに遊んでいますが、 ダブルバトルも遊んでみたいですね。 おわりに 今回はPokemon Championsでポケモンバトルをやってみました。 初心者なりにポケモンバトルも楽しめていて、 好きなポケモンでバトルに勝てた時の達成感も凄いので、 引き続き上を目指して勝ち進んでいきたいと思います。 それでは、また。

作成日: 2026年4月11日 · Yusuke Kato

GARAGE ガラージュのプレイ記録

はじめに 概要 かつて30万円ほどで取引されていた幻のゲームであり、 現在はリマスター版が販売されて遊びやすくなった「GARAGE ガラージュ」をプレイしました。 クリア記念に記録を残しておきます。 下記がSteamの販売ページのリンクです。 Steam - GARAGE ガラージュ 注意 本記事はネタバレありなので未プレイの方はご注意ください。 プレイのきっかけ 私がガラージュを知ったのは元にじさんじライバーの黛灰さんの配信でした。 25万円で購入したという話を見かけて気になって配信を見始めましたが、 ゲームの雰囲気が素敵すぎてビックリしたことを何となく覚えています。 さすがに25万円は払えませんが、 リマスター版は2000円くらいなのでようやく自分でもプレイできます。 プレイ記録 ゲームの始まり 主人公らしき人間が怪しげな機械に入っているムービーから始まります。 この怪しげな機械が「ガラージュ」で、Steamの販売ページでは「精神治療装置」と説明されています。 つまり、主人公は精神に何かしら異常があってガラージュで治療を受けているということです。 ガラージュによって精神世界に入り込むとゲーム開始です。 この世界においては、 鏡に映っているのが主人公で、 最初のムービーの人間とは異なる姿になっています。 アドベンチャーゲームらしく、 画面上をクリックしてアイテムを取得したり、 ギミックを操作したり、 主人公を移動させたりできます。 部屋から外に出ると木造の建物と移動用のレールが敷かれた世界が広がっています。 主人公を含めた人のような機械たちはこのレールを使って移動しています。 あと本ゲームでは釣り要素がかなり凝っていて、かつ、重要になっています。金策にも利用できます。 その釣りでエサとして使用する蟹などを「ビンドウ」という道具を仕掛けて捕獲できます。 ちなみに釣るのは魚ではなく蛙です。 ...

作成日: 2026年4月8日 · Yusuke Kato

ブログをHugoで作り替えたので記事追加をテストしてみる

はじめに Geminiに聞きながらこのブログをHugoで作り替えました。 デザインも整えてもらって綺麗になりました。 今回は新しく記事を追加するテストを行います。 見出しテスト1 この見出しが1です。 見出し2.1 この見出しは2です。 見出し2.2 この見出しは2です。 見出し3.1 この見出しは3です。 見出し3.2 この見出しは3です。 見出し4.1 この見出しは4です。 見出し4.2 この見出しは4です。 箇条書きテスト テスト1 テスト2 テスト2 テスト1 テスト2 テスト3 テスト4 URLテスト YusukeKatoBlog 画像テスト YouTubeテスト おわりに 運用しやすくなってありがたいですね。 それでは、また。

作成日: 2026年3月5日 · Yusuke Kato

Meta Quest 2でVRChatをプレイしてみる

はじめに 友達からMetaのQuest 2を借りました。 VRChatはずっとデスクトップモードで遊んでいたので、 VRモードでも遊んでみたいと思います。 プレイ環境 使用するVR機器はMeta Quest 2です。 PCのスペックは下記の通りです。 OS:Windows 11 Home CPU:Intel i5-11400H メモリ:16GB グラボ:GeForce RTX 3050 Laptop GPU PCは有線LANで接続しているのでネットワークはそれなりに安定しています。 PCとQuest 2はUSBケーブル(純正ではない)で接続します。 ※先に書いておくと、このPCのスペックではグラフィック設定を最低にしてようやく遊べるくらいの性能のようです。 これからPCを購入する場合は参考にしないようにお気をつけください。 必要なもの 必要なソフトウェアは下記の通りです。 Meta Horizon Link:Quest 2をPCと接続するためのソフトです SteamVR:SteamのゲームをVR機器で遊ぶためのソフトです VRChat:Steam版VRChatを使用します 必要なアカウントは下記の通りです。 Metaアカウント:Quest 2とMeta Horizon Linkでログインするために使用します Steamアカウント:SteamでStemVRとVRChatをインストールするために使用します VRChatアカウント:VRChatをプレイするために使用します Meta Horizon Linkのインストール Meta公式サイトからMeta Horizon Linkをインストールします。 インストールできたらMetaアカウントでログインします。 アカウントがない場合は新規作成します。 Meta公式サイト SteamでSteamVRとVRChatをインストール SteamでSteamVRとVRChatをインストールします。 Steamをインストールしていない場合は公式サイトからインストールします。 Steamアカウントが無い場合は新規作成します。 Steam公式サイト Quest 2のセットアップ Quest 2を起動してMetaアカウントでログインします。 初回起動時はネットワーク設定をしたり、周囲環境を認識したりなど、セットアップが必要です。 PCとQuest 2の接続 PCとQuest 2の接続します。 まず、PC側でMeta Horizon Linkを起動しておきます。 一つ目の接続方法はUSBケーブルでPCとQuest 2を接続する方法です。 USBケーブルを接続するとMeta Horizon Linkで自動的に接続設定が始まると思います。 注意点としてUSB 3.0以上に対応しているケーブルを使わないと通信速度が足りないことがあるっぽいです。 ...

作成日: 2026年2月15日 · Yusuke Kato

シェル芸オンラインジャッジ:シェル芸実行用コンテナを常に待機させておく

はじめに シェル芸オンラインジャッジというウェブサイトを開発しています。 今回は実行結果が返ってくるまでに10秒程度かかっている問題に対応しました。 元々はシェル芸を受け付けてからDockerコンテナを起動していたのですが、 コンテナ起動に時間がかかっているようだったので、 シェル芸実行用コンテナを常に待機させておくことで応答速度の向上を目指しました。 シェル芸オンラインジャッジ 修正方法について シェル芸オンラインジャッジのソースコードを丸ごとGeminiに渡して、 具体的に修正方法を教えてもらっています。 コンテナ管理スクリプトを作成 GeminiにDockerコンテナを管理するスクリプトを書いてもらいました。 少し修正していますが、基本的にはGeminiの出力そのままです。 行数がそこそこあるのでリンクだけ貼ります。 backend/scripts/container_manager.py このスクリプトでは常にN個(現状N=3)のDockerコンテナを待機させる処理が書いてあります。 シェル芸実行用コンテナは使い捨てなので、 一度シェル芸を実行したコンテナは破棄して、 その分を補充します。 シェル芸実行スクリプトの修正 元々はシェル芸実行スクリプトでコンテナを作成していましたが、 container_manager.pyから起動中のコンテナを受け取って、 そのコンテナでユーザのシェル芸を実行するように修正しました。 backend/scripts/run_shellgei.py 応答速度が向上した ちゃんと計測はしていませんが、 元々はシェル芸の実行結果が返ってくるまで10秒程度かかっていました。 シェル芸実行用コンテナを常に待機させておくことで、 すぐに結果が返ってくるようになりました。 やはりコンテナの起動に時間がかかっていたようです。 おわりに 今回はシェル芸オンラインジャッジのパフォーマンス向上を目指して、 シェル芸実行用コンテナを常に待機させておくように変更しました。 すぐに実行結果が返ってくるようになってよかったです。 それでは、また。

作成日: 2026年2月2日 · Yusuke Kato

シェル芸オンラインジャッジ:システム全体をDockerコンテナ内で動かす

はじめに シェル芸オンラインジャッジというウェブサイトを開発しています。 今回はフロントエンドとバックエンドをDockerコンテナ内で動かすように変更しました。 nginxもコンテナ内で動かしています。 シェル芸オンラインジャッジ 修正方法について シェル芸オンラインジャッジのソースコードを丸ごとGeminiに渡して、 具体的に修正方法を聞いて修正しました。 今回はDockerfileやdocker-compose.yml、nginxのconfファイルなどについて教えてもらいました。 シェル芸オンラインジャッジのシステム構成図 Nano Banana Proに生成してもらった現状のシステム構成図です。 システム構成 Dockerfile Frontend 下記がフロントエンドのDockerfileです。 主にフロントエンド側のビルドとnginxの設定・起動を行っています。 問題データのファイルもコンテナ内にコピーしています。 # --- Build Stage --- FROM node:22 AS builder WORKDIR /app COPY frontend/package.json frontend/yarn.lock* ./ RUN yarn install --frozen-lockfile COPY frontend/ ./ RUN yarn build # --- Serve Stage --- FROM nginx:alpine # ビルド成果物をNginxの公開ディレクトリにコピー COPY --from=builder /app/build /usr/share/nginx/html # 問題データを公開ディレクトリにコピー COPY problems/ /usr/share/nginx/html/ # Nginx設定ファイルをコピー COPY frontend/nginx/default.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] nginxの設定ファイルはあらかじめ用意しておいてコンテナ内へコピーします。 一応80番ポートの設定を書いていますが、実際は443ポートだけ受け付けます。 ...

作成日: 2026年2月1日 · Yusuke Kato

Dockerコンテナのリソースの制限を設定【シェル芸オンラインジャッジ】

はじめに シェル芸オンラインジャッジというウェブサイトを開発しています。 今回はユーザが入力したコマンドを実行するDockerコンテナにメモリやCPUなどのリソースの制限を設定しました。 シェル芸オンラインジャッジ 設定内容 設定前 Pythonスクリプトからコンテナを実行しています。 元々はネットワークの制限だけ設定していました。 container = self.client.containers.run( self.image_id, detach=True, command="sleep 60", ipc_mode="none", network_mode="none", ) 設定後 メモリ、CPU、プロセス数、権限、データサイズの制限を設定しました。 container = self.client.containers.run( self.image_id, detach=True, command="sleep 60", ipc_mode="none", network_mode="none", mem_limit="512m", # メモリ制限 memswap_limit="512m", # スワップ制限 nano_cpus=500000000, # CPU使用率制限 (0.5 CPU) pids_limit=50, # 最大プロセス数制限 cap_drop=["ALL"], # 権限制限 tmpfs={"/media": "size=100M"}, ulimits=[ # fsize (file size): 1プロセスが作成できる最大ファイルサイズ(バイト単位) docker.types.Ulimit(name="fsize", soft=50000000, hard=50000000) ], ) 設定の動作確認 設定が正しく行われているか確認してみます。 ...

作成日: 2026年1月31日 · Yusuke Kato

Google AI Studioで自作のウェブサイトの改善点を教えてもらった

はじめに 私が運営しているシェル芸オンラインジャッジというウェブサイトはまだまだ改善点があります。自分で一つ一つ改善していくのももちろん良いですが、最近の生成AIは私よりもはるかに優秀なので改善してもらえるところはしてもらおうと思い立ちました。 シェル芸オンラインジャッジ 使ったもの Google AI Studio Geminiにリポジトリ丸ごと読み込んで改善点を教えてほしいとお願いしたら、Google AI Studioを使うといいよと教えてくれました。ということで使ってみます。 Google AI Studio Gitingest Google AI Studioにリポジトリを丸ごと渡そうと思ったのですが、 ファイル一つずつしか渡せなさそうだったので、 GitingestというサービスにGitHubリポジトリURLを入力することで、 一つのファイルにまとめてもらいました。 とても便利です。 Gitingest プロンプト Google AI Studioに下記のように入力しました。 プロンプトのセオリーはよく分かっておらず、 かなり雑なお願いの仕方ですが、 Google AI Studioはいい感じに改善案を列挙してくれました。 アップロードしたファイルは私が開発しているシェル芸オンラインジャッジというウェブサービスのソースコードです。react,fastapi,docker,nginxなどを使っています。ユーザがブラウザから入力したシェルのコマンドをサーバのdockerコンテナ上で実行して、実行結果をユーザへ返すサービスです。改善案を考えてほしいです。候補として、セキュリティ、システム構成、パフォーマンス向上、問題データの形式と扱い方(現状テキストファイルで保持、テキストファイルをそのまま取得している)、リファクタリングなどです。その他にも改善案があれば教えてほしいです。 改善案 Google AI Studioの出力をそのまま載せるととても長くなるので箇条書きしておきます。 セキュリティ コンテナ起動時にCPUやメモリなどのリソースの制限を設定したほうがよい コンテナ内でコマンドを実行するユーザ権限を変更したほうがよい コンテナ内でネットワーク遮断の設定をさらに強化したほうがよい パフォーマンス向上 ユーザからのリクエストをキューに入れて順番に実行したほうがよい コンテナの起動に時間がかかるのであらかじめ起動しておいて待機させておくとよい データベースを導入してログを管理したほうがよい 問題データの管理 JSON形式で問題データを管理してAPI経由で取得するとよい リファクタリング 本番環境とローカル環境でURLを手動で書き換えているが設定ファイルを別で用意したほうがよい App.tsxでStateを使い過ぎているので対応が必要 判定処理 画像比較は完全一致だと安定しないのでcompareコマンドなどで類似度を基準にしたほうがよい 文字列末尾の空白や改行の削除はrstrip()を使ったほうがよい その他 docker-composeでローカルの開発環境を起動できるとよい GitHub Actionsから直接デプロイできるとよい SNSへのシェア機能があるとユーザ同士の交流が増えてよい この後 さらに詳しく修正案を聞いて修正していこうと思います。 おわりに 今回はシェル芸オンラインジャッジの改善案をGoogle AI Studioに聞いてみました。 たくさん改善案を出してもらえたので対応していきたいと思います。 便利な世の中になりましたね。 それでは、また。

作成日: 2026年1月30日 · Yusuke Kato

読書日記:山崎ナオコーラ『人のセックスを笑うな』(河出文庫)

はじめに 山崎ナオコーラの『人のセックスを笑うな』を読みました。 2004年に文藝賞を受賞してデビュー作となった作品とのことです。 久しぶりにちゃんと小説を読んだのですが、 「やっぱり小説っておもしろいな」と実感できました。 感想を記録として残しておきます。 人のセックスを笑うな 下記リンクが公式サイトです。 河出書房新社 - 人のセックスを笑うな 感想 本作品は、美術の専門学校に通う19歳の主人公・磯貝と、 その学校で講師をやっている39歳のユリとの恋愛を描いた小説です。 主人公の視点を通してリアルな恋愛が淡々と描かれていて、 一つの人生を体験できたような感覚があります。 磯貝とユリの関係性は世間的に歪んでいるわけですが、 本作品ではそこを主題にしているわけでなく、 あくまで磯貝とユリの関係を一つの恋愛の形として、その始まりから終わりまでを語っています。 解説でも説明されていますが、 本作品では主人公が何か大きな葛藤を抱えていてそれを乗り越えるところを描いているわけでもなく、 作品全体を通して恋愛についてのテーマに対して答えを示そうとしているわけでもなく、 ただひたすらに二人の人間のリアルな恋愛を描こうとしていると思います。 そして、ハッピーエンドやバッドエンドなどの明確な終わり方をするわけではないところや、 聖人のような良い人や地獄のような嫌な人が出てくるわけでもないところもリアルさがあります(友人の堂本はかなりいい奴です)。 リアルさがあればあるほどおもしろいということではないですが、 フィクションの中にリアルさを詰め込むというのはとても難しいことで、 そもそもやろうとしてできることではないと思います。 フィクションだけどもしそういう世界があったらこういうことが起きるとか、 人間はこういう考えをしてこういう行動をとるとかを具体的に描けるのかどうかが作品を作る上での一つ重要なところになって、おもしろさに繋がると思っています。 主人公の心の動きやユリの言動などがフィクションでありながらリアルさも併せ持っているところが本作品のおもしろさなのかと思いました。 良い作品でした。 おわりに 今回は山崎ナオコーラの『人のセックスを笑うな』を読みました。 久しぶりに小説を読んでとても楽しめたので良かったです。 小説に限らずですが本はたくさん読んでいきたいですね。 それでは、また。

作成日: 2026年1月27日 · Yusuke Kato

【VRChat】UnityとBlenderでアバターのパーツを作る

はじめに 今回はVRChatのアバターの手を既存モデルをベースに自作してみようと思います。 使用ソフトはもちろんBlenderです。 モデリングは、Blenderをほんの少し触ったことがあるのと、 あとはCADソフトを少し触ったことがあるくらいの初心者です。 分からないことがたくさんあるのでインターネットで調べたりGeminiに聞いたりしながら作業を進めました。 結果としてひとまずVRChat上で動く状態までできました。 この記事では作成手順を記録していきます。 GIF画像↓ 手の動作確認 YouTube↓ ## 開発環境 開発環境は下記の通りです。 バージョンが異なると同じように動かない場合があります。 Windows 11 Blender 5.0 Unity 2022.3.22f1 VRChat SDK 3.10.1 使用アバター アバターはニコニコのアリシア・ソリッドの3Dモデルを使用しています。 アリシア・ソリッド公式サイト VRChatで使用する方法は下記の記事にまとめています。 公開されているVRMモデルをVRChatで動かす Blenderをインストール オープンソースの3DモデリングソフトであるBlenderをインストールします。 Blenderの公式サイト Blenderにアバターのモデルデータをインポート 追記:最初はFBX形式のモデルをインポートしましたが、ボーン(アーマチュア)が正しく読み込めなかったので、VRM形式のモデルをインポートしました。 VRM形式のモデルは後述するアドオンを入れることでインポートできます。 アリシア・ソリッドの3DモデルはFBX形式(本当はVRM形式)のファイルで取得できたので、 Blenderを開いてからファイル > インポート > FBXを選択して読み込みます。 インポート インポートに成功するとBlender画面上にアバターのモデルが表示されます。 モデルをインポート 手のパーツだけモデルから切り分ける アリシア・ソリッドの3Dモデルは身体全体が一つのオブジェクトになっているので、自作する手の部分だけ切り分けます。 まず体の部分をクリックして選択してTABキーを押して編集モードに切り替えます。 すると下記の画像のようにメッシュ(三角形の網目)が確認できます。 メッシュ 次に手のメッシュの頂点をどれか一つクリックして選択してからLキーを押すと手の部分全体を選択できます。 オブジェクトとしては身体全体がひとまとまりになっていますが、 メッシュとしては各パーツでちゃんと分かれているようです。 手全体を選択 次にPキーを押すと「分離」ウィンドウが表示されるので「選択」をクリックして選択した手のパーツを体全体から分離します。 分離 分離が成功すると画面右上のオブジェクトの一覧に元々あった体全体の「body」から手のパーツが「body.001」という名前で分離していることが確認できます。 ...

作成日: 2026年1月11日 · Yusuke Kato