ゲーム記録

<目次>

GAME

PCスペック

CPU : Core i5-9600K(intel)
CPUクーラー : 白虎 弐(SCYTHE)
メモリ : W4U2666CX1-8G(CFD)
マザーボード : TUF Z390-PLUS GAMING(ASUS)
ビデオカード : TUF-GTX1660TI-O6G-GAMING(ASUS)
サウンド : なし
SSD : CSSD-S6B480CG3VX(CFD)
M.2 SSD : CT500P2SSD8JP(Crucial)
HDD : DT01ACA300(東芝)
光学ドライブ : dvd super multi drive(メーカー不明、外付け)
ケース : Versa H26(Thermaltake)
電源 : TOUGHPOWER GX1 RGB GOLD 600W(Thermaltake)
OS : Windows10 Home 64bit(Microsoft)

アクセサリ
マウス1: G Pro Wireless(Logicool)
マウス2: G300s(Logicool)
マウス3: M-XG1DBBK(エレコム)
キーボード1:G913 TKL(Logicool)
キーボード2 : G413(Logicool)
ディスプレイ : ZOWIE XL2411P(BenQ)
サブディスプレイ : OPTIX-MAG161V(MSI)
マウスパッド : G240t(Logicool)
ヘッドホン1 : ATH-AR3(audio-technica)
ヘッドホン2 : G431(Logicool)
チェア : 150-SNCL016BL(サンワサプライ)
スピーカー : Z150BK(Logicool)
USB1 : RUF3-MB8G-BK(buffalo)
USB2 : AC008-8G-RWE(ADATE)

PC

Apex Legends(EA)
Call of Duty Modern Warfare(Infinity Ward)
黒い砂漠(Pearl Abyss)
Fortnite(Epic Games)
PUBG LITE(PUBG Corporation)
サイバーハンター(NetEase)
女神転生IMAGINE(ガンホー)※サービス終了
チョコットランド(NHN Japan)

スマートフォン

パズル&ドラゴンズ(ガンホー)
モンスターストライク(XFLAG)
D×2 真・女神転生リベレーション(アトラス)
Minecraft(Mojang AB)
ダークサマナー(エイチーム)
Terraria(Re-Logic)
Pokemon GO(ナイアンティック)
Plague Inc.(Ndemic Creations)
粉遊び(DAN-BALL)
インフレーションRPGエスト(Tatsuki)
・・・その他、削除済みゲーム多数あり

PlayStation 4(FPはフリープレイ)

Horizon Zero Dawn(SONY)
Call of Duty Warzone(SONY)
Call of Duty Modern Warfare Remastered(SONY)FP
Detroit: Become Human(SONY)FP
Minecraft(Mojang AB)
Destiny 2(SONY)FP
ペルソナ5 ザ・ロイヤル(アトラス)
ペルソナ5(アトラス)
ペルソナ5 スクランブル ザ ファントム ストライカーズ(アトラス)
タイタンフォール2(EA)FP
Apex Legends(EA)
GOD EATER 3(バンダイ)
GOD EATER 2 RAGE BURST(バンダイ)FP
ナルティメットストーム4 ROAD TO BORUTO(バンダイ)
Fallout 4(ベセスダ)
Fortnite(Epic Games)
ウォッチドッグス2(UBI)
STEEP(UBI)FP
Grand Theft Auto V(ロックスター・ゲームス)
Iconoclasts(DANGEN ENTERTAINMENT)FP
METAL GEAR SURVIVE(コナミ)FP
フィンチ家の奇妙な屋敷でおきたこと(Annapurna Interactive)FP
地球防衛軍4.1 THE SHADOW OF NEW DESPAIR(ディースリー・パブリッシャー)FP
モンスターハンターワールド:アイスボーン(カプコン)
ファイナルファンタジー9リマスター(スクウェア・エニックス)
===ほぼ未プレイ(フリープレイ作品、無料ゲーム)===
ソニックフォース(セガ)
ワンダと巨像(SONY)
The Sims4(EA)
アンチャーテッドコレクション(SONY)
Goat Simulator(Ravenscourt)
荒野行動(NetEase Games)
Dauntless(Phoenix Labs)
Redout(34BigThings)
仁王(コーエーテクモゲームス)
bulletstorm full clip edition(EA)
キャラバンストーリーズ(Aiming)
GRAVITY DAZE 2(SONY)
he Last of Us Remastered(SONY)
eFootballウイニングイレブン2020 LITE(コナミ)
ABZU(505 Games)
ボーダーランズ ダブルデラックス コレクション(テイクツー・インタラクティブ)
Don't Even Think()
Realm Royale(Heroic Leap Games)
Brawlhalla(Blue Mammoth Games)
バットマン:アーカム・ナイト(ワーナー・ブラザース・ホームエンターテイメント)
Darksiders III(Gunfire Games)
Wipeout Omega Collection(SONY)
Aegis Defenders(Humble Bundle)
DogFighterWW2(IGGYMOB)
Paladins(Hi-Rez Studios)
Caligula Overdose(フリュー)
Burly Men at Sea(Brain&Brain)
Hand of Fate II(Jeff van Dyck)
H1Z1: Battle Royale(デイブレイクゲームカンパニー)
BEYOND : Two Souls(SONY)
Darksiders: Warmastered Edition(Gunfire Games)
Lovers in a Dangerous Spacetime(Asteroid Base)
Tom Clancy's The Division(UBI)
TERA(Bluehole Studio)
ソニックマニア(セガ)
ファンタシースターオンライン2(セガ)
The Surge(Focus Home Interactive)
日々、コントローラーいじり。(SONY)

