leopardgeckoのブログ

Macの関連事項など

GeekToolでお天気表示

注:これは古い記事です。Geekletで天気を表示する記事はこのリンク先が最新版になります。
ここの記事は記録のために一応残しておきますが今後は改訂されません。最新版をご覧ください。

はじめに

GeekToolとはMacのデスクトップをカスタマイズできるソフトです。デスクトップに色々なものを表示できて便利なのですが、スクリプトが公開されているものでなければ自分でスクリプトを書かなければなりません。
天気を表示するスクリプトはネットで公開されているものは情報が古くて今では使えないものが多い上に自力で作るとなるとHTMLソースを解析する必要があるなど結構大変な作業が必要になります。そこでこちらではAccuWeatherという天気予報サイトを利用したスクリプトをご紹介します。私自身も使っているものなので、天気予報サイトの仕様変更などがあった場合にはそれに対応すべく適宜更新していく予定です。
(GeekTool自体の使い方は他の入門用サイトを参照してください)

例えば下の画像のような感じで表示させるとします。
一番上の小さめの数字が本日の最高・最低気温。その右が直近2時間くらいの変化を教えてくれる予報。一番大きな文字が現在の気温・天気、その下の小さな文字が紫外線・雲量・湿度・気圧・風量・風向き、その左が現在の天気の画像です。
中段のずらっと並んだ画像と文字が時間単位の天気予報で、とりあえず16時間後まで表示しています。
下段が明日と週末の天気予報です。
それぞれ独立したスクリプトなので、どれか好きなものだけを表示させることもできます。
スクリプトのコピペや画像の位置合わせが面倒な方は、記事の最後の方でGeekletをダウンロードできますのでご利用ください。

f:id:leopardgecko:20190918133616p:plain

事前準備

下で紹介するスクリプトは初期状態では東京都江東区の天気が表示される設定になっていますので、表示したい地域に合わせてそれぞれのスクリプトを書き換える必要があります。
まず、https://www.accuweather.com/en/jp/japan-weatherにアクセスします。天気を表示したい市や区の名前をローマ字で入力して検索してそこを選ぶと、その地域の天気が表示されるようになります。その段階でWebブラウザに表示されているURLをどこかに保存しておいてください。

https://www.accuweather.com/en/jp/場所/数字/weather-forecast/数字

のような形式になっているはずです。例えば東京都江東区の場合は

https://www.accuweather.com/en/jp/koto-ku/221230/weather-forecast/221230

という形になります。URLに「weather-forecast」が入っていない場合はサイト内の「NOW」のタブをクリックしてみてください。
スクリプトにはそれぞれ「# 場所のURL」の下に

WEATHER_URL=${WEATHER_URL:='https://www.accuweather.com/en/jp/koto-ku/221230/weather-forecast/221230'}

という記述がありますが、この赤い文字で示した部分が表示したい場所のURLなので、ここを上で保存したURLに書き換えてください。

スクリプトをいちいち全部書き換えるのは面倒臭い!という方は、「~/.bashrc」に

export WEATHER_URL='https://www.accuweather.com/en/jp/koto-ku/221230/weather-forecast/221230'

のような形で記入すれば全てのスクリプトがその設定で動作します。(「.bashrc」が何だかわからないという人はググってください)

英語ではなく日本語で表示したい場合は、URLの「/en/」のところを「/ja/」に書き換えてください。ただし海外のサイトなので日本語は微妙な感じです。「/de/」でドイツ語、「/zh/」で中国語など、他の言語での表示も一応可能です。

スクリプト内部でcurlを使っていますので、社内での使用などでプロキシを指定する必要がある場合はプロキシの設定を~/.curlrcや~/.bashrcに記載するなどしてください。

<各スクリプトの説明>

現在の気温と天気

現在の気温と天気を表示してリアルな画像の天気アイコンを取得するスクリプトを下に示します。

天気アイコンの画像は「/tmp/weather_now.png」に保存されるので、GeekToolの「Image」をデスクトップにドラッグ&ドロップしてURLを「file://localhost/private/tmp/weather_now.png」と指定してください。
(ここで配布しているGeekletを使うならばこの作業は必要ありません)

スクリプトはPropertiesウインドウの「Refresh every 〜s」のところで表示を更新する秒数を設定してください。私は300秒に設定しています。他のスクリプトも同様に最後にRefreshの秒数を設定してください。これを忘れると表示が定期的に更新されません。
ちなみにこのスクリプトは画像表示を自動的に更新する仕組みになっているので、画像の方はRefreshを設定する必要はありません。

画像をリアルではなく他と同じシンプルなものにしたい場合は、スクリプトの最後の方の「https://vortex.accuweather.com/adc2010/images/icons-numbered/」のところを「https://vortex.accuweather.com/adc2010/images/slate/icons/」に変えてください。

最高気温と最低気温

今日の最高気温と最低気温の表示は以下の通りです。

