FC2ブログ

    技術

    Craftopia / クラフトピア のセーブデータをバックアップするbatファイル

    ワンクリックでCraftopiaのセーブデータをデスクトップのCraftopiaフォルダ内にバックアップするツールです。


    ページ右上の「Download ZIP」からダウンロードできます。
    zipを解凍し「Craftopia_backup.bat」を適当な位置に配置してください。

    ダブルクリックするとセーブデータのバックアップを開始します。


    ソースコード
    スポンサーサイト



    CraftopiaのModdingに手を出した

    Craftopiaのクローズドアルファが終わって・・・そして始まったEA!
    すごい勢い!
    クローズドアルファで遊びすぎて(100時間くらい)EAのスタートダッシュを切れず置いてけぼり状態(´・ω・`)

    少し休憩がてらMODを作ってみようと軽い気持ちで始めたものの、公式のサポートもしていない状態なので、dnSpyでソースコードを読みながら、UnityのMODフレームワークBepInExをごにょごにょする日々。
    全然わからないので、普段からプログラミングしていてもだめなんだなーと改めて感じてしまった。

    わからないなりに調べたり試行錯誤したりで、カテゴリ内のミッションをすべてクリアすると1スキルポイントを獲得するMODが一応完成したのでちょっと満足。

    ・配布先(動作にはBepInExが必要)
    https://www.nexusmods.com/craftopia/mods/22

    ・ソース
    MoreSkillPointEachMissionCategory
    カテゴリ内のミッションをすべてクリアすると1スキルポイントを得るMOD

    Logicool G HUBのプロファイル名を変更する方法

    お約束

    ご利用は自己責任で

    変更例

    変更前 変更後
    200118_LGHUB_1.png 200118_LGHUB_2.jpg

    変更方法

    1. 前提知識: ファイルの場所
    2. 項目 場所
      実行ファイル C:\Program Files\LGHUB
      設定ファイル C:\Users\%USERNAME%\AppData\Local\LGHUB\settings.json
      設定ファイルのバックアップ C:\Users\%USERNAME%\AppData\Local\LGHUB\settings.backup
    3. 前提知識: 設定ファイル更新のタイミング
    4. 設定ファイル(settings.json, settings.backup)がG HUBに書き換えられるタイミングは以下の通りです。
      • G HUB起動時
      • G HUB終了時
      • G HUBプロファイル切り替え時
      • 起動時の設定で上書き

    5. 前提知識: プロファイル名
    6. プロファイル名はプロファイル作成時に指定した実行ファイル(exe)の名前になります。
      例えば、「FSD.exe」という実行ファイルを指定した場合、プロファイル名は「FSD」となります。

    7. 準備
    8. 変更するプロファイル名をメモする。
      設定ファイル編集の際に使用します。メモ帳などにメモしておきましょう。
      今回は例として、プロファイル名「FSD」を「Deep Rock Galactic」に変更します。

    9. G HUBを終了する
    10. タスクバーに常駐しているG HUBを「Quit」で終了する。

    11. 設定ファイルを開く
    12. 設定ファイル(settings.json)をテキストエディタ等で開く。
      メモ帳などでも編集できるが、色分けして表示できるエディタを使うと便利です。
      例ではVisual Studio Codeを使用します。

    13. 設定ファイルを検索する
    14. 「準備」でメモしておいたプロファイル名を使用して設定ファイルを検索します。
      検索ワードは「"name": "メモしたプロファイル名"」です。

      200118_LGHUB_3.jpg

    15. 設定ファイルを編集する
    16. 前項で検索した「"name": "プロファイル名"」のプロファイル名部分を自由に変更します。(ただし、「"」や「\」は使用しないこと)
      例: 「"name": "FSD",」を「"name": "Deep Rock Galactic"」に変更し、上書き保存します。

    17. G HUBを起動する
    18. 「C:\Program Files\LGHUB\lghub.exe」を実行します。
      プロファイル名が書き換わっていれば成功です。
      書き換わっていない場合は手順を最初から見直してください。
      たまに、「インストールされていません」というプロファイルが作成されている場合がありますが、G HUBの再起動で消えます。

    メーリングリストサービスfreemlのメールをクローリングで保存する

    メーリングリストサービスfreemlが2019年12月でサービスを終了する。

    https://www.freeml.com/ep.umzx/grid/Guide/node/GuideFront/g/FreemlEnd/
    【重要なお知らせ】freeml byGMOのサービス終了につきまして


    一応メールのバックアップを取っておこうと思ったのだが、上記サイトに「・管理者の方にメール一覧のダウンロード機能を提供」と書かれていて、まさかーと思いつつ、freemlのサイトでいろいろ探したのだが、やはり、通常参加者には機能が提供されておらず、一覧をダウンロードできない様子。

    一般参加者にもメールのバックアップを取る権利はあるのでは無いかと思う、というより、手動であれば全件閲覧可能なデータに対して、その一括ダウンロード機能を管理者にしか与えない意味がわからない。

    仕方がないので、Pythonでクローリングした。
    最後のメールの番号は自動取得も可能だが、自分用なので動けばいいや仕様。

    とりあえず、ぐるぐるして、3500件くらいのメール全件取得できたので、満足した。

    ご利用の際は自己責任でお願いします。
    そろそろPEP8読みたい。

    MBOX形式を勉強しようかと思ったのだが、From情報のドメイン側が消されているので、そこまでこだわらなくて良いかなと思った。

    Logicool Gaming Softwareでスクリプトを書こう

    Logicool Gaming Software(以下LGS)さん実はLuaスクリプトを書けます。 

    その前に、LGSのマクロのお話を少し。

    LGSには一定の操作を簡単に自動化できるマクロ機能が実装されています。

    マクロを使うと、「コピー(Ctrl+C)」をワンクリックでできたり、するわけですね。

    ただ「コピー」するだけならショートカット押せばいいじゃないかと思われますので、パッと思いついた使いみちを書くと。
    例えば、「AとDを交互に連打したい」場合があったとすると、通常ならキーボードで「ADADADAD・・・」と打たなければならないわけですが、マクロを使うと「AD」を「1秒ごとに繰り返す」ということができるわけですね。
    (DbDで使っている人がいるかも知れない)
    この操作を、LGSのマクロ機能で書くと画像のようになります。

    s-CB_0006.jpg

    ちょっと説明
    ○キーストローク
    ・下矢印がキーを押し込む操作
    ・上矢印がキーを離す操作
    ・X秒の遅延はX秒何も操作しない時間

    ○繰り返しオプション
    ・ボタンを押している間、1秒ごとにキーストロークを繰り返す

    ●LGSマクロの長所・短所
    ○長所
    ・お手軽
    「記録を開始」ボタンを押したあとに、再現したいキー入力を押すだけでマクロが作れる

    ○短所
    ・可読性が悪い
    上矢印のキーがどこで押されていて、どこで離されているのか分かりづらい。
    ・編集性が悪い
    「AD」と入力していたけれど、「ACD」としたいと思ったときには、「AD」の操作の間を選択して「ここより前/後から記録」としてキー入力を足すわけですが、複雑なマクロをトライアル・アンド・エラーしようと思うと可読性の悪さと相まって、もはや新規にマクロを作り直すことになります。
    ・繰り返しに弱い
    「ABCDEF」「Q」「ABCDEF」「Z」と入力したい場合、素直に「ABCDEF」「Q」「ABCDEF」「Z」とマクロを組むしかない。
    何当たり前のことを言っているんだと思われるかもしれませんが、プログラミングをしたことのある人なら「ABCDEF」の入力は「関数にしてやればいい」とか「for」で回せばいいとか思うことでしょう。

    ●マクロとスクリプトの比較
    イマイチ長所と短所が伝わりづらいと思いますので、「ABCDEF」「Q」「ABCDEF」「Z」をマクロとスクリプトで組んだ場合の違いをお伝えします。

    ○マクロ
    左から右にキー入力のマクロが進んでいきます、記録した直後に見ても、もはや何をしているのかよくわからない状態になっています。
    (マクロ画像はまだ続きますが、ここまでにしておきます。)
    s-CB_0007.jpg s-CB_0008.jpg


    ○スクリプト
    キーの入力(押し込みと離す操作)を1行で書けるので、マクロと比べると非常にスッキリしているかと思います。
    s-CB_0011.jpg 

    PressAndReleaseKey()は「キーを押して離す」操作をしています。
    例えば、PressAndReleaseKey("a")ならAキーを押して、離すということですね。
    PressAndReleaseKey("a", "b")だと、Aキーを押して離したあとに、Bキーを押して離すといった具合になります。

    ○「ABCDEF」「Q」「ABCDEF」「Z」から「ABCDEF」「Q13」「ABC2DEF」「Z3」に変えたい
    マクロの場合は、「Qの後から記録」で「13」をいれて・・・とできないこともないですが、非常に分かりづらいです。

    一応編集したマクロをペタリ。
    s-CB_0013.jpg 

    「Qを離して」から「1を押す」までに遅延が入っていませんね・・・とか、「Q13」としたつもりが「ABCDEF13」になっていたということが容易に起こりうる可読性の悪さです。

    スクリプトをペタリ
    s-CB_0014.jpg 

    非常にわかりやすいですね。
    また、テキストなので、編集が非常に簡単です。
    マクロで、「ああでもないこうでもない」「間違えた・・・」「なんじゃこりゃー」となるところを、スクリプトなら数行でしかも読みやすく、編集しやすくかけるわけです。

    これはもうスクリプトを使うしかない!

    ということで、スクリプトを書きたい方は、先人が書いている解説を参考に学んでみましょー!
    (丸投げ)

    参考:

    自分用に作った関数たち
    昨日スクリプト機能に気がついて書いたのでまだまだ編集中