Nintendo Switch (Lite)

ポケットモンスター ソード(任天堂)
幻影異聞録♯FE Encore(任天堂)
あつまれ どうぶつの森(任天堂)
ブラックソードマン ーある死神の物語ー(レイニーフロッグ)

#1【Arduino】3色LEDをボタンで制御

《目次》

《プログラム》

int redPin = 11;
int greenPin = 10;
int bluePin = 9;
int red_bt = 3;
int green_bt = 6;
int blue_bt = 5;
int r_st = 0;
int g_st = 0;
int b_st = 0;
int r = 0;
int g = 0;
int b = 0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(redPin,OUTPUT);
  pinMode(greenPin,OUTPUT);
  pinMode(bluePin,OUTPUT);
  pinMode(red_bt, INPUT);
  pinMode(green_bt, INPUT);
  pinMode(blue_bt, INPUT);
}

void loop() {
  r_st = digitalRead(red_bt);
  if (r_st == HIGH){
    r = r + 10;
    Serial.println(r,DEC);
    if (r > 255) {
      r = 0;
    }
    delay(100);
  }
  g_st = digitalRead(green_bt);
  if (g_st == HIGH){
    g = g + 10;
    Serial.println(g, DEC);
    if (g > 255) {
      g = 0;
    }
    delay(100);
  }
  b_st = digitalRead(blue_bt);
  if (b_st == HIGH){
    b = b + 10;
    Serial.println(b, DEC);
    if (b > 255) {
      b = 0;
    }
    delay(100);
  }
  setColor(r,g,b);
}
void setColor(int red, int green, int blue) // This is the function that we build.
{
  analogWrite(redPin, red);
  analogWrite(greenPin, green);
  analogWrite(bluePin, blue);
}

《配線図》

後日掲載予定

《配線写真》

f:id:tqdm8192:20200301105251j:plain

《解説》

  • pinMode(PinNUM,STATUS);

pinMode設定:PinNUMに使用するピン番号、STATUSにOUTPUT(出力)または、INPUT(入力)を記述。

  • setColor(r,g,b);:LEDの色をセットする。

#3【Python】PILで2枚の画像を合成する

《目次》

《内容》

今回はPythonの画像処理ライブラリ「PIL」を使用し2枚の画像を合成してみたいと思います.
画像は以下のサイトを利用させていただきました.
www.pakutaso.com

以下の画像を合成していきたいと思います.

f:id:tqdm8192:20190917222635j:plain
1枚目「ピンクの花」

f:id:tqdm8192:20190917222840j:plain
2枚目「可愛い女性」

《プログラム》

from PIL import Image
#File OPEN
img1 = Image.open("img1.jpg")
img2 = Image.open("img2.jpg")
#convert
rgb_im1 = img1.convert('RGB')
rgb_im2 = img2.convert('RGB')
#size
size1 = rgb_im1.size
size2 = rgb_im2.size

img1n = Image.new('RGB',size1)
img2n = Image.new('RGB',size2)

#min_size
min_sizex = min(size1[0],size2[0])
min_sizey = min(size1[1],size2[1])
size3 = [min_sizex,min_sizey]

img4_1 = Image.new('RGB',size3)
img4_2 = Image.new('RGB',size3)
img4_3 = Image.new('RGB',size3)
#min合成
for x in range(min_sizex):
    for y in range(min_sizey):
        r1,g1,b1 = img1.getpixel((x,y))
        r2,g2,b2 = img2.getpixel((x,y))
        r3 = min(r1,r2)
        g3 = min(g1,g2)
        b3 = min(b1,b2)
        img4_1.putpixel((x,y),(r3,g3,b3,0))
#max合成
for x in range(min_sizex):
    for y in range(min_sizey):
        r1,g1,b1 = img1.getpixel((x,y))
        r2,g2,b2 = img2.getpixel((x,y))
        r3 = max(r1,r2)
        g3 = max(g1,g2)
        b3 = max(b1,b2)
        img4_2.putpixel((x,y),(r3,g3,b3,0))