直近の天気予報

直近120分の天気の変化を教えてくれます。AccuWeatherではこの予報を「MINUTECAST」と呼んでいるようです。上の画像では8分後に雨が降ってくる予報になっています。雨が短時間のときは時間単位の予報に表示されないこともあるので、これも見ておくと安心でしょう。
天気に変化があるときは分単位で表示が変わるので、Refreshは60〜180秒くらいに設定しておくのがお勧めです。
120分間天気に変化がなければ表示は出てきませんが、スクリプト内の

# 120分間天気に変化がない時のMINUTECASTの表示(0 変化がなければ表示しない、1 常に表示する)
MC_SHOW=0

というところの「MC_SHOW=0」を「MC_SHOW=1」に書き換えれば常時表示させることもできます。スクリプトは以下の通りです。

時間単位

以下は現在時刻から7時間後までと、8時間後から15時間後までのスクリプトです。これは等幅フォントを指定しないと表示がずれますのでご注意を。日本語で表示させる場合は日本語を等幅で表示できるフォント(全角文字が半角文字2個分の幅になるフォント。Osaka等幅やRictyなど)を指定してください。(上の画像ではOsaka等幅を指定しています。英語表示ならMonacoやMenloなどでも問題ありません)

天気アイコンの画像は「/tmp/weather_hour_0.png」から連番で「/tmp/weather_hour_7.png」まで保存されるので、上の応用で画像を一つずつ貼り付けて並べてください。
この作業は非常に面倒なので、ここで配布しているGeekletを使った方が良いでしょう。また、画像をまとめて並び替えるためのAppleScriptを同封しています。これを開いて実行し指示の通りに数値を入力していけば配布した画像Geekletを好きな場所に綺麗に並べることができます。画像の場所やサイズを変えたい時に使ってください。

まず一つ目、現在時刻から7時間後までのスクリプトはこんな感じです。

視認性を上げるためにAMとPMの色を変えています。他の色に変えたい場合は「# AMとPMの色」のところで「AM_COLOR」と「PM_COLOR」をそれぞれ指定してください。色と数値の対応はそこのコメントに書いてある通りです。色を変えたくない場合は「0」を指定してください。

8時間後から15時間後までは下のようになります。上のスクリプトの応用ですから内容はほとんど同じです。 天気アイコンの画像は「/tmp/weather_hour_8.png」から連番で「/tmp/weather_hour_15.png」まで保存されます。

スクリプトの「# 何時間後?」というところの「LATER=」の後の数値を「16」にすれば16時間後から24時間後の表示にすることもできます。その場合は天気アイコンの画像は「/tmp/weather_hour_16.png」から連番で「/tmp/weather_hour_23.png」になります。

明日の天気

明日の天気は以下の通り。
表示される文章を詳細なものと簡略化されたもののどちらかを選んで設定することができます。スクリプトの「# 天気の詳細」というところの「DETAIL=」の後の文字を「longPhrase」にすれば詳細な文章、「phrase」にすれば簡略化された文章になります。デフォルトでは詳細表示ですが、文章が長すぎると感じる場合は簡略表示が良いでしょう。
時間単位のスクリプトと同じような感じで、Tomorrowの文字色を変えることができます。ちなみに黒は「30」ですが十の位を4にする、つまり「40」を指定すると文字色ではなく背景色を黒にすることもできます。
天気アイコンは「/tmp/weather_tomorrow.png」に保存されます。
「# 何日後?」のところの「LATER=」の後の数字を書き換えれば、2日後や3日後などの天気を表示できます。工夫すれば週間天気予報もできるでしょう。

明日の紫外線、雲量、風速・風向き、降水確率

明日の紫外線、雲の量、風速と風向き、降水確率の表示は以下の通りです。
こんなにたくさん表示はいらないという場合は、スクリプトの設定を書き換えて表示したいものだけ選ぶことができます。
また、明日の天気と同じようにスクリプトを書き換えると表示される日を変えることができます。

週末の天気

週末の天気は以下の通り。土曜日までは同じ週の週末、日曜日になると次の週の週末の天気が表示されます。
表示される文章を詳細なものと簡略化されたもののどちらかを選んで設定することができます。スクリプトの「# 天気の詳細」というところの「DETAIL=」の後の文字を「longPhrase」にすれば詳細な文章、「phrase」にすれば簡略化された文章になります。デフォルトでは詳細表示です。お好みでどうぞ。
時間単位のスクリプトと同じような感じで、土曜日と日曜日の文字色を変えることができます。ちなみに赤は「31」ですが十の位を4にする、つまり「41」を指定すると例で挙げた画像のように文字色ではなく背景色を赤にすることもできます。
天気アイコンの画像が置かれる場所は土曜日が「/tmp/weather_sat.png」、日曜日が「/tmp/weather_sun.png」です。

Geekletのダウンロード

