とあるカプセラのソースコードを読んだ感想

今作ってるゲームの感想が欲しいということなので適当にここに書きます。

 

最初に結論

japan.unity3d.com

Unity 3Dを使ってみよう!

長年のゲーム開発のノウハウがここには詰まっています。どのようなクラス設計をすればいいのかが使っていくうちに分かってきます。使用する言語はC#ですがゲームプログラミングの手法はC++でも大体は一緒です。多分。

 

bitbucket.org

これだけで満足できなくなったらUnityを開発しているUnity Technologiesの公開しているソースコードを色々と読んでみましょう。もっと深く知ることができます。多分。

 

docs.unrealengine.com

C++じゃなきゃ我慢できない!俺はゲームエンジンの真髄を見たいんだ!って思ったらUnreal Engineソースコードを読んでみましょう。昔は毎月課金しないと駄目でしたが、今は無料だったり学生割引とかがあるかもしれません。多分。

 

ここからは実際のソースコードの感想を少しだけ。

 

続きを読む

ゲーム内の設定を別キャラに移す方法

f:id:omochin4eve:20170607200449j:plain

※プライバシー保護のためモザイク処理をしています。

 

Twitterで見つけた呟き。リプライで返してもよかったんですが、長くなりそうでしたし、どうせなのでブログの方に書いておきます。OSはWindows 10です。

 

C:\Users\<ユーザー名>\AppData\Local\CCP\EVE\d_eve_sharedcache_tq_tranquility

 

<ユーザー名>は自分のWindowsでのユーザー名に変更してください。このフォルダの中にランチャー画面で指定するプロフィールと同じ名前のフォルダがあると思います。この中に設定ファイルがあります。

 

沢山アカウントを持っている人は、ごちゃごちゃとファイルがあると思います。

core_user_xxxxx.dat がアカウント毎の設定ファイル、core_char_xxxxx.dat がキャラクター毎(1アカウント最大3つ)の設定ファイルとなります。

 

基本的には参照したいファイルを変更したいファイルに置き換えれば設定は変わります。

 

ファイル名にID番号を使っているので、目的のキャラのファイルが分からないと思います。そこで、まずEVE Onlineを起動して設定を参照したいキャラクターでログインします。

その後ゲームを終了させます。先ほどのフォルダにいき更新日時でソートをします。

 

f:id:omochin4eve:20170607203526j:plain

 

一番新しい更新日時のcore_user_xxxxx.datとcore_char_xxxxx.datが先ほどログインしたキャラクターの設定ファイルです。これを別のフォルダにコピペして移しておきます。

 

次に設定を変更したいキャラクターでログインをし、再びゲームを終了させ更新日時でソートし一番新しい更新日時のcore_user_xxxxx.datとcore_char_xxxxx.datの名前をメモします。そして先ほど別のフォルダに移しておいた設定ファイルをメモした名前に変更します。

 

移しておいた設定ファイルを元のフォルダに戻してファイルを上書きすれば設定の引き継ぎは完了です。

 

ゲーム内のブックマークとFitはCCPのサーバーの方に保存されているので、この方法では移せません。

 

C:\Users\<ユーザー名>\AppData\Local\CCP\EVE\d_eve_sharedcache_sisi_singularity

こちらはテスト(SiSi)サーバーの設定ファイルが置いてあるフォルダで、d_eve_sharedcache_tq_tranquilityフォルダをコピペして名前をd_eve_sharedcache_sisi_singularityに変更すれば、テストサーバーに本サーバーの設定を移すことができます。

 

めんどくさくない?

スクリプトを書きましょう

使われているCSSをChromeで調べる方法

omochin4eve.hatenablog.com

 

前回の記事で「自分のTumblrのテーマだと反映されない」等のご意見をいただいたので、自分が変更したいHTMLのタグにどのCSSが使われているのかをChromeを使って調べる方法を書いてみます。

まずChromeを起動して調べたいサイトを開きます。その状態でF12キーを押します。Chromeデベロッパーツールというのが起動します。

 

f:id:omochin4eve:20170524190108j:plain

①Elementsタブの②Stylesタブを選びます。③矢印アイコンクリックすると「自分が調べたいエリアを選べるモード」になります。④自分の調べたいところをクリックすると⑤そこで使われているCSSの一覧がStylesのウィンドウに表示されます。

 

f:id:omochin4eve:20170524190134j:plain