#avg合成
for x in range(min_sizex):
    for y in range(min_sizey):
        r1,g1,b1 = img1.getpixel((x,y))
        r2,g2,b2 = img2.getpixel((x,y))
        r3 = int((max(r1,r2)+min(r1,r2))/2)
        g3 = int((max(g1,g2)+min(g1,g2))/2)
        b3 = int((max(b1,b2)+min(b1,b2))/2)
        img4_3.putpixel((x,y),(r3,g3,b3,0))

img4_1.show()
img4_1.save("min.png")
img4_2.show()
img4_2.save("max.png")
img4_3.show()
img4_3.save("avg.png")

《結果》

f:id:tqdm8192:20190917223214p:plain
「min合成」

f:id:tqdm8192:20190917223310p:plain
「max合成」

f:id:tqdm8192:20190917223502p:plain
avg合成」

《プチ解説》

※min合成,max合成,avg合成などの名前は私が勝手につけた名前です.

「min合成」

min合成は2枚の画像の各RGBを比べて小さい方を入力しています.
例えば,(R,G,B)の順で,
1枚目(90,120,200)+2枚目(200,70,90)=min(90,70,90)
のような感じです.
画像だけ見ると1枚目が強く出ているようです.

「max合成」

max合成は2枚の画像の各RGBを比べて大きい方を入力しています.
例えば,(R,G,B)の順で,
1枚目(90,120,200)+2枚目(200,70,90)=max(200,120,200)
のような感じです.
画像だけ見ると2枚目が強く出ているようです.

avg合成」

最後はmaxとminを足して割る2しています.と思いましたが,これ無駄な処理ですね(笑)
おそらく,(r1+r2)/2,(g1+g2)/2,(b1+b2)/2と同じ結果になるのでは.
この画像が,THE合成という感じですね.

また,画像のサイズですが,2枚の画像の縦横の小さい方をとって合成後のサイズとしています.
例えば,(x,y)の順で,
1枚目(1200,1500)+2枚目(1000,1800)=min(1000,1500)
のような感じです.大きい方をとるとout of rangeのエラーが出ました.
処理を変えれば解決できると思います.

《今後の課題》

さまざまな合成ができると分かったので,いろいろ試してみたいと思います.

今回は以上です.長くなりましたが,最後まで見てくださった方がいましたらありがとうございます.

#1【Fusion360】作品紹介「朝ごはん」

随分前に作った作品です.
おにぎり,目玉焼き,ウインナー,お茶です.
正直余り美味しそうには見えませんね😰
おにぎりに至ってはお皿なし…

プログラミング以外にもFusion360でいろいろ作ったりもしているので、少しずつ紹介できればと思っています.

#2【Python】PILで3bit画像を作成してみる

《目次》

《内容》

今回はPythonの画像処理ライブラリ「PIL」を使用し3bit(8色)の画像を作成してみたいと思います.
紹介するものより,効率のよいやり方があるかもしれません.
以下の画像を3bit画像にしていきたいと思います.

f:id:tqdm8192:20190916154758j:plain
処理前
画像はこちらのサイトから利用しました.
pixabay.com

《プログラム》
from PIL import Image

img1 = Image.open("img1.jpg")
rgb_im1 = img1.convert('RGB')
size = rgb_im1.size
img2 = Image.new('RGB',size)

for x in range(size[0]):
    for y in range(size[1]):
        r1,g1,b1 = img1.getpixel((x,y))
        r2 = 255
        g2 = 255
        b2 = 255
        if r1<127 and g1<127 and b1<127:
            r2 = 0
            g2 = 0
            b2 = 0
        if r1<127 and g1<127 and b1>=127:
            r2 = 0
            g2 = 0
            b2 = 255
        if r1<127 and g1>=127 and b1<127:
            r2 = 0
            g2 = 255
            b2 = 0
        if r1<127 and g1>=127 and b1>=127:
            r2 = 0
            g2 = 255
            b2 = 255
        if r1>=127 and g1<127 and b1<127:
            r2 = 255
            g2 = 0
            b2 = 0
        if r1>=127 and g1<127 and b1>=127:
            r2 = 255
            g2 = 0
            b2 = 255
        if r1>=127 and g1>=127 and b1<127:
            r2 = 255
            g2 = 255
            b2 = 0
        if r1>=127 and g1>=127 and b1>=127:
            r2 = 250
            g2 = 250
            b2 = 250
        if r1>=127 and g1>=127 and b1>=127:
            r2 = 250
            g2 = 250
            b2 = 250
        img1.putpixel((x,y),(r2,g2,b2,0))