ここで紹介したスクリプトと画像表示のGeekletを一括してダウンロードできます。
スクリプトの見出しと同じファイル名をつけておきましたので、必要なものだけダブルクリックして使ってください。スクリプトはここの記事のコピペでも大した手間ではないですが、画像の設定や位置の変更は手作業でやるとかなり大変なのでこちらを使うことをお勧めします。
ここの記事では説明していない週間天気や24時間表示のGeekletもおまけで入っています。
[Geekletのダウンロード]

さいごに

他にもAccuWeatherには色々な予報がありますので、これまでに挙げたスクリプトの仕組みがわかれば様々な応用が可能でしょう。要はHTMLソースの中から欲しい情報をゲットするためのキーワードを拾ってテキストを整形しているだけですから、キーワードを確実に拾えるパターンを見つけさえすればOKです。

ここのスクリプトの転載や改造などは自由にしていただいて構いませんが、公開するならばこのブログへの言及をお願いします

更新履歴

2019/10/2 .bashrcにURLを記入しておけばスクリプトを書き換えずに済むようにした。文字と画像の表示変更が連動するようにした。時間表示の画像を並び替えるためのAppleScriptを追加。週間天気や24時間表示のGeekletをおまけで追加。
2019/10/1 時間単位の予報でわずかな仕様変更によると思われる状況に対処。直近の天気(MUNITECAST)で細部の修正。
2019/9/19 各国語表示に対応。日本語表記にしたい場合は「場所のURL」の/en/を/ja/に書き換えてください。/de/でドイツ語、/fr/でフランス語、などなどです。時間単位の表示をカスタマイズしやすいように修正。
2019/9/18 天気のフレーズにコンマが入っていると表示が崩れてしまう問題を修正。明日の降水確率などを表示するスクリプトを追加。
2019/9/14 雲量、湿度、風速・風向きのスクリプトを追加。他スクリプトの細部の修正。
2019/9/13 あまりにも強引なデータの拾い方を反省して、データを整形してキーワードから必要な情報を拾っていくスタイルに改訂。
2019/9/12 AccuWeatherの大幅な仕様変更に合わせてスクリプトを全面的に書き換え。以前のスクリプトを使っている場合は時間単位の表示が画像とずれますので、画像の位置を適宜修正するか画像表示用のGeekletをダウンロードして使用してください。
2019/4/12 明日の天気の表示が崩れる問題を修正。
2019/2/4 細部の修正。スクリプトGitHubからのソース埋め込みで表示するように変更。
2019/1/23 AccuWeatherの仕様変更に合わせて、現在の天気と気温、時間単位、明日の天気の表示が崩れる問題を修正。
2018/12/12 直近の天気予報(MUNITECAST)の変化がない時とサービス停止中には表示しないように仕様変更。
2018/5/9 AccuWeatherの仕様変更(User-Agent関係)に合わせてスクリプトを若干修正。(それぞれのスクリプトの「# 元データ取得」のところだけコピペで書き直せばOKです)
2018/3/14 Geekletの配布開始。
2017/11/21 AccuWeatherの仕様変更に合わせてスクリプト修正。カラー設定の変更をやりやすいように記述追加。

メカニカルキーボードのカスタマイズ。

日本では一部の業界を除いて全く流行る気配がないのですが、海外ではキーボードのカスタマイズが盛んに行われており、様々なスタイルのキーキャップが販売されていたり、キーキャップのデザインを自分で行えるようなサービスがあったり、全て自作するキットまであったりします。

キーボード本体も様々なキータッチのものが存在しており、スムーズに押し込む感触だけのもの、わずかなクリック感があるもの、カチカチと音が鳴るものなどから好みのものを選びます。また、それぞれキーの重さも何種類か用意されています。

私はCherry MX黒軸のいわゆる60%サイズのコンパクトキーボード(KBParadise V60)をベースにして、外側のケースを木製のものに変更し、キーキャップは黒の無刻印、ESCキーだけ顔のマークがついているものを使っています。また、打鍵音を抑えるために静音リングをつけています。

f:id:leopardgecko:20170221110805j:plain

海外の猛者に比べれば全く特別なカスタマイズではありませんが、日本国内ではこういうものはなかなか入手できないので海外サイトを利用することになります。具体的には、木製ケースはMassdrop、黒の無刻印キーキャップのセットはAliExpress、ESCキーはEbayで購入しました。

中でも苦労したのはキーキャップのセットで、黒の無刻印で質の良いものを見つけるのは意外と大変でした。最初は国内で簡単に入手できるFILCOのMajestouch用を買ったのですが、これは実際には黒というよりはかなり色の濃いグレーの半透明で、しかもプラスチックの厚みが全体的に薄く使用感は良いものではありませんでした。薄いと打鍵音が甲高く耳障りなものになってしまうのです。また、これはABS樹脂製で磨耗に弱く使っているうちに表面がツルツルになってしまい見た目が安っぽく触り心地も良いものではありませんでした。次にMAX Keyboardという海外サイトから磨耗に強いPBT樹脂製のセットを買ってみました。これは厚みもありツルツルにもならず使用感は良かったのですが見た目のばらつきがかなりあり、キーによってグレーに見えたり黒に見えたりしてかなり格好悪い仕上がりになってしまいました。

最後にたどり着いたのがAliExpressで売っているNPKCのPBT製キーキャップです。キーキャップの形状にはいくつか種類があって、私が買ったのはCherry profileという高さが低めのもの(一般的な高さのものはOEM profileという)です。これが今までで一番まともなものでした。厚みがあり、外観のばらつきが少なく、触った感触も良く、打鍵音は静かで静音リングはなくても良いくらいです。(音の差は樹脂の種類や厚み以外にもprofileの違いも影響がありそうですが)

一見良いことずくめのようですが、AliExpressは中国からの直輸入になるので、ある程度のトラブルは覚悟の上で注文する必要があります。私はうっかり春節の時期に注文をしてしまったので出荷されるまでかなり待つことになりました。あまりにも時間がかかるので一度キャンセルを試みたのですが、「休暇が終わったら出荷するからもう少し待ってくれ」みたいな返事が来て簡単にはキャンセルに応じてくれないのです。

 

キーボードのカスタマイズはとても楽しいのですが、日本人向けの情報が少なく失敗のリスクがある上に面倒なことも多く費用もかかります。国内でもこういう世界がもっと盛り上がってくれれば品質の良いものをもっと簡単に入手できるようになると思うのですが、なかなかそういう流れにならないのが残念です。

油性ZOOM505のジェットストリーム化。

2018/3/14 追記:最近、ついにパーカー互換のジェットストリーム替芯が出ました。ラインナップは黒の0.5mmと0.7mmです。これを使えばこの記事で紹介したリフィルアダプタを使う必要はありません。ジェットストリーム化するだけならこの記事はもはや用済みですが、黒以外の色やアクロインキなど他メーカの4c芯を使いたい時もあるでしょうしアダプタが途中で引っかかっても削れば使えるという参考のためにも記事は一応残しておきます。

 

今回はMacとは何の関係もないボールペンの話題ですが、このまま埋もれさせるのもちょっともったいないかなと思ったのであえて書いてみます。

ZOOM505というボールペンがあります。それほど高価なものでもないのですが、デザインがシンプルで格好良く、低重心で持ちやすく、握るところがラバーで滑りにくく、ラバーの先がわずかに太くなっているので押し付けるように書く時でも安定感があり、お気に入りのボールペンです。ボールペンは高級だからといって必ずしも持ちやすいとか書きやすいとは限らないのが面白いところです。

f:id:leopardgecko:20170220135905p:plain

このボールペンは基本的に水性タイプの芯なのですが、水性ボールペンは乾くまで時間がかかったり質の悪い紙に書くとにじんでしまうという弱点があります。個人的にその手の紙に書く機会が多いので油性があれば良いなと思っていたのですが、実はしばらく前に油性タイプが出ており、さらに30周年記念モデルというものにも油性タイプがあることをつい最近知りました。通常モデルの油性タイプは少し黄色がかったマットのシルバーしかないのですが、30周年記念モデルはピカピカの普通のシルバーです。ブラックの油性モデルがあれば一番良かったのですがないものを望んでも仕方がないので、30周年モデルを買ってみました。

芯は油性としてはごく普通の書き味で特に書きやすいとか書きにくいとかはないのですが、近年人気の低粘度油性(ジェットストリームやアクロインキなど)に比べると書き始めがかすれたり字の濃さが一定でなかったりと見劣りしてしまいます。また、細かい字を書くには線が少々太いのも気になりました。そこで、芯を入れ替える作戦を立てました。

油性ZOOM505の芯はいわゆるパーカータイプです。パーカー互換の替芯は何種類かあるのですが、低粘度かつ0.5mm程度の細芯はないようです。パーカータイプでそのような替芯を使う方法として、リフィルアダプターというものを使う手があります。アダプターを介することによりいわゆる4Cタイプの替芯が使えるようになりますので、4Cタイプの替芯があるジェットストリームも入れられることになります。

早速パーカー用のリフィルアダプター(PK-01)ジェットストリームの替芯(SXR-200-05)を入手して入れ替えてみましたが、アダプターが途中でつっかえて最後まで入りません。元々入っていた芯とアダプターの形状を見比べてみると、芯の胴体は先が細くなっているのですがアダプターの方はそこまで細くありません。わずかな違いですが、ここが問題なのでしょう。

f:id:leopardgecko:20170220141326p:plain

アダプターはアルミ製のようなので、ダイソーで入手したダイヤモンドやすりを使って先を削ってみることにしました。少し削っては入れてみる、ダメならさらに削る、という手順を繰り返し、ようやくアダプターを入れることができました。替芯はアダプターと先端の2ヶ所にわずかに遊びがあってカタカタしていたので、替芯のその2ヶ所にセロテープを1周分だけ巻きつけてみたところカタカタはなくなりました。

f:id:leopardgecko:20170220134448j:plain

 これで握りやすいZOOM505と書きやすいジェットストリームの組み合わせが完成しました。多少の追加費用と手間はかかりますが、個人的にはそれだけの価値はあると思っています。

 

ちなみに、同じように手頃な価格でシンプルなデザインと質感が良いボールペンとしてOHTOのリバティというモデルがあります。重心バランスやグリップの安定感はZOOM505の方が良いと思いますが、このボールペンは替芯の選択肢が非常に広いという特徴があり(リバティという名前の由来でもある)、ジェットストリーム化も簡単です。面倒な改造はしたくないとか色々な替芯を使ってみたいという方にはこちらもお勧めです。

 

また、油性にこだわらない場合は、水性のZOOM505ぺんてるのスリッチというゲルインキボールペンの芯の長さを合わせてカットして入れるという手もあります。スリッチの0.25mmだとジェットストリームの0.5mmより少し細い感じです。簡単に極細のゲルインキが使えるようになるので、細字が好きな方にはこれもお勧めです。ぺんてるのLRNシリーズゼブラのJFシリーズフリクションのLFBKRFシリーズも同じようにカットすれば一応入れられますが、先端が出過ぎてしまうので先端付近にセロテープなどを巻きつけて太さを調節する必要があります。

 

パーカー互換で低粘度油性かつ0.5mmくらいの細字リフィルがあれば売れると思うんですが、どこかで出してもらえないものでしょうか・・・

 

日本語版ローグ(Rogue 5.4)for macOS 重大アップデート。

前の記事で公開したMac用日本語版ローグ(Rogue)についての記事です。

 

本日、和訳を修正したjRogueの最新版をアップしました。

修正箇所はわずかなものですが、個人的にはかなり重要な修正だと思っています。具体的には、ゲームをクリアした時のメッセージの修正を行いました。もともとこの部分はデータ分離型のメッセージをそのまま使っていましたが、オリジナルの英文と比べてみると重大な違いがあることに気がつきました。ここは添付文書の【運命の洞窟へのガイド】の導入部と対になる部分でもあり、訳が正しいものでないとローグの世界観というか主人公のストーリーが完結しないのです。

データ分離型のメッセージがやや意味を外した訳になっているのはおそらくファンタジーがあまり一般的ではなかった時代によるものだと思います。あまり知られていない単語をそのまま訳しても意味がわからないかもしれないという配慮によるものだったのでしょう。今はわからない言葉があってもすぐに検索することができますから、ここは正しい訳に直しておくべきだと考えました。ネタバレになってしまうので回りくどい言い方になってしまい申し訳ありませんが・・・

データ分離型ローグをクリアしたことがある方は、ぜひともこのjRogueでのクリアも目指してください。【運命の洞窟へのガイド】の導入部を読んでいればデータ分離型ローグのクリアメッセージには少々違和感を覚えるでしょうが、最新版jRogueのクリアメッセージには矛盾がなく納得がいくものだろうと思います。

 

データ分離型では他にも時代によると思われる訳があり、例えば【運命の洞窟へのガイド】の導入部では「elf」を「妖精」と訳しています。これはもちろん間違いではないのですが、ファンタジー世界で「エルフ」と言えばJ.R.トールキンの「指輪物語」に出てくるエルフのイメージが多かれ少なかれ含まれているものだろうと思います。おとぎ話に出てくるような妖精ではなく、特殊な力を持った超人的な種族としてのイメージです。(「指輪物語」と言われてもピンとこないかもしれませんが、映画の「ロード・オブ・ザ・リング」の原作本といえばお分かりになる人は多いでしょう)

当時は「エルフ」と訳しても何のことだかわからない人も多かったと思いますが、今は「ロード・オブ・ザ・リング」や「ホビット」のおかげでトールキン的なエルフのイメージもだいぶ知られるようになったでしょうし、知らなかったとしても現代ではネットで検索すればイメージを掴むのはそれほど難しいことではないと思います。そこでjRogueの添付文書では「エルフ」という訳語を使いました。

 

私自身が気がついたところは適宜修正していますが、まだおかしなところやわかりにくいところなどは残っているだろうと思います。もし気がついた点があればお知らせいただければ幸いです。

日本語版ローグ(Rogue 5.4)for macOS よもやま話 その2。<細部のこだわり>

前の記事で公開したMac用日本語版ローグ(Rogue)についての雑談です。

当初はこのブログから直接ファイルにリンクしていましたが、ブログでアプリを配布するのも如何なものかという気もしますので、ファイル配布用のサイトを作ってみました。

リンクはこちら。

もしダウンロードした方がいらっしゃいましたら、感想でもご要望でもお叱りでもなんでも良いのでなんらかのリアクションをいただければ嬉しいです。

 

以下はよもやま話です。

この日本語化の作業で初めてRogueソースコードをじっくり見たのですが、30年も前の古いゲームなのに細かいこだわりがあちこちに見られて驚きました。

例えば指輪や杖の材質、水薬などの色の設定がやたらとたくさんあるのです。それぞれ20〜30種類くらいの設定があり、杖(staff)の材質は木材で魔法の棒(wand)は金属という決まりもあります。しかもこれらの設定はゲームの展開には一切影響を及ぼさないのです。

f:id:leopardgecko:20170808140436p:plainf:id:leopardgecko:20170808140519p:plain

RPGやファンタジーに詳しい人ならば常識なのかもしれませんが、「staff」と「wand」の使い分けにも面食らいました。Rogueでは魔法が使える「stick」がstaffとwandの2種類に分類されています。イメージとしてはstaffがロード・オブ・ザ・リングガンダルフが持っているような大きな杖で、wandがハリー・ポッターが持っているような小さめの棒といったところなのでしょうか。データ分離版ではstaffもwandも「つえ」としてまとめているようですが、今回の日本語版では「つえ」「魔法の棒」と分けてみました。どちらも魔法のstickとしては同じ機能ですが、staffは武器としても使えるという違いがあります。

魔法の巻き物の設定も異様に凝っていて、名前は150種類くらいの音節が設定されていてそこからランダムに作られています。おそらく全く同じ名前の巻き物が出てくることは二度とないでしょう。

f:id:leopardgecko:20170808140552p:plain

これらを全て日本語に置き換えるのは結構大変な作業でしたが、そもそもこんな設定を作ること自体が大変なことだったでしょう。何せ、木材だけでも30種類以上の設定があるのです。これはおそらく何度プレイしても以前に見たような展開にならないようにする工夫の一つだったのだろうと思います。

 

表示の設定も細かくできています。簡潔な表示に設定するとメッセージが微妙に違ってくるのですが、ここまでの微妙な違いをこれほどたくさん用意する必要があったのかと思います。通信速度が遅かった時代には実際に意味があった設定なのかもしれませんが・・・

データ分離版では主語があまり使われていません。これはおそらくデータ分離版の元になったClone IIがオリジナルの簡潔表示を元にしたメッセージを使っていたために、簡略表現としてそのような形をとっていたのでしょう。オリジナル版のデフォルトは簡潔表示ではないので、データ分離版に比べると全体的にやや長めのメッセージになっています。オプションから簡潔表示をオンにするとデータ分離版っぽいメッセージになります。

 

幻覚を見ているときにはメッセージが微妙に変わるという設定もあちこちに散りばめられています。例えば武器に魔法をかける巻き物を読んだ時は武器が銀色に光るのですが、幻覚を見ている時にはその色がランダムに変更されます。空腹になった時や食料を食べた時のメッセージも違います。そのような仕掛けがあちこちにあるのです。これもゲームの展開には全く関係がない設定ですが、限られた表現の中でどうやって多様性を出すかと考えた結果でしょう。

データ分離版にも同じような演出はありますがここまでは細かくないので、オリジナル版ならではの楽しみの一つと言えるでしょう。

 

また、おそらく動作確認用として、ほとんどあらゆることができるようになるwizardモードという隠し機能があるのですが、一般プレーヤーが使うことはないと思いますがこれも凝った設定になっています。wizardモードで迷宮をウロウロするだけでも結構楽しめます。ほぼ無敵になってしまうためスリルはありませんが。(申し訳ありませんが、公開版ではwizardモードは使えない設定になっています)

 

見た目はシンプルでも意外と奥が深いというのはRougeの魅力の一つだろうと思います。冒険と戦いのスリルを味わうだけではなく、幻覚の水薬をあえて飲んでメッセージの変化を楽しんだり、「今度出てくる杖の材質は何かな」というような視点を持ってみても面白いのではないでしょうか。

日本語版ローグ(Rogue 5.4)for macOS よもやま話。<コンセプト>

前回の記事で公開したMac用日本語版ローグ(Rogue)についての雑談です。

 

私がRogueに触れるきっかけになったのは、後藤寿庵さんがMac用に移植されたデータ分離版Rogueでした。Rogueの存在自体は昔から知っていましたが、実際にプレイするのはそれが初めてだったのです。これには随分はまりまして、ついにはイェンダーの魔除けを手にして洞窟から生還することができました。ところが残念ながらこのアプリは今のMacでは起動することができません。前に書いた記事のように手間をかければ他のデータ分離版Rogueで遊ぶことはできますが、これではハードルが高すぎて普通の人はなかなか手が出せないでしょう。手軽に日本語版Rogueで遊ぶにはどうすれば良いかと考えた末に、自分で作ることにしました。

コンセプトは、「Macで手軽に遊べる親しみやすいRogue」です。

しかし一言にRogueといっても現在公開されているものには様々なバージョンがあり、どれを選ぶのかで少々悩みました。Rogueには二つの大まかな系列があり、一つはオリジナルのRogue、もう一つはデータ分離版の元になったクローンの系列です。

クローンの系列にはデータ分離版などの親しみやすい日本語版があり、操作感が軽快でとっつきやすいのもポイントです。最初のうちはおっかなびっくり一コマずつ移動していても慣れてくると通路などはバーっと走りたくなります。Rogueにはちゃんと走るためのコマンドがあって、データ分離版では曲がり角でも止まらず一気に駆け抜けてくれます。カラーの配色は見やすく雰囲気も出ていて良い感じです。

一方、オリジナルのRogueはデフォルトの設定では走る時に曲がり角で止まってしまう、カラー対応していない、scroll(巻き物)やpotion(水薬)を使った後にいちいち呼び名をつける必要がある、などなど面倒くさいところがあるのですが、オリジナルならではの魅力として「暗い部屋」があります。データ分離版ではどの部屋でも入った途端に隅から隅まで見渡すことができるのですが、オリジナルでは暗い部屋は自分の周りしか見えません。これがスリルがあって良いのですね。魔法の灯りの杖を振るとパッと明るくなるというカタルシスのようなものも味わえます。

怪物の強さにも少々違いがあって、データ分離版ではケンタウロスが出てくるあたりから突然に難しくなるのですが、オリジナルではそこまで急激な変化はないので中盤からやたらと死にまくるというような展開はありません。

 

考えた結果、オプション設定などを駆使してデータ分離版っぽいオリジナルにすれば一番面白いRogueになるのではないかとの結論を出しました。見た目や操作感をなるべくデータ分離版に似せて、中身はオリジナルの最終版であるRogue 5.4という形です。

ソースを改変してデータ分離版のように使ったアイテムを自動判別するオプションも追加してみたのですが、これはさすがに逸脱しすぎかなと思って最終的にはボツにしています。外観以外の機能的には後述する5.4pから移植したもの以外の独自要素は加えないことにしました。やりすぎるとRogue 5.4ではなくなってしまいますので・・・。

 

Y.Oz Voxさんがカラー化したRogue 5.4pというものを作っておられますので、最初はそれの日本語化を試みました。いったん完成はしたものの、5.4pはもともとWindowsLinux用として作られており、Macコンパイルするとセーブしたゲームを再開した時に異常終了してしまうという致命的な不具合がありました。これを最後まで直すことができなかったので公開は断念しました。

別のところで入手したRogue 5.4.4のソースをコンパイルしてみたところ上記の不具合は出ませんでしたので、一からやり直してこれをベースにして日本語化した上で、5.4pのカラー化や識別の巻き物を一種類にする設定などの独自仕様を移植してみました。これが案外うまくいったので最終的な採用版になりました。バージョン名は一応5.4.5Jとしましたが、実際には5.4.4と5.4.5(5.4p)のハイブリッドで中間的なものです。

ちなみに作業の途中でバージョン3.6や5.2にも手を出してみたのですが、これらは色々な理由でうまくいかず断念しました。

 

日本語訳に関してはデータ分離版のもの(おそらくローグ・クローン2日本語版を作った太田純さんによる訳)が個人的にかなり好きなので、あえて独自の和訳はせずにほぼそのまま使わせていただきました。この和訳があるからこそデータ分離版には独特の親しみやすさがあるのだろうと思います。

カラーの配色もどうするべきか悩みました。5.4pはIBM-PCやPC 9801/8801を参考にしているそうですが、個人的にはデータ分離版の配色の方が好みです。また、ゲーム中のメッセージを見ると部屋の明かりは青とされているようですので、データ分離型の床が青いのはRogueの世界観にも合致します。デフォルトの配色はデータ分離型に準ずるものとして、PC-9801/8801の配色のオプション(brightモード)だけ残すことにしました。

 

また、親しみやすさの一環として、ターミナル用の実行バイナリだけでなくMac用のアプリとしてGUIで起動できる環境も用意したいと考えました。とはいっても私はド素人ですから難しいことはできません。Applescriptを使ってスタンドアロンのアプリっぽいものをでっち上げてみました。ただ起動するだけのアプリではなく、オプションを選べるようにしてみました。Rogueはオプションを駆使すると結構色々な設定ができるのですが、それをGUIから手軽に体験できるようになったと思います。

 

CUI版も併せて公開しましたが、独自仕様で起動するGUI版とは違って元のRogue 5.4のデフォルト設定のままで起動します。CUI版を使う人ならば環境変数などでご自身でお好きな設定にすることができるでしょうから、あえてシンプルにオリジナルのままです。

 

今の時代にコンピューター黎明期のゲームであるRogueがどれほど需要があるものかわかりませんが、単に歴史的な意義のあるRPGというだけでなく気軽に遊べるゲームとして今でも十分に楽しめるものだろうと思います。

日本語版ローグ(Rogue 5.4)for macOSを公開。

(注:ローグって何?という方は、Wikipediaあたりを参照してください。一言で表現するならば最初期の伝説的なRPGです。古いものですが病みつきになる面白さがあります)

前回データ分離版Rogue(ローグ)の記事を書きましたが、MacRogueを遊ぼうと思ったらどの方法を選ぶにしても結構面倒です。「それならばいっそのことMac用の日本語版Rogueを自分で作ってしまえば良いのではないか?」と思いついてしまいました。

日本で最も普及しているRogueWindows用の日本語版があるデータ分離版と思われますが、これはローグ・クローン2というものが元になっています。クローン2は名前の通りオリジナルのRogueそのものではなく、当時オリジナルのソースコードが公開されていなかったために動作をコピーして作られたものです。ソースからコピーしたわけではないので、見た目はそっくりですが内部動作には結構違いがあります。

現在はオリジナルRogueのソースも公開されていますので、今回はクローンの元になったオリジナルのRogueを日本語化してみました。ベースにしたのはRogueの最終版と言われるバージョン5.4です。おそらく日本語化されたRogue 5.4は他機種用も含めてこれが唯一のものだろうと思います。

ファイルはここからダウンロードしてください。

もともとのRogue 5.4はモノクロ画面のみでデータ分離版に慣れていると見た目が少々寂しいので、WindowsLinux用のカラー対応Rogueを作っておられるY.Oz Voxさんのソースを移植してカラー版にしてみました。(モノクロ画面でプレイすることも可能です)

プレイ画面はこんな感じです。(このターミナルの画面ではフォントはRicty Discordを使用しています。日本語が綺麗に表示できるのでjRogueにもオススメです。Ricty Discordについてはこの記事を参照)

f:id:leopardgecko:20161206002626p:plain

日本語訳とカラーの配色はデータ分離版を参考にしましたので見た目はほとんどデータ分離版と同じ(追記:最新版では独自のカラー配色に変更しています)ですが、中身はRogue Clone IIではなくRogue 5.4です。データ分離版との違いは、暗い部屋がある、アイテムの種類や数に違いがある、モンスターの強さに違いがある、巻き物や水薬は使った後に呼び名をつける必要があるものがある、などです。

また、Rogue 5.4では識別の巻き物が5種類もあるのですがこれを集めるのはかなり大変でゲームバランスも悪いように思いますので、Y.Ox Voxさんが5.4pで追加しておられる識別の巻き物を1種類にするオプションをこちらでも採用させていただきました。

(5.4のオリジナル性にこだわるならば5種類のままにしておくべきかもしれませんが、オリジナルでもバージョン5.2までは1種類しかなかったものであり、ローグ・クローンの系統でも1種類が採用されており、Rogue全体から見れば1種類の方がメジャーであろうと判断してオプションとして採用しました。)

日本語化の作業に関しては、MacUTF-8やマルチバイトの表示に初めから対応しているので日本語を表示させるだけならば難しいことではありませんが、表示の桁合わせや文字の削除などに少々苦労しました。日本語はUTF-8ではデータ量としては3バイトなのに表示は2文字分なので、ちょっと凝ったことをやろうと思うと一工夫必要になります。こちらはド素人なので、ちょっとしたことで壁にぶつかってはgoogleのお世話になる繰り返しでした。

特に大変だったのが日本語入力機能で、ここは一度は諦めかけましたが、オリジナル・ローグでは使ったアイテムに呼び名をつけるのが重要なポイントになるので日本語入力から逃げるわけにもいかず、試行錯誤の末に何とか実装できました。(出来あがってみれば単純な処理だったのですが・・・)

Macで日本語が入力できるということはつまりUTF-8のマルチバイト文字が使えるということですから、絵文字も使えます。例えば自分の名前に😀 を使ったり好きな果物を🍎 にしたりできます。

和訳は独自にやろうかとも思ったのですが、データ分離版の和訳の雰囲気が独特の魅力になっていると感じていましたので逆輸入のような形になりますがデータ分離版の和訳を使える限り使ってみました。Clone IIと5.4の違いもありますので完全にそのままというわけにはいきませんでしたが、新たに和訳した部分もデータ分離版の雰囲気から外れないように気をつけたつもりです。(追記:最新版では独自の和訳に変更しています

また、ソースコードを見るとプレーヤーが走ったり物を投げたり魔法のミサイルを飛ばしたりする時にはアニメ表示するようになっているのですが、今のコンピューターは表示が速すぎて全く動きが見えません。そこで動きが実際に見えるように少々手を加えてみました。これがおそらく本来のRogueの操作感なのだろうと思います。アニメ表示を省略する「jump」や「terse」というオプションがあるのですが、それらのオプションもこれで意味があるものになっただろうと思います。