ドラゴンズクラウンPROをプレイ中

PS4で、サイドビューのアクションゲームをプレイしています。


日曜日、勉強の合間にPS4に触りました。
最初は途中まで進んでいるDOOMをプレイしてみたのですが、久々ということで、敵が強くて少しも進めず。
それと、コントローラーのアナログボタンの効きが弱くなってきていて、思うようにキャラを動かしにくくもあったので、新しいコントローラーを入手するまでは再度中断としました。

それで、他のやりかけのゲームということで、アトラス/ヴァニラウェアのドラゴンズクラウンPROを本格的に進めていくことにしました。

このゲームは、同じメーカーの「プリンセスクラウン」の系譜に連なるゲームで、その後に出た「オーディンスフィア」の系統のゲームでもあります。

2Dで奥行きもあるタイプのサイドビューのゲームで、とある城下町の酒場から出発して、

20190929-1.jpg

そこで仲間を最大3人まで連れて、

城下町を移動し、

20190929-2.jpg

城やギルドで依頼を受けて、

20190929-3.jpg

街の魔術師にも挨拶をしつつ、

20190929-4.jpg

街外れのダンジョンに、

20190929-6.jpg

剣士や

20190929-7.jpg

魔法使いなどの仲間とともに

20190929-8.jpg

探索に行ったりします。

ダンジョンでは、敵を倒しつつ、宝箱を開けて金品を入手して、

20190929-9.jpg

帰還した際に店で鑑定してもらってからよりいい武具に買い替えたりします。


城下町のシステムはウィザードリィに良く似てて、酒場、死者の復活をする寺院や依頼を受ける訓練場・ギルドを利用するようになっています。
店主による鑑定ではボルタック商店ほどではないですが結構な金額を取られるので、冒険でのゴールドの入手はかなり重要です。


今回は私は初心者向けである剣士(ファイター)を選びました。
その場合は、自キャラが剣士で、NPCの仲間として魔法使いや僧侶をダンジョンに連れていく感じになります。
剣士はタフなのが初心者向けらしい感じです。でも、敵の攻撃にあたるつもりがない人は、最初から体力のない魔法使いを選ぶのもありだと思います。

という感じで、まだ序盤ですが、プレイを続けていきます。








久々に聴いた曲


SOFT BALLET - メルヘンダイバー


この曲を聴いているとくらくらしてくる


Boom Boom Dollar (Red Monster Mix) (2000)


ユーロビートっていうのも懐かしい響きになってしまった


SPIRITUAL 「lasting LONG」


好きな曲






HI! VEVO Vol.170

AURORA - Walking In The Air


イギリスのバラッド風の曲。聴き入る。







クラシック曲を忘れない Vol.70

ダンソン 第2番

アルトゥロ・マルケス作曲。ラテンアメリカの雰囲気を持つ曲。








ニコニコ動画のリンク


タマムシ




令和のドール。すごい




大ちゃんが突っ込みなのは必然



90%果汁のチューハイはジュース感覚で飲める(少し酔う)

ディープラーニングG検定の勉強中 その20(コサイン類似度)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、コサイン類似度について見ていきます。

参考サイト
高校数学の美しい物語(コサイン類似度)


ベクトル r とベクトル x の2つがあるとき、

式1
3-6-1-1.png

その2つのベクトルの向きがどれぐらい類似しているかを調べるときは、式2からcosθでの比を算出することになるのですが、

式2
3-6-1-2.png

これは、ディープラーニングG検定の勉強中 その19(成分表示による内積)で出てきた式3と組み合わせることで実現できます。

式3
3-5-2-2.png

つまり、式4を

式4
3-6-1-3.png

式5に変形して cosθによる比を算出できるようにします。

式5
3-6-1-4.png

このとき、分母のベクトルは、図1から

図1
3-6-1-5.png

三平方の定理により式6が成り立つため、

式6
3-6-1-6.png

式5を式7に変形することができます。

式7
3-6-1-7.png

これで計算可能となりましたので、実際に数値を代入してコサイン類似度を確認してみます。


