うめこの開発日記

PCゲームや人工知能関連の話題についての日記

久しぶりにがっつりMMOやりたい

あけましておめでとうございます.2021年も趣味(ゲーム)をがっつりやりたいと思ってます. 最近またやりたいなと思ってるゲームジャンルがあって...

MMOやりたい🤔

結局飽きてしまうのですが...

こういう動画とか

こういう動画を見てるとやりたくなってくる

こういうタンクの漫画みるとガチタンクしてた頃が懐かしくなる magazine.jp.square-enix.com

そして,せっかくやるなら人口の多いMMOをやりたいですよね.MMOの人口を掲載しているサイトを見てみると現在はこんな感じらしいです. f:id:aniharu:20210107194637j:plain

  • World of Warcraft⇒人口圧倒的だけど英語強制
  • Destiny 2⇒適当にやった
  • RuneScape⇒古すぎ
  • FF XIV⇒FF知らない

ということで,以前少しやってたESOをまたやります🤢 このゲームコンテンツは本当に素晴らしいのですが,唯一多人数で挑む高難易度ダンジョンでしか手に入らない装備とかがあって厄介です...多分クランとか入ってやることを想定してるのでしょうが,新規に入るのも敷居がちょっと高いです🤷‍♂️

【ゲームレビュー】Doom Eternal

f:id:aniharu:20200719173558j:plain 【プレイ時間】: 15時間

【おすすめ度】: ⭐⭐⭐⭐⭐

【良い点】

  • 最高クラスの敵をなぎ倒す快感
  • 様々な特徴の銃器と使用を強制させるシステム
  • 豊富な敵の種類と撃破モーション
  • 親切な探索用の様々なシステム

【悪い点】

  • 価格の割に微妙にボリュームが少ない
  • マップに微妙にあるいらないアスレチック要素
  • ゲームのリズムが大きく損なわれるマローダーとかいう糞モンス

シングルFPS最高峰のゲームの最新作!!

FPS好きなら語らずにはいられないゲームの1つ,DOOMの最新作です.前作Doom(2016)は超高評価を得てその名前を再び現代に轟かせました. Doomの特徴はなによりもその爽快感,敵を銃でバラバラ,パンチでバラバラ,爆発物でバラバラと本当に気持ちよく戦闘が出来るゲームです! 今作では弾薬が結構限られているのですぐに弾切れを起こしてしまいます,それを避けるにはブラッドパンチ(強力なパンチ),弾薬無限のグレネード(時間で回復),氷結グレネード(時間で回復)という ”銃以外の要素”を上手く使っていく必要があります.最初はこの様々な要素を使っていくのに苦労するのですが,慣れてくると面白いように敵が溶けていき弾切れも問題なくなっていきます.

単純な銃だけではなく,この”銃以外の要素”が戦闘の面白さに1口も2口も奥深さを加えており,これがとても面白い. シングルFPSでは間違いなく最高レベルの面白さなので,FPS好きの人でまだやってない方はぜひやってみてください!

Pythonで濁音が分離された文字列を結合する方法

ある処理を行っていた時,文字列の判定で少し苦労しました. あるデータ"グルメ.xlsx"というファイルを読み込んで,ファイル名で処理を変えようと思い,とりあえず以下のように書きました.

for fname in glob.glob(./data/*.xlsx):
    if 'グルメ' in fname:
        print(fname)

しかし,何故か何も出力されずに処理が終わってしまうのです."グルメ.xlsx"ファイル自体は存在し,fnameを出力させても”グルメ”の文字列は存在しています. なぜかinで判定出来ないのです.そこで,unicodeの値を見てみると

print(fname.encode('unicode-escape'))
print('グルメ.xlsx'.encode('unicode-escape'))
b'\\u30af\\u3099\\u30eb\\u30e1.xlsx'
b'\\u30b0\\u30eb\\u30e1.xlsx'

下と比べて上はなんか一文字分入ってる...この文字(\u3099)をネットで検索してみると...

https://glyphwiki.org/wiki/u3099

濁点やんけ!!!!!!!

ようやく原因がわかりました.何故か濁音の文字が分離されていたのです!!!(何故?globのせい?)

とりあえず原因がわかったので,以下のように対応しました.標準ライブラリのunicodedata.normalize関数は複数存在する文字の表現を1つの表現に整形してくれる関数です.便利便利

import unicodedata

# 濁点の分離を整形
fname = unicodedata.normalize('NFKC', fname)

print(fname.encode('unicode-escape'))
print('グルメ.xlsl'.encode('unicode-escape'))

出力はきれいに同じ形になっていますね

b'\\u30b0\\u30eb\\u30e1.xlsl'
b'\\u30b0\\u30eb\\u30e1.xlsl'