2020年2月15日土曜日

WindowsでMyShogi(『将棋神やねうら王』のオープンソース版)をビルドしてみる

デザート
Ricoh GR

 前回の記事(「MyShogi(『将棋神やねうら王』のオープンソース版)の導入方法」)に書いたように、MyShogi はソースからビルドせずともとりあえず使うことは可能なわけなのですが、こちらの記事(「Visual Studio 2017で将棋神やねうら王をビルドする | えむいーさんは今日も頑張るよ」)を参考に試しにビルドしてみたら、プログラミング知識ほぼゼロでもとりあえずビルドてきたので、手順について御紹介。
 Weindows 10でのビルドです。

  1. 「Visual Studio 2019」をインストール
    Visual Studio 2019 for Windows および Mac のダウンロード」からVisual Studio 2019をダウンロードしてインストール。ダウンロードするのは無料のCommunity版で大丈夫。
    参考にした記事では2017版を使用していたが、新しい方が良かろうということでこちらを選択。
    MyShogiはC#で書かれているので、インストール画面では「.NET デスクトップ開発」を選択。
    ちなみに一連の作業でもっとも時間がかかるのはこのインストール作業。待つだけだけど。

  2. 「WiX Toolset v3.11.1」をインストール
    Release WiX Toolset v3.11.1 · wixtoolset/wix3 · GitHub」から「wix311.exe
    」をダウンロードしてインストール。
    Wix311を実行するには「.NET Framework 3.5」が必要なので、入っていなければ「Download Microsoft .NET Framework 3.5 Service pack 1 (Full Package) from Official Microsoft Download Center」からダウンロードしてインストール。

  3. 「Wix Toolset Visual Studio 2019 Extension」をインストール
    Wix Toolset Visual Studio 2019 Extension - Visual Studio Marketplaceからダウンロードしてインストール。

  4. 「MyShogi」のソースコードをダウンロード
    GitHub - yaneurao/MyShogi: マイナビさんから発売した『将棋神やねうら王』(2018年発売)の将棋用GUIです。」からMyShogiのソースコードをダウンロード。「Clone or download」のボタンからzipファイルをダウンロードして適当なフォルダに解凍しおく。

  5. ソースコードを開く
    解凍したMyShogi-masterの中のMyshogi.slnをダブルクリックして開く。

  6. ビルドする
    ツールバーの「Debug」というところを「Release」に変更してからメニューの「ビルド」→「MyShogiのビルド」をクリック。
    しばらくすると MyShogi-master\MyShogi\bin\Release の中に MyShogi.exe、MyShogi.pdb、MyShogi.exe.configの3つファイルができあがる。

 以上、ビルドだけなら意外と難しくはなかったです。
 ちなみに、参考にした記事ではいろいろと警告が出たりしていたようですが、私の環境では特に何の警告もエラーもなくスムーズにビルドできました。Visual Studioが2019版だからでしょうかね?

 あとは前回の記事(「MyShogi(『将棋神やねうら王』のオープンソース版)の導入方法」)を参考に画像素材やら思考エンジンやらを集めれば使えるようになります。

2020年2月11日火曜日

MyShogi(『将棋神やねうら王』のオープンソース版)の導入方法

シャラン鴨
Ricoh GR

 以前から気になっていた将棋思考エンジン用GUIである「MyShogi」(市販ソフトウェアの『将棋神やねうら王』のオープンソース版)。
 プログラミングの知識はほぼゼロな自分がソースコードからビルドするのは大変だし、画像素材などは自力で用意しなくてはいけないし、ちょっとハードルが高いと思って使うのを諦めていたのですが、いろいろと検索してみると自分でビルドせずともそれなりに使用できる環境が整うことが判ったので、ご紹介。

 まぁ、「将棋所」とか「ShogiGUI」とか無料で高機能な将棋思考エンジン用GUIソフトがある中で、わざわざここまで苦労して使う必要があるのかというと、なかなか悩ましいところではありますが。

 なお、以下は将棋所やShogiGUIを自分でセットアップできる方を対象にした説明となります。

最終的なフォルダ構成(起動前)

MyShogi
│ MyShogi.exe
│ MyShogi.pdb
├─book
│  定跡ファイル
├─engine
│ ├各思考エンジンのフォルダ
│ │ 思考エンジンファイル
│ │ engine_define.xml
│ │ engine_options.txt
│ │ banner.png
├─eval
│ ├各評価関数のフォルダ
│ │ 評価関数ファイル
├─html
│  CommercialVersion2018.txt
├─image
│ ├game_effect
│ │ 画像ファイル
│ ├setting_dialog
│ │ 画像ファイル
│  画像ファイル
├─sound
│ ├koma
│ │ 音声ファイル
│ ├takemata
│ │ 音声ファイル