img1.show()
img1.save("3bit.jpg")

実行後以下のような画像になりました.少々分かりにくいですが,8色のみの画像になっているようです.
ちなみに8色とは,黒,白,赤,緑,青,マゼンタ,イエロー,シアンです.

f:id:tqdm8192:20190916155140j:plain
処理後

《プチ解説》
  • img1.show()

これで処理後の画像を表示させています.

  • img1.save("3bit.jpg")

これで3bit.jpgという名前で画像を保存しています.

  • rgb_im1 = img1.convert('RGB')

詳しいことはわかりませんが,処理前の画像をPILで扱うために,RGBに変換しているようです.

  • size = rgb_im1.size

こちらは画像のサイズを取得しています.

《今後の課題》
  • Tkinterを使用しGUIで処理できるようにしてみる.
  • もっと効率よく変換してみる.

今回は以上になります.アドバイスなどありましたら,コメントよりぜひお願いいたします.

#1【Python】Tkinterでクソゲーを作ってみる(1)

《目次》

《内容》

初投稿です.見づらい点あるとは思いますがご了承ください.
また,プログラミングも勉強中の身であります.
今回はPythonGUI作成ツールである「Tkinter」使用し,ゲーム的なものを作っていきたいと思います.
機能は少しずつ追加していきたいです.
↓読み取るCSVファイルの内容↓
1,1,1,1,1,1,1,1,1,1
1,0,0,2,0,0,0,0,0,1
1,1,0,1,0,1,1,1,0,1
1,2,0,1,0,1,0,0,0,1
1,0,1,1,0,0,0,0,1,1
1,0,0,0,0,0,1,0,1,1
1,0,1,1,0,0,1,0,1,1
1,2,1,0,0,1,1,1,1,1
1,0,0,0,0,0,0,0,0,1
1,1,1,1,1,1,1,1,1,1

《プログラム》
import tkinter as tk
import time as tm
import pandas as pd
df = pd.read_csv("meiro.csv",header=None).values.tolist()
xl=8
yl=8
rt1 =tk.Tk()
rt1.geometry("190x210")
rt1.title("クソゲー")
rt1.resizable(0,0)
def forward(event): #Wキーが押されると前へ
    global xl
    xl-=1
    lbl1.grid(row=xl,column=yl)
def back(event): #Xキーが押されると後へ
    global xl
    xl+=1
    lbl1.grid(row=xl,column=yl)
def right(event): #Dキーが押されると右へ
    global yl
    yl+=1
    lbl1.grid(row=xl,column=yl)
def left(event): #Aキーが押されると左へ
    global yl
    yl-=1
    lbl1.grid(row=xl,column=yl)
def gun(event): #Sキーが押されると銃弾的なものを発射
    lbl2 = tk.Label(rt1,text="●")
    global yl
    global xl
    yb = yl
    xb = xl
    for i in range(5):
        tm.sleep(0.05)
        xb -=1
        lbl2.grid(row=xb,column=yb)
        lbl2.update()
        lbl2.grid_forget()
n = len(df)
for i in range(n):
    for j in range(n):
        if df[i][j] == 1: #CSV1なら■
            lbl = tk.Label(rt1,text="■")
            lbl.grid(row = i,column = j)
        if df[i][j] == 0: #CSV0なら空白
            lbl = tk.Label(rt1,text="  ")
            lbl.grid(row = i,column = j)
        if df[i][j] == 2: #CSV2なら★
            lbl = tk.Label(rt1,text="★")
            lbl.grid(row = i,column = j)
lbl1 = tk.Label(rt1,text="☻") #動かすキャラクター
lbl1.grid(row=xl,column=yl)
rt1.bind("<Key-w>",forward)
rt1.bind("<Key-x>",back)
rt1.bind("<Key-d>",right)
rt1.bind("<Key-a>",left)
rt1.bind("<Key-s>",gun)
rt1.mainloop()
《プチ解説》
  • df = pd.read_csv("filename.csv",header=None).values.tolist()

このように記載することで,csvファイルを自動で配列に格納してくれる.
header=Noneを入れないと,最初の行を読み込みません.

  • root.bind("",function)

このように記載することで,キーバインドが可能となる.

  • root.resizable(0,0)

このように記載することでウィンドウサイズを固定できる.

《今後の課題》
  • 「■」は壁なので進めないようにする.
  • 「★」にぶつかったら,何かしらの処理が発生するようにする.
  • 最終的にはRPGのようなものを作る予定です.

実行画面は以下のようになります.
まだまだですね~.

f:id:tqdm8192:20190916013040p:plain
実行画面

今回は以上になります.
詳細に解説するほど知識はないので,あまりしません.
今後の成長具合を楽しみにしていただければ幸いです.