ここで打消し線が入ってる項目は「上書きされて使われてないCSSです」なので、打消し線が入ってる場所のCSSをいくら変更しようが実際のウェブサイトには反映されません。

 

f:id:omochin4eve:20170524190150j:plain

打消し線が入ってない項目は実際に使われてる要素で、今回のpタグの場合は".editor.paragraph > p:first-child"の要素が使われています。この部分はChrome上から編集することも出来ます。これはTumblrに限らずWebサイト全般で使えるテクニックなので、こんな感じでサイトを解析すると作業が捗るかもしれません。

 

おわり。

 

 

Tumblrのカスタマイズ

 

最近、英語のBlogを書こうと思い海外でよく使われてるTumblrというのを使っています。色々と自分好みに変えれるので少し調べたことを適当に書いてみます。

 

 

最初に

オプションを設置するのとか面倒くさかったら「HTMLを編集」のページで body { color: #ff0000; } みたいな感じで値を直接指定してもいいと思います。

 

 

HTMLの編集

f:id:omochin4eve:20170524163227j:plain

①自分のTumblrのトップページの右上の"Edit theme"

 

 

f:id:omochin4eve:20170524163234j:plain

または、設定画面の右上のアカウントアイコンをクリック→①外観を編集→②テーマを編集をクリックする。

 

 

f:id:omochin4eve:20170524163237j:plain

①テーマを編集できるページに飛ぶので、そこの「HTMLを編集」をクリック。HTMLが表示され、直接編集することができます。

 

 

オプションの作成

Tumblrでは独自にオプションを作ることができます。微調整したい項目(位置や色など)をオプション化するとサイトデザインする時に楽になります。

 

liginc.co.jp

 

オプションについての説明はこのページが分かりやすいです。今回は試しにサイトのテキストの色を変えるオプションを作成してみます。まず先ほどの「HTMLを編集」ページに行くと、ずらずらとHTMLが表示されていると思います。

 

 

f:id:omochin4eve:20170524170956j:plain

①html > body の中の{block:Hidden}と{block:Hidden}の間に沢山のmetaタグがあると思いますが、ここでオプションを設定します。

 

②ここに"<meta name="color:Text Color" content="#444">"と追記してみます。これは色を設定するText Colorという名前のオプションで、デフォルトの値は#444(灰色ぐらい)というオプションです。

 

 

オプションを設置

次にこのオプションを実際に設置してみます。これは文字の色を設定するオプションなのでスタイルシートに反映させます。

 

先ほどのオプションを設定するmetaタグ群の少し下に<style>とスタイルシートを指定するところがあると思います(使用しているテーマによっては別の場所かもしれません)

 

f:id:omochin4eve:20170524171031j:plain

①ここのbodyのcolor要素に {color:Text Color}; という感じで{オプションの種類:オプションの名前}というように記述します。これで設置は完了です。

 

 

オプションの調整

左上の←アイコンから「テーマの編集」ページに戻ると「テーマオプション」の項目に先ほどのオプションが追加されていると思います。

 

f:id:omochin4eve:20170524171047j:plain

こんな感じでリアルタイムに調節できて微調整したい時とかはわりと便利だと思いました(小並感)

 

おわり

 

 参考サイト 

https://www.tumblr.com/docs/en/custom_themes

https://tumblr.zendesk.com/hc/ja/categories/203334747-Tumblr%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA

 

追記

omochin4eve.hatenablog.com

集合写真を作るスクリプトを書いた※ただしロジは除く

f:id:omochin4eve:20170422222314j:plain

 

PvPerの皆さんzKillboardはチェックしてますか?当たり前だろ?分かる。というわけで皆が戦った証を残すため、集合写真を作るスクリプトを書いてみました。歴史とまではいきませんが、色々と思い出を残して逝きましょう!

 

まずは基本的なことから。zKillboardの個々のキルボードのページの右上には「そのシステムの前後1時間にあったキルとデスを列挙するページ(Related)のリンクがあります。

 

zkillboard.com

f:id:omochin4eve:20170422223632j:plain

 

例えば、このキルメールのRelatedのリンクをクリックすると

 

f:id:omochin4eve:20170422223808j:plain

 

こんな感じに適当にTeamAとTeamBに分けてくれます。これはこのページの全て or 特定の勢力やプレイヤーを抽出して並べて集合写真の画像を生成するスクリプトです。

 

This script makes a group photo of players listed in "related" · GitHub

処理系はPython 3.5.3です。適当に上記のリンクのソースコードをコピペするか右上にある"Download ZIP"からソースコードを落として解凍して適当な場所に置きます。コマンドプロンプトを開いて

 

pip install requests

pip install pillow

python zkillboard_related_image_generator.py

 

これで使い方の説明文が出ます。まずはzKillboardのAPIからRelatedのデータを引っ張ってきます。APIのURLは"ttps://zkillboard.com/api/related/~"という感じでURLにapiという文字列を足すだけです。上記のRelatedならば

 

https://zkillboard.com/api/related/30002540/201704220000/

 

上記のリンクでRelatedのJSONが返ってきます。このJSONを説明すると、まずはsummaryの中にteamAとteamBに分かれた配列が入っています。それぞれ summay->teamA->list, summay->teamB->list と辿っていきます。

 

  • characterID
  • characterName
  • corporationID
  • corporationName
  • cticker
  • allianceID
  • allianceName
  • aticker
  • shipTypeID
  • shipName

 

使いそうな項目だとここら辺が取れます。IDとNameが両方取れるので便利です。さらに便利なのはctickerとatickerでOverviewに表示される5文字の奴も取れるので大体はここだけで完結します。
 
次はスクリプトのオプションの説明です。
 
オプション名 説明(複数指定したい場合は":"で区切る)
--portrait_size 取得するポートレートのサイズ。今は32/64/128/256/512が対応している。単位はピクセル。デフォルトは512px
--aspect_ratio 生成する画像のアスペクト比。デフォルトだと16:9
--select_alliances atickerを指定したアライアンスだけ抽出する。列挙した順にソートされる
--priority_characters FCとか特定のプレイヤーだけ先頭に表示する。
--ignore_characters 表示したくないプレイヤーを並べる
--reload_json

APIJSONを毎回読み込みかのON/OFF。デフォルトはON

 

試しに全てのオプションを使ってみると

python zkillboard_related_image_generator.py https://zkillboard.com/api/related/30002540/201704220000/ --portrait_size=128 --aspect_ratio=4:3 --select_alliances=SHDWC:JMP-N "--priority_characters=Omochin:Omochin Jp:Omochin Tv" "--ignore_characters=Omochin Com:Omochin Sale:Omochin Help" --reload_json=True

 

https://zkillboard.com/api/related/30002540/201704220000/ から情報を取得し、ポートレートサイズは128。アスペクト比は4対3。SDHWC(Shadow Cartel)とJMP-N(Did he say Jump)だけを抽出して並べる。Omochin, Omochin Jp, Omochin Tvというプレイヤーを先頭に表示する。Omochin Com, Omochin Sale, Omochin Helpというプレイヤーを無視する。実行をする度にJSONを読み込む」

 

この例だとこのような内容の処理になります。とりあえず敵味方関係なくrelatedに載ってるプレイヤーを全部並べた画像を生成したい場合は

 

python zkillboard_related_image_generator.py <RELATED API URL>

 

 これで動きます。

 

さぁフレンズとの思い出を残そう!

 

EVE Online辞書アプリ的なものを作った

f:id:omochin4eve:20170420210649j:plain

 

EVEの日本語化サポートが終了しました\(^o^)/

今後のアップデートからは日本語翻訳はされません/(^o^)\

 

!!!!来るべきEnglish Onlyの時代に備えよう!!!!

 

github.com

ならばまずは何が必要だ?と考えた時、「なによりもまずは辞書が必要だ。原始的なものではなくインフォメーションテキノロジー的なやつが」という結論になったので適当に作りました。

 

www.youtube.com

www.youtube.com

説明動画も用意しました。上が音声での説明(長い)で下が字幕での説明(短い)です。気が向いたら使ってみてください。

 

 

f:id:omochin4eve:20170420211823j:plain

匙を投げる(引退する)前に、まずは知恵を振り絞ってみよう!

Re:ゼロから始めるPyfa生活

EVEOnlineを遊んでる皆さん、Pyfaというツールを知ってますか?使ってますか?

Pyfaというのは船のFitを組む時のアシストツールです。イケメンは皆使ってます。あいにく私はブサメンなので使ってません><;

f:id:omochin4eve:20170403215122j:plain

というわけで一念発起してPyfa生活を始めました。Pyfa Noobで色々と苦労したのでメモ代わりに残しておきます。

 

Python 3.x & 2.xをインストール

まず第一関門です。Pyfaは最新のPython3.x系統ではなく古いバージョンを使ってます。しかし、2.x系統は自分で環境変数を弄ってパスを通さないといけません(意味は分からなくていいです)

そこでPython3.3から導入されたpy.exeという簡易バージョン切り替えを使います。

 

参考URL: 3. Windows で Python を使う — Python 3.6.1 ドキュメント

(注)もしPython経験者でvirtualenvで開発環境を分けようと思った方、wxPythonが動かないかもしれないので気を付けてください。

 

www.python.org

↑のリンクから2.x系統と3.x系統の両方を落とします(画像とはバージョンが違ってるかもしれません)

f:id:omochin4eve:20170403220137j:plain

両方ダウンロードしたら、両方そのままインストールしてください。

 

f:id:omochin4eve:20170403220254j:plain

3.x系統をインストールする時のオプションで"Install launcher for all users(recommended)"のチェックボックスは外さないようにしてください。

 

Pyfaのソースコードをダウンロード

github.com

↑のリンクの右上の方に"Clone or dowanload"というメニューがあります。そこをクリックの後に"Download ZIP"で適当な場所にダウンロードした後に解凍。

f:id:omochin4eve:20170403221606j:plain

ダウンロードする場所には日本語が含まれない方がいいかもしれません。あまりマナーはよくないですがCドライブ直下なら確実です。

 

コマンド プロンプトの立ち上げ

まずはPythonのインストールが無事に完了しているのか確認します。

 

Windows10

f:id:omochin4eve:20170403220518j:plain

先ほどPyfaを解凍したフォルダを開いてメニューの「ファイル>コマンドプロンプトを開く>コマンドプロンプトを開く」を選択します

 

Windows7 

f:id:omochin4eve:20170403220701j:plain

"Windowsキー + R"を押すと「ファイル名を指定して実行」というウィンドウが左下に出ると思います。名前の所に"cmd"と入力してEnterを押してください。

何か黒い画面が出たら成功です。

 

f:id:omochin4eve:20170403222501j:plain

次にPyfaを解凍したフォルダを開き①のアイコン辺りをクリックするとフォルダまでのパスが表示されます。選択された文字列を右クリックして②のようにコピーします。

 

f:id:omochin4eve:20170403223127j:plain

先ほどの黒い画面に戻り"cd "と入力した後に黒い画面を右クリックすると先ほどクリックしたものが貼り付けれるので、その後にEnter。上記のように"Pyfaを解凍したフォルダ > "に表示が切り替われば成功です。

 

バージョン確認

f:id:omochin4eve:20170403220953j:plain 

試しに"py -3 -V"と入力してPython 3、 "py -2 -V"でPython 2のバージョンが表示されたらインストールは成功しています。

 

ライブラリをインストール 

f:id:omochin4eve:20170403225937j:plain

Pyfaの解凍先に移動した黒い画面で"py -2 -m pip install -r requirements.txt"と入力すれば必要なライブラリがインストールされます。ここからは黒い画面に謎の文字が出まくりますが、頑張ってインストールしてるだけなので気にしないでください。

 

https://wxpython.org/download.php

 

f:id:omochin4eve:20170403223814j:plain

次にGUIツールをインストールします。↑のリンクから"32-bit Python 2.x(インストールしたのと同じバージョン)"を選択します。64-bit版をインストールしてはいけません。

 

f:id:omochin4eve:20170403224140j:plain

インストールする場所はPython2.7と同じでないといけません。もしPythonを別の場所にインストールした方は気を付けてください。

 

Pyfaを動かしてみる

準備が完了したので、いよいよPyfaを走らせてみます。

f:id:omochin4eve:20170403224343j:plain

先ほどの黒い画面で"py -2 pyfa.py"と入力して…………

 

f:id:omochin4eve:20170403224507j:plain

Pyfaが起動したら成功です。お疲れ様でした。

 

Pyfaを弄ってみる

Pyfaを解凍したフォルダ内の"pyfa.py"というファイルをメモ帳などの適当なテキストエディタで開いて、160行目あたり(バージョンによって違うかも)の"options.title = "という項目を探します。これがウィンドウのタイトルです。

 

f:id:omochin4eve:20170403224756j:plain

試しにこれを適当に書きかえてみます。

 

f:id:omochin4eve:20170403224820j:plain

先ほどの要領で起動します。

 

f:id:omochin4eve:20170403224836j:plain

 

自分だけのPyfaを作ってみよう!

(まぁバグや仕様の調査がメインだと思いますが)