とあるカプセラのソースコードを読んだ感想
今作ってるゲームの感想が欲しいということなので適当にここに書きます。
最初に結論
Unity 3Dを使ってみよう!
長年のゲーム開発のノウハウがここには詰まっています。どのようなクラス設計をすればいいのかが使っていくうちに分かってきます。使用する言語はC#ですがゲームプログラミングの手法はC++でも大体は一緒です。多分。
これだけで満足できなくなったらUnityを開発しているUnity Technologiesの公開しているソースコードを色々と読んでみましょう。もっと深く知ることができます。多分。
C++じゃなきゃ我慢できない!俺はゲームエンジンの真髄を見たいんだ!って思ったらUnreal Engineのソースコードを読んでみましょう。昔は毎月課金しないと駄目でしたが、今は無料だったり学生割引とかがあるかもしれません。多分。
ここからは実際のソースコードの感想を少しだけ。
続きを読む
ゲーム内の設定を別キャラに移す方法
※プライバシー保護のためモザイク処理をしています。
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を起動して設定を参照したいキャラクターでログインします。
その後ゲームを終了させます。先ほどのフォルダにいき更新日時でソートをします。
一番新しい更新日時の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で調べる方法
前回の記事で「自分のTumblrのテーマだと反映されない」等のご意見をいただいたので、自分が変更したいHTMLのタグにどのCSSが使われているのかをChromeを使って調べる方法を書いてみます。
まずChromeを起動して調べたいサイトを開きます。その状態でF12キーを押します。Chromeデベロッパーツールというのが起動します。
①Elementsタブの②Stylesタブを選びます。③矢印アイコンクリックすると「自分が調べたいエリアを選べるモード」になります。④自分の調べたいところをクリックすると⑤そこで使われているCSSの一覧がStylesのウィンドウに表示されます。
ここで打消し線が入ってる項目は「上書きされて使われてないCSSです」なので、打消し線が入ってる場所のCSSをいくら変更しようが実際のウェブサイトには反映されません。
打消し線が入ってない項目は実際に使われてる要素で、今回のpタグの場合は".editor.paragraph > p:first-child"の要素が使われています。この部分はChrome上から編集することも出来ます。これはTumblrに限らずWebサイト全般で使えるテクニックなので、こんな感じでサイトを解析すると作業が捗るかもしれません。
おわり。
Tumblrのカスタマイズ
最近、英語のBlogを書こうと思い海外でよく使われてるTumblrというのを使っています。色々と自分好みに変えれるので少し調べたことを適当に書いてみます。
最初に
オプションを設置するのとか面倒くさかったら「HTMLを編集」のページで body { color: #ff0000; } みたいな感じで値を直接指定してもいいと思います。
HTMLの編集
①自分のTumblrのトップページの右上の"Edit theme"
または、設定画面の右上のアカウントアイコンをクリック→①外観を編集→②テーマを編集をクリックする。
①テーマを編集できるページに飛ぶので、そこの「HTMLを編集」をクリック。HTMLが表示され、直接編集することができます。
オプションの作成
Tumblrでは独自にオプションを作ることができます。微調整したい項目(位置や色など)をオプション化するとサイトデザインする時に楽になります。
オプションについての説明はこのページが分かりやすいです。今回は試しにサイトのテキストの色を変えるオプションを作成してみます。まず先ほどの「HTMLを編集」ページに行くと、ずらずらとHTMLが表示されていると思います。
①html > body の中の{block:Hidden}と{block:Hidden}の間に沢山のmetaタグがあると思いますが、ここでオプションを設定します。
②ここに"<meta name="color:Text Color" content="#444">"と追記してみます。これは色を設定するText Colorという名前のオプションで、デフォルトの値は#444(灰色ぐらい)というオプションです。
オプションを設置
次にこのオプションを実際に設置してみます。これは文字の色を設定するオプションなのでスタイルシートに反映させます。
先ほどのオプションを設定するmetaタグ群の少し下に<style>とスタイルシートを指定するところがあると思います(使用しているテーマによっては別の場所かもしれません)
①ここのbodyのcolor要素に {color:Text Color}; という感じで{オプションの種類:オプションの名前}というように記述します。これで設置は完了です。
オプションの調整
左上の←アイコンから「テーマの編集」ページに戻ると「テーマオプション」の項目に先ほどのオプションが追加されていると思います。
こんな感じでリアルタイムに調節できて微調整したい時とかはわりと便利だと思いました(小並感)
おわり
参考サイト
https://www.tumblr.com/docs/en/custom_themes
追記
集合写真を作るスクリプトを書いた※ただしロジは除く
PvPerの皆さんzKillboardはチェックしてますか?当たり前だろ?分かる。というわけで皆が戦った証を残すため、集合写真を作るスクリプトを書いてみました。歴史とまではいきませんが、色々と思い出を残して逝きましょう!
まずは基本的なことから。zKillboardの個々のキルボードのページの右上には「そのシステムの前後1時間にあったキルとデスを列挙するページ(Related)のリンク」があります。
例えば、このキルメールのRelatedのリンクをクリックすると
こんな感じに適当に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
オプション名 | 説明(複数指定したい場合は":"で区切る) |
--portrait_size | 取得するポートレートのサイズ。今は32/64/128/256/512が対応している。単位はピクセル。デフォルトは512px |
--aspect_ratio | 生成する画像のアスペクト比。デフォルトだと16:9 |
--select_alliances | atickerを指定したアライアンスだけ抽出する。列挙した順にソートされる |
--priority_characters | FCとか特定のプレイヤーだけ先頭に表示する。 |
--ignore_characters | 表示したくないプレイヤーを並べる |
--reload_json |
試しに全てのオプションを使ってみると
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辞書アプリ的なものを作った
EVEの日本語化サポートが終了しました\(^o^)/
今後のアップデートからは日本語翻訳はされません/(^o^)\
!!!!来るべきEnglish Onlyの時代に備えよう!!!!
ならばまずは何が必要だ?と考えた時、「なによりもまずは辞書が必要だ。原始的なものではなくインフォメーションテキノロジー的なやつが」という結論になったので適当に作りました。
説明動画も用意しました。上が音声での説明(長い)で下が字幕での説明(短い)です。気が向いたら使ってみてください。
匙を投げる(引退する)前に、まずは知恵を振り絞ってみよう!
Re:ゼロから始めるPyfa生活
EVEOnlineを遊んでる皆さん、Pyfaというツールを知ってますか?使ってますか?
Pyfaというのは船のFitを組む時のアシストツールです。イケメンは皆使ってます。あいにく私はブサメンなので使ってません><;
というわけで一念発起して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が動かないかもしれないので気を付けてください。
↑のリンクから2.x系統と3.x系統の両方を落とします(画像とはバージョンが違ってるかもしれません)
両方ダウンロードしたら、両方そのままインストールしてください。
3.x系統をインストールする時のオプションで"Install launcher for all users(recommended)"のチェックボックスは外さないようにしてください。
Pyfaのソースコードをダウンロード
↑のリンクの右上の方に"Clone or dowanload"というメニューがあります。そこをクリックの後に"Download ZIP"で適当な場所にダウンロードした後に解凍。
ダウンロードする場所には日本語が含まれない方がいいかもしれません。あまりマナーはよくないですがCドライブ直下なら確実です。
コマンド プロンプトの立ち上げ
まずはPythonのインストールが無事に完了しているのか確認します。
Windows10
先ほどPyfaを解凍したフォルダを開いてメニューの「ファイル>コマンドプロンプトを開く>コマンドプロンプトを開く」を選択します
Windows7
"Windowsキー + R"を押すと「ファイル名を指定して実行」というウィンドウが左下に出ると思います。名前の所に"cmd"と入力してEnterを押してください。
何か黒い画面が出たら成功です。
次にPyfaを解凍したフォルダを開き①のアイコン辺りをクリックするとフォルダまでのパスが表示されます。選択された文字列を右クリックして②のようにコピーします。
先ほどの黒い画面に戻り"cd "と入力した後に黒い画面を右クリックすると先ほどクリックしたものが貼り付けれるので、その後にEnter。上記のように"Pyfaを解凍したフォルダ > "に表示が切り替われば成功です。
バージョン確認
試しに"py -3 -V"と入力してPython 3、 "py -2 -V"でPython 2のバージョンが表示されたらインストールは成功しています。
ライブラリをインストール
Pyfaの解凍先に移動した黒い画面で"py -2 -m pip install -r requirements.txt"と入力すれば必要なライブラリがインストールされます。ここからは黒い画面に謎の文字が出まくりますが、頑張ってインストールしてるだけなので気にしないでください。
https://wxpython.org/download.php
次にGUIツールをインストールします。↑のリンクから"32-bit Python 2.x(インストールしたのと同じバージョン)"を選択します。64-bit版をインストールしてはいけません。
インストールする場所はPython2.7と同じでないといけません。もしPythonを別の場所にインストールした方は気を付けてください。
Pyfaを動かしてみる
準備が完了したので、いよいよPyfaを走らせてみます。
先ほどの黒い画面で"py -2 pyfa.py"と入力して…………
Pyfaが起動したら成功です。お疲れ様でした。
Pyfaを弄ってみる
Pyfaを解凍したフォルダ内の"pyfa.py"というファイルをメモ帳などの適当なテキストエディタで開いて、160行目あたり(バージョンによって違うかも)の"options.title = "という項目を探します。これがウィンドウのタイトルです。
試しにこれを適当に書きかえてみます。
先ほどの要領で起動します。
自分だけのPyfaを作ってみよう!
(まぁバグや仕様の調査がメインだと思いますが)