図2
3-6-1-8.png

図2の目盛りを「1」としたとき、ベクトル r とベクトル x の成分表示は式8となるので、

式8
3-6-1-9.png

これを式7に代入して、式8の cosθ = 0.6 と算出されました。

式8
3-6-1-10.png

コサイン類似度は、cosθの値が 1 に近いほど2つのベクトルの向きが類似していることになるので、0.6 は半分よりはちょっと近い、というところです。

図3
3-6-1-11.png

図3では図2のときよりも2つのベクトルの向きが近づいています。
式9より、

式9
3-6-1-12.png

これを式7に代入して、cosθによる比が 0.894427190999916 と出ました。より 1 に近い値となっています。

式10
3-6-1-13.png

図4
3-6-1-14.png

今度はさらにベクトル r とベクトル x の向きが近くなっています。式11から、

式11
3-6-1-15.png

式7に代入して、式12の cosθ = 0.96561575852067 と出ました。

式12
3-6-1-16.png

というように、2つのベクトルの向きが近いほど 1 に近付くことが分かりました。


なお、2つのベクトルの向きが全く同じ場合は、cosθ = 1 となり、2つのベクトルの向きが90°の場合は cosθ = 0 となります。正反対の向きの場合はcosθ = -1 となります。


ちなみに、ベクトル類似度は多次元ベクトルにも適用できるため、式13が成立し、

式13
3-6-1-17.png

これを簡略化して総和∑で表すと、式14となります。

式14
3-6-1-18.png

ディープラーニングG検定の勉強中 その19(成分表示による内積)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、成分表示による内積について見ていきます。


前回は、2つのベクトルが作る角の角度θが分かっている状態で、各ベクトルの量が判明している場合の内積について見ましたが、
今回は、角度が分からず、各ベクトルの成分…2次元の場合は、ベクトル r (r1, r2)、ベクトル x (x1, x2)が判明している場合の内積の算出方法です。

ベクトル r とベクトル x の成分表示が式1のとき、

式1
3-5-2-1.png

式2で成分表示による内積を算出できます。

式2
3-5-2-2.png


それでは、実際に内積を計算してみます。

図1
3-5-2-3.png

図1のベクトル r とベクトル x の成分が式3のとき、

式3
3-5-2-4.png

式4の内積となります。

式4
3-5-2-5.png


今度は、ベクトルが直角三角形になっていない場合の内積です。

図2
3-5-2-6.png

図2の目盛りが「1」の場合、式5の内積が算出されます。

式5
3-5-2-7.png


なお、式2は、多次元にも拡張できるため、式6が成り立ちます。

式6
3-5-2-8.png

式6を簡略化して総和∑で表すと、式7となります。

式7
3-5-2-9.png


成分表示による内積をPythonで確認してみます。

参考サイト
DeepAge(ベクトルの内積や行列の積を求めるnumpy.dot関数の使い方)

--------------------
import numpy as np

r = np.array([-1, 3]) # ベクトル r の成分(r1, r2)
x = np.array([4, 2]) # ベクトル x の成分(x1, x2)

rx = np.dot(r, x)  # 1次元内積の計算(r1・x1 + r2・x2)

print("rx = " + str(rx))

--------------------
出力結果
rx = 2


内積を算出するAPIがあるとは本当に便利なものですね。

ディープラーニングG検定の勉強中 その18(内積)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、内積について見ていきます。


内積は、ベクトル間の積を求めるものです。

参考サイト
Studyplus(【内積とは】ベクトルの内積の意味や公式・計算方法を知って大学合格へ!)

図1
3-5-1-1.png