セットアップ手順

  1. 『将棋神やねうら王』update1.3とupdate2をダウンロードする。
    Releases · yaneurao/MyShogi · GitHub
  2. 『将棋神やねうら王』Update3までの遊戯施設その2 | やねうら王 公式サイト」からV1.40をダウンロードする。
  3. 適当なフォルダを作り、解凍したファイルを上のフォルダ構成を参考にファイルをコピーする(古いものから順に入れて新しいもので上書きしていく)。
  4. 画像素材をダウンロードし「image」フォルダに解凍したファイルをコピーする。
    GitHub - jnory/MyShogiImages: フリー画像のみで構成されたMyShogi用画像集
    「Clone or download」というボタンをクリックしてzipファイルをダウンロードする。以下GitHubからのダウンロードは同様に。
  5. 好きな思考エンジンと評価関数を用意して、それぞれ「engine」と「eval」フォルダ内にフォルダを作り(フォルダ名は半角文字のみ使用)、入れる。
  6. 「engine」フォルダ内の「komadoku2020」フォルダ(V1.40からコピーしたもの)内にある「engine_define.xml」と「engine_options.txt」を思考エンジンを入れたフォルダにコピーする。
  7. 「engine_define.xml」をテキストエディタで開き、<Description>~</Description>、<DescriptionSimple>~</DescriptionSimple>、<DisplayName>~</DisplayName>、<EngineExeName>~</EngineExeName>を用意した思考エンジンに合わせて書き換える。
  8. 「engine_options.txt」をテキストエディタで開き、option name EvalDir type string default ../../eval/qhapaq2018_kpptの”qhapaq2018_kppt”部分を用意した評価関数を入れたフォルダ名に書き換える。
  9. 思考エンジンのファイル名を自分のパソコンのCPUに合わせて書き換える。
    例:「YaneuraOu2018NNUE_tournament.exe」→「YaneuraOu2018NNUE_tournament_avx2.exe」
    (「komadoku2020」のフォルダ内をみるとCPUの世代に合わせて複数の実行ファイルが用意されている。MyShogiが使用環境に合わせて自動で判別して使い分けている様子)
  10. 定跡ファイルを用意し、「book」フォルダを作って入れる(上のフォルダ構成を参照)。

 以下はお好みに応じて。

  1. htmlというフォルダを作り、中に「CommercialVersion2018.txt」というファイルを作る(中身は空でOK)。
    このファイルがあると棋譜読み上げなどの機能が使えるようになる。棋譜読み上げなどが不要なら作らなくてよい。
  2. 音声素材をダウンロードし「sound」フォルダにコピーする。
    GitHub - matarillo/MyShogiSound: Sound files for https://github.com/yaneurao/MyShogi
  3. 「komadoku2020」内にある「banner.png」を参考に各思考エンジン用のバナーを作成する(なくても動く)。

使い方

 MyShogi.exeを実行すると起動。
 思考エンジンは「engine」フォルダ内にあるものが自動で読み込まれるので手動で追加する必要はありません。
 あとは適当にメニューをいじればわかると思います。
 対局開始してエラーが出たときは「engine_define.xml」、「engine_options.txt」の書き換えミスや、思考エンジンのファイル名の書き換えミスを疑ってみてください。検討ウィンドウのエンジン初期化時の表示などがエラー原因究明の参考になります。

MyShogiの感想

  • 思考エンジンのオプション設定の意味が記載されているのでわかりやすい。
  • 思考エンジンのオプション設定の際、全エンジン共通の設定と個別エンジン毎の設定の使い分けができるので(例えば使用する定跡ファイルだけ変えて後の設定は共通にするなど)、新規エンジンの追加が楽。
  • 将棋所のリーグ戦機能があるといいなぁ。

最後に

 開発者の皆様、画像や音声の素材を公開していただいた皆様に感謝いたします。

2020年2月9日日曜日

foobar2000とVolumioでネットワークオーディオ

前置き

 私の現在のメインの音楽再生環境は次のとおりです。

 Tinker BoardはRaspberry Piのようないわゆるシングルボードコンピュータです。
 40ピンのGPIOはRaspberry Pi互換で、Raspberry Piに比べると演算速度やらLANの速度やらその他もろもろ性能が高いです。
 Volumioはこうしたシングルボードコンピュータ用の音楽再生専用のOS。

 VolumioはWebブラウザからアクセスすればプレーヤーとして使えます。
 音楽ファイルのフォルダ構成さえちゃんとしておけば、自分が聴きたい曲を探すのはさして難しくありません(ファイルが増えてくると動作速度が少々心配ですが)。
 ただ、例えば、「flacの192kHzのファイルから選んで再生したい」とか、「DSD128のファイルを再生したい」とか、細かいフィルタリングはちょっと難しい。

 そういうときはパソコンからfoobar2000という音楽プレーヤーを使います。
 Volumioは標準でUPnPレンダラーの機能を持っています。
 foobar2000もコンポーネントを入れればUPnP対応になるので、foobar2000からVolumioをレンダラーとして再生できるわけです。最初の設定には少々手間がかかりますが、一度設定してしまえばあとは簡単。DSDのネイティブ再生も可能です。

 foobar2000の設定は、条件にあったファイルをすぐに探せるよう、上のスクリーンショットのようにフィルタリング機能重視にしています。
 コーデックの種類、サンプルレート、音楽の種類、アーティスト名、アルバム名、チャンネル数などでフィルタリングが簡単にかけられるようになっています。

使用コンポーネント

 foobar2000のコンポーネントは簡単にいうと機能拡張用のプラグインのこと。
 現在、私が使用しているコンポーネントは次のとおりです。
 設定の仕方については、それぞれの参考urlをご覧ください。

2020年2月1日土曜日

Todo

テリーヌ


 Todoリストに縛られる人生に飽き飽きすることもありますが、脳の衰えのことを考えると、なければなければないで途方にくれることが容易に想像される今日この頃。
 したいことリスト、なら愉しい気分になるのでしょうけどね。