図1のように、ベクトル r とベクトル x があるとき、
ベクトル x と、ベクトル r の向きと大きさをベクトル x と同じ向きの大きさに換算したもの(ここでは ベクトル x' とする)を掛けることでこの2つのベクトルの内積を算出することができます。

上記の太字は、つまりはベクトル r とベクトル x の比を求めようとしているわけで、要するに、この式は、cosに相当します。

式1 直角三角形で、θ = 30°のときのx / r
3-5-1-2.png

式1によって比が算出されたら、後はベクトル r の式1の比を掛け合わせることで、ベクトル x と同じ向きの大きさベクトル x' が算出されるので、

式2 ベクトル r = 2、ベクトル x = √3 のとき
3-5-1-3.png

図2
3-5-1-4.png

あとは、ベクトル x と、ベクトル x' をかけると、内積が算出されます。

式3
3-5-1-5.png

ベクトル x' は、ベクトル r のことなので、式4となります。

式4
3-5-1-6.png


なお、2つのベクトルは、それぞれが直角三角形の2辺を構成している必要はなく、要は、ベクトル r からのベクトル x と直角になる垂線で新たな直角三角形を作って計算するイメージなので、例えば、
ベクトル r = 3、ベクトル x = 4の場合でも、式5のように内積を算出することができます。

式5 θ = 30°の場合
3-5-1-7.png

この式を一般化すると式6になります。

式6
3-5-1-8.png


なお、ベクトル r とベクトル x の角度θについて、

角度0°のときが最も内積の値が大きくなり(比が1となるため)、
角度180°のときに内積が最小となります(比が-1となるため)。
角度90°のときは、内積は0となります。

ディープラーニングG検定の勉強中 その17(三角関数)

書籍「最短コースでわかるディープラーニングの数学」の内容に沿って勉強しています。

今回は、三角関数について見ていきます。


直角三角形の特徴

直線 x の2倍の長さの直線 r

図1
3-4-1-1.png

で直角三角形を作ると、その内角が、90°、60°、30°の直角三角形になります。

図2
3-4-1-2.png

このとき、y の長さが不明ですが、三平方の定理で計算すると、

式1
3-4-1-3.png

y の長さが導き出されます。
なお、直角以外の角の角度が同じ場合は相似が成立するため、x と r が接する角度が60°の場合には、いつも式3の比率が成り立つわけです。

式3
3-4-1-4.png

そして、このように直角三角形の3辺の比率をsin(正弦)、cos(余弦)、tan(正接)で表したものが「三角比」です。


三角比

式4 三角比
3-4-1-5.png

つまり、θが60°のときには、sin、cos、tanの比率は式5となります。

式5
3-4-1-6.png

ところで、なぜsinを正弦、cosを余弦、tanを正接と呼ぶのかについては、下記のサイトに説明があります。

CinderellaJapan(「正弦」の意味)


三角関数

三角比では、内角についてのみの比率が算出されるだけですが、
単位円を用いると、三角比が外角にも拡張されます。
単位円は、半径 r が「1」の円です。

図3 単位円と直角三角形
3-4-1-7.png

円に接する直角三角形の角の座標は(cosθ, sinθ)となるのですが、
外角となる座標に設定することができ、

図4
3-4-1-8.png

r が 1 で、x が -1/2 とするなら、θは120°となり、つまりは、式6となります。

式6 θ = 120°
3-4-1-9.png

このように、三角比の考え方を拡張したものを「三角関数」といいます。


三角関数のグラフ

Pythonを使って単位円での三角関数のグラフを描画してみます。

ソースの引用サイト
Qiita([python]グラフ描画のためのライブラリMatplotlibの使い方)

--------------------
import numpy as np
import matplotlib.pyplot as plt

# 描画範囲の指定
x = np.arange(0, 4.1, 0.1)

# 計算式
y1 = np.sin(x)  # xの単位はラジアン
y2 = np.cos(x)

# グラフ描画設定
plt.plot(x, y1, label="sin")
plt.plot(x, y2, label="cos")

plt.xlabel("x")
plt.xlabel("y")
plt.title('sin & cos')

# グラフのグリッドを表示
plt.grid()

# ラベルの描画
plt.legend()
# グラフの描画実行
plt.show()

--------------------
出力結果
3-4-1-10.png

ラジアンと度数の関係については把握しきれていないので、ラジアンを度数に変換するソース等は、このことがきちんと把握できたら後日作るかもしれません。