daruma3940の日記

理解や文章に間違い等あればどんなことでもご指摘お願いします

Gutzwiller のトレース公式 について4

時代は変わった!!

どうしたのよ

AIを使うことでこれまで自力で導出できなかったGutzwillerのトレース公式をAI導出「させる」ことが出来るのではないか?

というわけでGutzwiller のトレース公式 についての続きを書いてゆこうと思うのじぇ daruma3940.hatenablog.com 使ってゆくのはGeminiなのじぇ また理解の怪しいところについては赤文字で書いているのじぇ。そこについては追って別の記事でそれがあっているのか調べようと思っているのじぇ。

でも全体の導出の流れとしては間違って無さそうだと思っているのじぇ。

ここまでの議論で分かっていることのまとめ

1. プロパゲーター $K(q'', q', t)$

$$K(q'', q', t) = \sum_{csl}
\sqrt{\frac{ (\pi \hbar)^N }{\det D} } \exp\left( \frac{i}{\hbar} S(q'', q', t)+ i\frac{\pi}{4} \sum_j sign(\lambda_j) \right)$$

(注)ここで今後の為にモース指数$\mu$を用いて数式を整理し直しておく。 負の固有値の数を$\mu$と置き、全体の固有値の数を $N$ とすると、

  • 正の固有値の数:$N - \mu$
  • 負の固有値の数:$\mu$

であり、固有値の符号 $\operatorname{sign}(\lambda_j)$ の総和は

$$\sum_j \operatorname{sign}(\lambda_j) = (N - \mu)(+1) + \mu(-1) = N - 2\mu$$

となる。よって

$$\exp\left( i\frac{\pi}{4} \sum_{j=1}^N \operatorname{sign}(\lambda_j) \right) = \exp\left( i\frac{\pi}{4} (N - 2\mu) \right) = \exp\left( i\frac{\pi}{4} N \right) \exp\left( -i\frac{\pi}{2} \mu \right)$$

ここで

$$\exp\left( i\frac{\pi}{4} N \right) = \left( e^{i\pi/4} \right)^N = \left( \sqrt{i} \right)^N = \sqrt{i^N}$$

を前因子のルートの中に入れると数式は次の形に整理できる。

$$K(q'', q', t) = \sum_{csl} \sqrt{\frac{ (i \pi \hbar)^N }{\det D} } \exp\left( \frac{i}{\hbar} S(q'', q', t) \right) \exp\left( -i\frac{\pi}{2} \mu \right)$$

2. 「量子物理学におけるカオス」という本に出てきたvan Vleck行列式を用いたプロパゲーター$K(q'', q', t)$

$$ K(q'', q', t) = \sum_{csl} \frac{1}{\sqrt{(2\pi i \hbar)^d}} \sqrt{ \left| -\frac{\partial^2 S}{\partial q'' \partial q'} \right| } \exp\left( \frac{i}{\hbar} S(q'', q', t) \right) \exp\left(- i\frac{\pi}{2} \mu \right)$$ (注)どのようにvan Vleck行列式を用いたプロパゲーターが出てくるのかは調べておきます...

3. ラプラス=フーリエ変換を用いてエネルギー表示にしたプロパゲーター$G(q'', q', E)$(グリーン関数)

$$ G(q'', q', E) = \frac{1}{i\hbar} \int_{0}^{\infty} K(q'', q', t) \exp\left(\frac{iEt}{\hbar}\right) dt $$

4. エネルギー密度はグリーン関数のトレースにより求められる。

$$ g(E) = \text{Tr}G(E) = \int dq G(q, q, E) $$ トレースを取るための始点と終点を一致させる $q'' = q' = q$ という条件と、空間積分における停留位相条件 $\partial W / \partial q = p'' - p' = 0$ が組み合わさり、積分に寄与するのは「位置も運動量も一致する閉じた軌道」、つまり古典的周期軌道(Periodic Orbits)のみとなる。

これらを用いてグリーン関数の積分を

  • 軌道の進行方向$ q_{\parallel} $(1次元)
  • 軌道に垂直な方向の座標$q_{\perp}$($d-1$次元)

に分けて実行することで最終的なGutzwillerのトレース公式が出てくると考えられる。 $$ \rho(E)_{osc} = \frac{1}{\pi\hbar} \sum_P \frac{T_P}{|\det(M_P-I)|^{1/2}} \cos\left(\frac{S_P}{\hbar} - \sigma_P \frac{\pi}{2}\right) $$

手順1 ラプラス=フーリエ変換を用いてエネルギー表示のグリーン関数$G(q'', q', E)$を求める

$$G(q'', q', E) = \frac{1}{i\hbar} \frac{1}{(2\pi i \hbar)^{d/2}} \int_{0}^{\infty} dt \, \sqrt{ \left| \det\left( -\frac{\partial^2 S}{\partial q'' \partial q'} \right) \right| } \exp\left( \frac{i}{\hbar} \Big[ S(q'', q', t) + Et \Big] - i\frac{\pi}{2} \mu \right)$$

手順2 指数の複素位相が激しく変化しない場所(停留点)を探す

$$\frac{\partial}{\partial t} \Big[ S(q'', q', t) + Et \Big] = 0 \implies \frac{\partial S}{\partial t} + E = 0$$ ハミルトン=ヤコビ方程式より $$ H+\frac{\partial S}{\partial t}=0 $$ であるので上の条件は、$H(q'', q', t) = E$ を意味する。 これは、無数にある軌道の時間 $t$ の中から、「始点 $q'$ から終点 $q''$ まで、ちょうどエネルギー $E$ を持って到達できる古典軌道の時間 $t = T(q'', q', E)$」 だけが選ばれることを示している。

手順3. 指数部を停留点$t=T$の周りで2次のテーラー展開

停留点 $t=T$ のまわりで位相を2次までテーラー展開する。変分原理によりSの1次微分はゼロになるので

$$S(t) + Et \approx \Big[ S(T) + ET \Big] + \frac{1}{2} \left( \frac{\partial^2 S}{\partial t^2} \right)_{t=T} (t - T)^2$$

となる。ここで、第1項の $S(T) + ET$ は、時間表示の作用 $S$ をエネルギー表示の作用(短縮作用、またはハミルトンの特性関数)$W(q'', q', E)$ へと写すルジャンドル変換そのものとなる。 $$W(q'', q', E) = S(q'', q', T) + ET$$これにより、指数部は $S(t)$ から $W(E)$ の関数へ変わり、変数が完全に$t$から$E$に移り変わったことになる。 2次展開の係数に現れる作用 $S$ の時間2階微分について考える。 ハミルトン=ヤコビ方程式より$\partial S/\partial t = -H$ であり、ハミルトニアンのエネルギー依存性(あるいはエネルギーの $t$ 微分)の関係から、以下の関係式が得られる。

$$\left( \frac{\partial^2 S}{\partial t^2} \right)_{t=T} = -\frac{\partial H}{\partial t} = -\frac{\partial E}{\partial T} = -\left( \frac{\partial T}{\partial E} \right)^{-1}$$

これらを手順1で求めたグリーン関数$G(q'', q', E)$に代入すると、時間積分は停留点 $t=T$ のまわりでのガウス積分へと帰着される。

$$\int_{0}^{\infty} dt \exp\left( \frac{i}{2\hbar} \left( \frac{\partial^2 S}{\partial t^2} \right)_{t=T} (t - T)^2 \right) = \int_{-\infty}^{\infty} d\tau \exp\left( -\frac{i}{2\hbar} \left( \frac{\partial T}{\partial E} \right)^{-1} \tau^2 \right)$$

この標準的なガウス積分の公式 $\int_{-\infty}^{\infty} e^{-ax^2} dx = \sqrt{\frac{\pi}{a}}$ を実行すると、前因子として $\sqrt{2\pi i \hbar (\partial T/\partial E)}$ が現れる。 このガウス積分から出てくる位相(符号)は、係数である $(\partial T/\partial E)^{-1}$ の正負、すなわち軌道の安定性や極値の性質に依存する。この時間積分によって新たに加わる位相の修正を $\nu$(追加のモース指数やマズロフ指数への寄与)としてまとめると、時間積分を実行した後のグリーン関数 $G(q'', q', E)$ は次のように書き下される。

$$G(q'', q', E) = \frac{1}{i\hbar} \frac{1}{(2\pi i \hbar)^{(d-1)/2}} \sum_{csl} \sqrt{ \left| \det\left( -\frac{\partial^2 S}{\partial q'' \partial q'} \right) \right| \cdot \left| \frac{\partial T}{\partial E} \right| } \exp\left( \frac{i}{\hbar} W(q'', q', E) - i\frac{\pi}{2} \mu' \right)$$

ここで $\mu'$ は、もともとのプロパゲーターが持っていたモース指数 $\mu$ に、時間積分によって生じた位相因子 $$ \exp\left( i \frac{\pi}{4} \operatorname{sign}(A) \right)$$

$$\left( \text{ここで } A = \left(\frac{\partial^2 S}{\partial t^2}\right)_{t=T} = -\left(\frac{\partial T}{\partial E}\right)^{-1} \right)$$がマージされた新たな指数である。

ここで時間表示の作用 $S(q'', q', t)$ に関する $(d \times d)$ の van Vleck 行列式と、エネルギー表示の短縮作用 $W(q'', q', E)$ に関する $ \left(d+1\right) \times \left(d+1\right) $ の行列式の間には、ルジャンドル変換の性質から次の関係式(恒等式)が成り立つことが知られている。(詳細は「補足1」参考) $$\det\left( -\frac{\partial^2 S}{\partial q'' \partial q'} \right) \cdot \left| \frac{\partial T}{\partial E} \right| = \det D_W$$

これを用いることで、エネルギー表示のグリーン関数は最終的に以下の形になる。

$$G(q'', q', E) = \frac{1}{i\hbar} \frac{1}{(2\pi i \hbar)^{(d-1)/2}} \sum_{csl} \sqrt{ |\det D_W| } \exp\left( \frac{i}{\hbar} W(q'', q', E) - i\frac{\pi}{2} \mu' \right)$$

手順4 エネルギー密度 $g(E)$ を求めるためのトレース(空間積分)の実行

エネルギー密度(状態密度) $g(E)$ は、求まったグリーン関数のトレース(対角成分の和)を取ることで得られる。$$g(E) = \text{Tr} G(E) = \int dq \, G(q, q, E)$$

の積分を実行するために、始点と終点を一致させる条件 $q'' = q' = q$ を課す。 これにより、指数部の短縮作用は $W(q, q, E)$ となる。この空間積分 $\int dq$ に対しても、再び停留位相近似(Stationary Phase Approximation)を適用する。積分がキャンセルされずに生き残るための停留条件は、$$\frac{\partial W(q, q, E)}{\partial q} = 0$$である。 ここでの目標は、空間積分 $\int dq \, G(q, q, E)$ を実行するにあたり、座標系を「軌道に沿った方向(平行方向)」と「軌道に垂直な方向」に分離し、垂直方向のガウス積分から古典力学のカオス度(安定性)を表すモノドロミー行列 $M_P$ を引っ張り出すこととなる。

4.1. 座標系を軌道に局所的な自然座標系へと変換する

周期軌道 $P$ 上の各点において、座標 $q = (q_1, \dots, q_d)$ を次のような局所座標系(流線座標系) $(s, x)$ に変換する。

  • $s$ (1次元):軌道の進行方向に沿ったアーク長(平行方向)。

  • $x$ ($d-1$ 次元):軌道に垂直な超平面上の座標(垂直方向)。

この座標変換によりトレースの空間積分は次のように分解されることとなる。$$\int dq \dots = \int_0^{L_P} ds \int dx \dots$$ここで $L_P$ は周期軌道の幾何学的な長さであり、始点と終点を一致させる条件 $q'' = q' = q$ は、この局所座標では $s'' = s' = s$ および $x'' = x' = x$ となる。

4.2. 短縮作用 $W(q'', q', E)$ の2次展開(垂直方向)

垂直方向の積分 $\int dx$ を停留位相近似で実行するため、短縮作用 $W(s, x'', s, x'; E)$ を、周期軌道($x'' = x' = 0$)のまわりで $x''$ と $x'$ について2次までテーラー展開します。周期軌道上では、垂直方向の1次微分(傾き)はゼロになる(変分原理より)ため、展開は以下のようになる。 $$W(s, x'', s, x'; E) \approx W_P(E) + \frac{1}{2} \begin{pmatrix} x'' & x' \end{pmatrix} \begin{pmatrix} \frac{\partial^2 W}{\partial x''^2} & \frac{\partial^2 W}{\partial x'' \partial x'} \ \frac{\partial^2 W}{\partial x' \partial x''} & \frac{\partial^2 W}{\partial x'^2} \end{pmatrix} \begin{pmatrix} x'' \ x' \end{pmatrix}$$

ここで、トレース条件 $x'' = x' = x$ を課すと、左から $\begin{pmatrix} x & x \end{pmatrix}$ 、右から $\begin{pmatrix} x \ x \end{pmatrix}$ を掛けることになるため、中の $(d-1) \times (d-1)$ 行列の全成分の総和が $H_W(s)$ になる。 $$W(s, x, s, x; E) \approx W_P(E) + \frac{1}{2} x \cdot H_W(s) x$$

$$H_W(s) = \left( \frac{\partial^2 W}{\partial x''^2} + \frac{\partial^2 W}{\partial x'' \partial x'} + \frac{\partial^2 W}{\partial x' \partial x''} + \frac{\partial^2 W}{\partial x'^2} \right)_{x''=x'=0}$$

4.3. モノドロミー行列 $M_P$ の導入

前因子にあるエネルギー表示の van Vleck 行列式 $\det D_W$ と、今出てきた展開係数行列 $H_W(s)$ を結びつけるために、ハミルトン力学のヤコビ方程式(線形化された古典軌道安定性)を使う。

周期軌道のまわりの微小なズレ(垂直方向の位置 $\delta x$ と運動量 $\delta p_x$)が、軌道を1周(時間 $T_P$)したときにどう変化するかを表す線形変換行列をモノドロミー行列 $M_P$ と呼ぶ。

$$\begin{pmatrix} \delta x(T_P) \ \delta p_x(T_P) \end{pmatrix} = M_P \begin{pmatrix} \delta x(0) \ \delta p_x(0) \end{pmatrix} = \begin{pmatrix} A & B \ C & D \end{pmatrix} \begin{pmatrix} \delta x(0) \ \delta p_x(0) \end{pmatrix}$$

このマトリクス成分 $(A, B, C, D)$ は $W$ の2階微分行列とダイレクトに対応する。

行列代数の計算(ハミルトン・ヤコビの枠組みでの変形)を挟むことで、前因子の行列式と指数部の2次微分の間に次の恒等式が成り立つことが導かれるらしいです。(補足2参照)

$$\frac{|\det D_{W\perp}|}{|\det H_W(s)|} = \frac{1}{|\det(M_P - I)|}$$

※ $I$ は $(2d-2) \times (2d-2)$ の単位行列

4.4. 進行方向に垂直方向のガウス積分を実行する

ここまでの準備から進行方向の多次元ガウス積分は以下のようになる。

$$\int d^{d-1}x \exp\left( \frac{i}{2\hbar} x \cdot H_W(s) x \right) = \frac{(2\pi i \hbar)^{(d-1)/2}}{\sqrt{|\det H_W(s)|}} \exp\left( -i\frac{\pi}{2} \sigma_{\perp} \right)$$

(※ここでも符号の帳尻合わせとして、垂直方向の焦点の数に応じた位相修正 $\sigma_{\perp}$ が発生する)

これをグリーン関数の式に代入すると、分母の $\sqrt{|\det H_W(s)|}$ と前因子の $\sqrt{|\det D_{W\perp}|}$ が組み合わさり、ステップ3の恒等式によって $|\det(M_P - I)|^{-1/2}$ が弾き出されることとなる。さらに、$(2\pi i \hbar)^{(d-1)/2}$ が前因子と綺麗に相殺する。

結果として、垂直方向の積分を終えた段階で、式は以下のようになる。 $$g(E) = \frac{1}{i\hbar} \sum_P \int_0^{L_P} \frac{ds}{v(s)} \frac{1}{|\det(M_P - I)|^{1/2}} \exp\left( \frac{i}{\hbar} W_P(E) - i\frac{\pi}{2} \sigma' \right)$$

ここで上式に出てくる$v(s)$について、行列式 $\det D_W$ は、進行方向の速度の成分と、垂直方向の行列式 $\det D_{W\perp}$ に次のように綺麗に分解(因数分解のようなもの)ができます。(補足3参照)

$$\det D_W = \frac{1}{v(s'') v(s')} \cdot \det D_{W\perp}$$ トレースを取るために始点と終点を同じ場所 $s'' = s' = s$ にすると、速度の積は $v(s) \times v(s) = v(s)2$ になる。

これを平方根の中から外に出すと、次のようになる。

$$\sqrt{ |\det D_W| } = \sqrt{ \frac{1}{v(s)^2} \det D_{W_{\perp}} } = \frac{1}{v(s)} \sqrt{ |\det D_{W_{\perp}}| }$$

4.5. 進行方向の積分を実行する

分母に $\frac{1}{v(s)}$ が残った状態で、最後に残された $s$ の積分(軌道1周分の積分)を計算する。

被積分関数のうち、モノドロミー行列 $M_P$ も、作用 $W_P(E)$ も、「軌道を1周したときのもの」なので、場所 $s$ には依存しない定数であるため、積分の外に出すことができる。

結果として、積分記号の内側には $\frac{1}{v(s)}$ だけが取り残される。

$$\int_0^{L_P} \frac{1}{v(s)} ds$$

速度の定義は 「(微小距離 $ds$)÷(微小時間 $dt$)」 なので、$v(s) = \frac{ds}{dt}$ 。これを変形すると、

$$\frac{ds}{v(s)} = dt$$

となる。

つまり、「微小距離をそのときの速度で割ったもの($\frac{ds}{v(s)}$)」とは、まさに「その微小距離を進むのにかかった微小時間($dt$)」そのものとなる。

したがって、軌道の全周 $L_P$ にわたってこれを足し合わせる(積分する)ということは、微小時間を最初から最後まで全部足し合わせるということになり、最終的に「軌道を1周するのにかかった全時間(周期 $T_P$)」になる。

$$\int_0^{L_P} \frac{ds}{v(s)} = \int_0^{T_P} dt = T_P$$

最終結果

これで、グッツヴィラーの跡公式が求まることとなった。

$$g(E) = \frac{1}{i\hbar} \sum_P \frac{T_p}{|\det(M_P - I)|^{1/2}} \exp\left( \frac{i}{\hbar} W_P(E) - i\frac{\pi}{2} \sigma' \right)$$ ここからさらに量子力学において、真の物理量である状態密度(エネルギー密度) $\rho(E)$ は、グリーン関数のトレースの虚数部を取ることで得られるという関係式があるため、 $$\rho(E) = -\frac{1}{\pi} \operatorname{Im} \text{Tr} G(E)$$ であり、 $$\operatorname{Im}{ i (\cos\theta + i\sin\theta) } = \operatorname{Im}{ i\cos\theta - \sin\theta } = \cos\theta$$ 上のオイラーの公式を用いることにより、 $$\rho(E) = \frac{1}{\pi\hbar} \sum_P \frac{T_P}{|\det(M_P - I)|^{1/2}} \cos\left( \frac{W_P(E)}{\hbar} - \sigma' \frac{\pi}{2} \right)$$ のようにエネルギー密度はGutzwillerのトレース公式から導かれることとなる。

「補足1」 手順3に出てきた$\left|\det\left( -\frac{\partial^2 S}{\partial q'' \partial q'} \right) \right| \cdot \left| \frac{\partial T}{\partial E} \right| = \left| \det D_W\right|$を示す。

以下の行列式の公式を認めることとする。

$$ \det \begin{pmatrix} A & B \ C & d \end{pmatrix} = \det(A - B d^{-1} C) \cdot d $$

この行列式の公式にはシューア補空間の行列式公式という名前がついているらしい。 ここで

$$ D_W = \begin{pmatrix} -\frac{\partial^2 W}{\partial q'' \partial q'} & -\frac{\partial^2 W}{\partial q'' \partial E} \ -\frac{\partial^2 W}{\partial E \partial q'} & -\frac{\partial^2 W}{\partial E^2} \end{pmatrix} $$

であり$\frac{\partial W}{\partial E} = T$を用いることで

  • $A = -\frac{\partial^2 W}{\partial q'' \partial q'}$ ( $d \times d$ 行列)
  • $B = -\frac{\partial T}{\partial q''}$ ( $d \times 1$ 列ベクトル)
  • $C = -\frac{\partial T}{\partial q'}$ ( $1 \times d$ 行行ベクトル)
  • $d = -\frac{\partial T}{\partial E}$ (スカラー)

であり、これをシューア補空間の行列式公式に代入すると、以下のようになり

$$ \det D_W = \det \left[ -\frac{\partial^2 W}{\partial q'' \partial q'} - \left(-\frac{\partial T}{\partial q''}\right) \left(-\frac{\partial T}{\partial E}\right)^{-1} \left(-\frac{\partial T}{\partial q'}\right) \right] \cdot \left( -\frac{\partial T}{\partial E} \right) $$

括弧の中のマイナス符号を整理すると以下のようになる。

$$ \det D_W = \det \left[ -\frac{\partial^2 W}{\partial q'' \partial q'} + \frac{\partial T}{\partial q''} \left(\frac{\partial T}{\partial E}\right)^{-1} \frac{\partial T}{\partial q'} \right] \cdot \left( -\frac{\partial T}{\partial E} \right) $$

ここで$W(q'', q', E) = S(q'', q', T(q'', q', E)) + ET(q'', q', E)$なので

一階微分は以下のようになる。 $$\frac{\partial W}{\partial q'} = \left( \frac{\partial S}{\partial q'} \right)_{q'', T} + \left( \frac{\partial S}{\partial T} \right)_{q'', q'} \frac{\partial T}{\partial q'} + E \frac{\partial T}{\partial q'}$$

ここで、右辺の第2項と第3項を $\frac{\partial T}{\partial q'}$ でくくってみると

$$\frac{\partial W}{\partial q'} = \left( \frac{\partial S}{\partial q'} \right)_{q'', T} + \underbrace{\left[ \left( \frac{\partial S}{\partial T} \right)_{q'', q'} + E \right]}_{ハミルトン・ヤコビの等式でゼロになる} \frac{\partial T}{\partial q'}$$

なので$q'$についての一階微分は以下のようになる。 $$\frac{\partial W}{\partial q'} = \left( \frac{\partial S}{\partial q'} \right)_{q'', T}$$

同じように計算することで各変数に関する1階微分は以下のようになる。

  • $\frac{\partial W}{\partial E} = T$
  • $\frac{\partial S}{\partial q'} = \frac{\partial W}{\partial q'}$
  • $\frac{\partial S}{\partial q''} = \frac{\partial W}{\partial q''}$

次は2階微分の関係式を計算してゆくことにする。 $T = T(q'', q', E)$ であることを意識して、 $\frac{\partial W}{\partial q'}$ を $q''$ で微分する。

$$ \frac{\partial^2 W}{\partial q'' \partial q'} = \frac{\partial}{\partial q''}\left( \frac{\partial S(q'', q', T(q'', q', E))}{\partial q'} \right) = \frac{\partial^2 S}{\partial q'' \partial q'} + \frac{\partial^2 S}{\partial T \partial q'} \frac{\partial T}{\partial q''} $$

ここで、 $\frac{\partial S}{\partial T} = -E$ の両辺を $q''$ で微分すると( $E$ は固定なので左辺の全微分は $0$ )、

$$ \frac{\partial^2 S}{\partial q'' \partial T} + \frac{\partial^2 S}{\partial T^2}\frac{\partial T}{\partial q''} = 0 \implies \frac{\partial T}{\partial q''} = - \left(\frac{\partial^2 S}{\partial T^2}\right)^{-1} \frac{\partial^2 S}{\partial q'' \partial T} $$

となる

また、 $\frac{\partial W}{\partial E} = T$ より、両辺を $E$ で微分すると、

$$ \frac{\partial^2 W}{\partial E^2} = \frac{\partial T}{\partial E} = - \left(\frac{\partial^2 S}{\partial T^2}\right)^{-1} $$

が得られます。これらの関係をシューア補空間の行列式公式に入れてゆき、数式を変形してゆく

$$ \det D_W = \det \left[ -\frac{\partial^2 W}{\partial q'' \partial q'} + \frac{\partial T}{\partial q''} \left(\frac{\partial T}{\partial E}\right)^{-1} \frac{\partial T}{\partial q'} \right] \cdot \left( -\frac{\partial T}{\partial E} \right) $$

すると最初のdetの中身は以下のようになる。 $$ -\frac{\partial^2 W}{\partial q'' \partial q'} + \frac{\partial T}{\partial q''} \left(\frac{\partial T}{\partial E}\right)^{-1} \frac{\partial T}{\partial q'} = -\left( \frac{\partial^2 S}{\partial q'' \partial q'} + \frac{\partial^2 S}{\partial T \partial q'} \frac{\partial T}{\partial q''} \right) + \frac{\partial T}{\partial q''} \frac{\partial^2 S}{\partial q' \partial T} = -\frac{\partial^2 S}{\partial q'' \partial q'} $$

したがって、行列式は次のようになる。

$$ \det D_W = \det \left( -\frac{\partial^2 S}{\partial q'' \partial q'} \right) \cdot \left( -\frac{\partial T}{\partial E} \right) $$ 両辺の絶対値を取れば、目的の式が導かれることになる。

$$\left| \det\left( -\frac{\partial^2 S}{\partial q'' \partial q'} \right) \right| \cdot \left| \frac{\partial T}{\partial E} \right| = \left|\det D_W \right| $$

「補足2」 $\frac{|\det D_{W\perp}|}{|\det H_W(s)|} = \frac{1}{|\det(M_P - I)|}$を示す

垂直方向の自由度(次元)を $n = d - 1$ と置く。ここでの目標は、垂直方向の短縮作用 $W(x'', x')$ の2階微分行列と、ポアンカレ断面上の線形写像であるモノドロミー行列 $M_P$ との関係を明らかにし、指定された恒等式を導出する。

$$\begin{pmatrix} \delta x(T_P) \ \delta p_x(T_P) \end{pmatrix} = M_P \begin{pmatrix} \delta x(0) \ \delta p_x(0) \end{pmatrix} = \begin{pmatrix} A & B \ C & D \end{pmatrix} \begin{pmatrix} \delta x(0) \ \delta p_x(0) \end{pmatrix}$$

短縮のため$W(x'', x')$ の垂直方向の2階微分からなる $n \times n$ のブロック行列を次のように書くことにする。

$$W_{11} = \frac{\partial^2 W}{\partial x' \partial x'}, \quad W_{12} = \frac{\partial^2 W}{\partial x' \partial x''}$$

$$W_{21} = \frac{\partial^2 W}{\partial x'' \partial x'}, \quad W_{22} = \frac{\partial^2 W}{\partial x'' \partial x''}$$

前因子の垂直方向の van Vleck 行列式 $D_{W\perp}$ と、作用のテーラー展開から出てきたヘッシアン $H_W(s)$ は、これらのブロック行列を用いて次のように書ける。

  • $D_{W\perp} = \det\left(-\frac{\partial^2 W}{\partial x'' \partial x'}\right) = \det(-W_{21}) = \det(-W_{12})$
  • $H_W = W_{11} + W_{12} + W_{21} + W_{22}$

このとき、運動量 $p'$ と $p''$ は以下のようになる。

$$p' = -\frac{\partial W}{\partial x'}, \quad p'' = \frac{\partial W}{\partial x''}$$

軌道のまわりの微小な変位 $(\delta x, \delta p)$ を考えると、全微分から以下の関係式が得られる。

$$\delta p' = -W_{11} \delta x' - W_{12} \delta x''$$ $$\delta p'' = W_{21} \delta x' + W_{22} \delta x''$$

モノドロミー行列 $M_P$ は、始点の微小変位 $(\delta x', \delta p')$ を終点の微小変位 $(\delta x'', \delta p'')$ へと写す $2n \times 2n$ の行列である。

今回求めたいのは $\det(M_P - I)$ であり、行列 $(M_P - I)$ は、始点の変位ベクトルに作用して「始点と終点の差分」を出力する演算子として機能する。

差分を $\Delta x = \delta x'' - \delta x'$、$\Delta p = \delta p'' - \delta p'$ と置くと、

$$\begin{pmatrix} \Delta x \ \Delta p \end{pmatrix} = (M_P - I) \begin{pmatrix} \delta x' \ \delta p' \end{pmatrix}$$

という関係になる。この $(M_P - I)$ を $n \times n$ のブロック行列 $\begin{pmatrix} A & B \ C & D \end{pmatrix}$ として、成分を $W_{ij}$ で表してゆく。

【AとBの導出:$\Delta x$ について】

$\delta p'$ の式を変形して $\delta x''$ を求める。

$$-W_{12} \delta x'' = \delta p' + W_{11} \delta x' \implies \delta x'' = -W_{12}^{-1} \delta p' - W_{12}^{-1} W_{11} \delta x'$$

両辺から $\delta x'$ を引いて $\Delta x$ を作る。

$$\Delta x = \delta x'' - \delta x' = -(I + W_{12}^{-1} W_{11}) \delta x' - W_{12}^{-1} \delta p'$$

これにより、上段のブロックが求まる。

$$A = -(I + W_{12}^{-1} W_{11}), \quad B = -W_{12}^{-1}$$

【CとDの導出:$\Delta p$ について】

次に $\Delta p = \delta p'' - \delta p'$ を計算する。Step 2 での2つの式を引き算する。

$$\Delta p = (W_{21} \delta x' + W_{22} \delta x'') - (-W_{11} \delta x' - W_{12} \delta x'')$$ $$\Delta p = (W_{11} + W_{21}) \delta x' + (W_{12} + W_{22}) \delta x''$$

ここで $\delta x'' = \delta x' + \Delta x$ を代入する。

$$\Delta p = (W_{11} + W_{21}) \delta x' + (W_{12} + W_{22}) (\delta x' + \Delta x)$$ $$\Delta p = (W_{11} + W_{12} + W_{21} + W_{22}) \delta x' + (W_{12} + W_{22}) \Delta x$$

括弧の中身はまさに $H_W$ となる。

$$\Delta p = H_W \delta x' + (W_{12} + W_{22}) \Delta x$$

この $\Delta x$ に、先ほど求めた $\Delta x = A \delta x' + B \delta p'$ を代入する。

$$\Delta p = H_W \delta x' + (W_{12} + W_{22}) (A \delta x' + B \delta p')$$ $$\Delta p = [H_W + (W_{12} + W_{22})A] \delta x' + [(W_{12} + W_{22})B] \delta p'$$

これにより、下段のブロックが求まることになる。

$$C = H_W + (W_{12} + W_{22})A, \quad D = (W_{12} + W_{22})B$$

ブロック行列の行列式公式の適用

これで $(M_P - I) = \begin{pmatrix} A & B \ C & D \end{pmatrix}$ のすべてのブロックが揃ったので一般的なブロック行列の行列式公式を認め、それを利用する($B$ が正則である前提)。

$$\det \begin{pmatrix} A & B \ C & D \end{pmatrix} = \det(B) \cdot \det(C - D B^{-1} A) \cdot (-1)^n$$

この公式の要となる $(C - D B^{-1} A)$ の部分を計算する。先ほど求めた $C$ と $D$ を代入すると、綺麗に相殺が起こる。

$$C - D B^{-1} A = [H_W + (W_{12} + W_{22})A] - [(W_{12} + W_{22})B] B^{-1} A$$ $$= H_W + (W_{12} + W_{22})A - (W_{12} + W_{22})A$$ $$= H_W$$

したがって、行列式は以下のようになる。

$$\det(M_P - I) = (-1)^n \cdot \det(B) \cdot \det(H_W)$$

結論

$B = -W_{12}^{-1}$ であったことを思い出し、両辺の絶対値を取る(絶対値を取ることで符号因子 $(-1)^n$ や逆行列のマイナスはすべて消去される)。

$$|\det(M_P - I)| = |\det(-W_{12}^{-1})| \cdot |\det(H_W)|$$ $$|\det(M_P - I)| = \frac{|\det H_W|}{|\det W_{12}|}$$

Step 1で確認した通り、$D{W\perp} = \det(-W_{12})$ であるため、$|\det D{W\perp}| = |\det W_{12}|$ となる。これを代入すると、

$$|\det(M_P - I)| = \frac{|\det H_W(s)|}{|\det D_{W\perp}|}$$

最後に両辺の逆数を取れば、目的の恒等式が導かれる。

$$\frac{|\det D_{W\perp}|}{|\det H_W(s)|} = \frac{1}{|\det(M_P - I)|}$$

「補足3」$\det D_W = \frac{1}{v(s'') v(s')} \cdot \det D_{W\perp}$の導出

エネルギー表示のプロパゲーターにおける前因子の中身となる行列 $D_W$ は、空間座標 $q$ とエネルギー $E$ からなる $(d+1) \times (d+1)$ の拡張された行列である。

この行列式の構造を、進行方向 $s$(1次元)と垂直方向 $x$($d-1$次元)に分けて読み解くことで、目的の式を導出することにする。

1. 自然座標系における行列 $D_W$ のブロック展開

始点を $q' = (s', x')$、終点を $q'' = (s'', x'')$ とします。この座標系を用いると、行列 $D_W$ は $(s, x, E)$ の各変数に対する微分として、次のようなブロック行列に展開出来る。

$$D_W = \begin{pmatrix} -\frac{\partial^2 W}{\partial s'' \partial s'} & -\frac{\partial^2 W}{\partial s'' \partial x'} & -\frac{\partial^2 W}{\partial s'' \partial E} \ -\frac{\partial^2 W}{\partial x'' \partial s'} & -\frac{\partial^2 W}{\partial x'' \partial x'} & -\frac{\partial^2 W}{\partial x'' \partial E} \ -\frac{\partial^2 W}{\partial E \partial s'} & -\frac{\partial^2 W}{\partial E \partial x'} & -\frac{\partial^2 W}{\partial E^2} \end{pmatrix}$$

ここで、真ん中のブロック $-\frac{\partial^2 W}{\partial x'' \partial x'}$ が、垂直方向の行列 $D_{W\perp}$ (サイズは $d-1 \times d-1$)に相当する。

2. 周期軌道上での「非対角ブロック」の消失

この行列を、古典軌道上(つまり $x'' = x' = 0$)で評価することにする。

短縮作用 $W$ の微分は運動量を生成するため、垂直方向の運動量について以下の関係が成り立つ。

$$p_x'' = \frac{\partial W}{\partial x''}, \quad p_x' = -\frac{\partial W}{\partial x'}$$

古典軌道上では、粒子は常に軌道に沿って進むため、垂直方向の運動量は常にゼロ($p_x'' = 0, p_x' = 0$)でありしかもこれは、始点 $s'$ や終点 $s''$ の位置、およびエネルギー $E$ に関係なく常に成り立つ。

したがって、これらを $s$ や $E$ で微分したものはすべてゼロになることになる。

  • $\frac{\partial^2 W}{\partial s'' \partial x'} = -\frac{\partial p_x'}{\partial s''} = 0$
  • $\frac{\partial^2 W}{\partial x'' \partial s'} = \frac{\partial p_x''}{\partial s'} = 0$
  • $\frac{\partial^2 W}{\partial E \partial x'} = -\frac{\partial p_x'}{\partial E} = 0$
  • $\frac{\partial^2 W}{\partial x'' \partial E} = \frac{\partial p_x''}{\partial E} = 0$

これにより、$x$ に関する微分と $(s, E)$ に関する微分が完全に分離し、行列 $D_W$ は以下のようなシンプルな形になる。

$$D_W = \begin{pmatrix} -\frac{\partial^2 W}{\partial s'' \partial s'} & 0 & -\frac{\partial^2 W}{\partial s'' \partial E} \ 0 & D_{W\perp} & 0 \ -\frac{\partial^2 W}{\partial E \partial s'} & 0 & -\frac{\partial^2 W}{\partial E^2} \end{pmatrix}$$

3. $(s, E)$ に関する $2 \times 2$ 行列の計算

$x$ のブロックが独立したため、全体の行列式は次のように分解可能になる。

$$\det D_W = \det D_{W\perp} \cdot \det \begin{pmatrix} -\frac{\partial^2 W}{\partial s'' \partial s'} & -\frac{\partial^2 W}{\partial s'' \partial E} \ -\frac{\partial^2 W}{\partial E \partial s'} & -\frac{\partial^2 W}{\partial E^2} \end{pmatrix}$$

この残された $2 \times 2$ のブロック行列の各成分を計算する。軌道方向の運動量を $p_s$、軌道に沿った到達時間を $T$ とすると、

$\frac{\partial W}{\partial s''} = p_s'', \quad \frac{\partial W}{\partial s'} = -p_s', \quad \frac{\partial W}{\partial E} = T$ となる。

1. 左上成分 $\left(-\frac{\partial2 W}{\partial s'' \partial s'}\right)$:

$$-\frac{\partial^2 W}{\partial s'' \partial s'} = -\frac{\partial p_s''}{\partial s'}$$

軌道上の運動量 $p_s''$ は、その地点のエネルギー $E$ とポテンシャルだけで決まり($p_s = \sqrt{2m(E - V(s))}$)、始点 $s'$ には依存しない。したがって、この微分は $0$ になる。

2. 右上成分 $\left(-\frac{\partial^2 W}{\partial s'' \partial E}\right)$:

$$-\frac{\partial^2 W}{\partial s'' \partial E} = -\frac{\partial p_s''}{\partial E}$$

ハミルトニアン $H(s, p_s) = E$ を $E$ で微分すると $\frac{\partial H}{\partial p_s} \frac{\partial p_s}{\partial E} = 1$ となる。速度 $v= \dot{s} = \frac{\partial H}{\partial p_s}$ なので、$\frac{\partial p_s}{\partial E} = \frac{1}{v}$ となる。

よって、この成分は $-\frac{1}{v(s'')}$ となる。

3. 左下成分  $\left(-\frac{\partial^2 W}{\partial E \partial s'}\right)$  

$$-\frac{\partial^2 W}{\partial E \partial s'} = -\frac{\partial T}{\partial s'}$$ 到達時間は $T = \int_{s'}^{s''} \frac{ds}{v(s)}$である 。これを下端の始点 $s'$ で微分すると、マイナスがつくため $\frac{\partial T}{\partial s'} = -\frac{1}{v(s')}$ となる。よって、この成分は $-\left(-\frac{1}{v(s')}\right) =$ $\frac{1}{v(s')}$ となる。

これらを $2 \times 2$ 行列に代入する。(右下成分は $\det$ 計算時にゼロと掛けられるため計算不要)

$$\begin{pmatrix} 0 & -\frac{1}{v(s'')} \ \frac{1}{v(s')} & -\frac{\partial^2 W}{\partial E^2} \end{pmatrix}$$

結論

この $2 \times 2$ 行列の行列式を計算する。

$$\det \begin{pmatrix} 0 & -\frac{1}{v(s'')} \ \frac{1}{v(s')} & -\frac{\partial^2 W}{\partial E^2} \end{pmatrix} = 0 - \left( -\frac{1}{v(s'')} \right) \cdot \left( \frac{1}{v(s')} \right) = \frac{1}{v(s'') v(s')}$$

これをステップ3で導いた式に代入することで、目的の等式が証明された。

$$\det D_W = \frac{1}{v(s'') v(s')} \cdot \det D_{W_{\perp}}$$

というわけで証明が出来たのじぇ。 他の人の証明を読んでみると同じようなことをしていたので大きくは間違ってはいないはずなのじぇ。

超可積分系とは

可積分とは

独立な保存量が系の自由度と同じだけあり、解析的に問題を解けるときこの系を可積分系と呼びます。

超可積分系とは

独立な保存量の数が系の自由度以上ある場合、これを超可積分系と呼びます。 独立な保存量の数は系の自由度を$n$としたとき最大$2n-1$個まで保存量が存在します。

超可積分系であれば解析的に方程式を解かなくとも、保存量の関係式だけから軌道の形状を求めることが出来ます。 ケプラー問題の例を見てみましょう。

超可積分系の例 ケプラー問題

ケプラー問題とは万有引力の下での惑星の運動を求める問題です。

運動についての保存量としては

  • 全エネルギー(運動エネルギー+位置エネルギー)

$$ H=L_1 =\frac12(p_1^2+p_2^2)-\frac{\alpha}{\sqrt{q_1^2+q_2^2}} $$

  • 角運動量(回転の勢い)

$$ L_2 = q_1p_2 - q_2p_1 $$ が有名なのですが、それだけではなく、ラプラス=ルンゲ=レンツベクトルという保存量も存在しています。 $$ \vec{e} = (L_3,L_4) = \left( L_2 p_2 -\frac{\alpha q_1}{\sqrt{q_1^2+q_2^2}} , -L_2p_1 -\frac{\alpha q_2}{\sqrt{q_1^2+q_2^2}} \right) $$ これは$ {H,L_3 } = {H,L_4 }=0$を満たすことにより確かに保存量であることが確認できます。これで保存量は4つとなりますが $$ \vec{e} \cdot \vec{e} =L_3 ^2+L_4 ^2 =2H L_2 ^2+ \alpha ^2 $$ の制約があるため、独立した保存量は3つとなります。もともと可積分系では系の運動はトーラス上に制限されますが、このラプラス=ルンゲ=レンツベクトルの存在によりさらに系の運動は制限を受けることになります。

では系の運動を具体的に計算してゆきます。明らかにニュートンの運動方程式$\ddot{q} =\alpha q/(q \cdot q)^{3/2}$を解くことで系の軌道は解析的に計算可能なのですが、今回は超可積分であることを利用して保存量だけから軌道を求めます。 ここで角運動量$L_2=l$、エネルギー$H=E$とします。 ラプラス=ルンゲ=レンツベクトルの$L_3$が$q_1$座標の正の方向を向くように座標を選択しなおします。 この時$L_4=0$,$L_3=e_1>0$と置くと、$e_1 ^2=2l ^2 E + \alpha ^2$となります。ラプラス=ルンゲ=レンツベクトルの各成分より、 $$ (e_1,0) = \left( l p_2 -\frac{\alpha q_1}{r} , -lp_1 -\frac{\alpha q_2}{r} \right) $$ となり、この式から$p_1$,$p_2$を$q_1$と$q_2$を用いて表現することが出来ます。ここで得られた$p_1$,$p_2$の式を角運動量$L_2$の式に代入することにより以下の式が得られます。

$$ l =\frac{q_1e_1}{l}+\frac{\alpha q_1 ^2}{lr}+\frac{\alpha q_2 ^2}{lr} = \frac{q_1e_1}{l}+\frac{\alpha\sqrt{q_1 ^2+q_2 ^2}}{l} $$ この式を変形することで $$ \left(1-\frac{e_1 ^2}{\alpha ^2}\right)q_1 ^2 +\frac{2l ^2e_1}{\alpha ^2}q_1+q_2 ^2=\frac{l ^4}{\alpha ^2} $$ となります。$A \equiv 1-\frac{e_1 ^2}{\alpha ^2}$とし平方完成すると以下の二次曲線型の数式となります。 $$ A( q_1 + \frac{l ^2 e_1}{\alpha ^2 A} ) ^2 + q_2 ^2 = const. $$

これにより運動方程式を解かなくとも、保存量からケプラー問題の解は二次曲線型となるという結果を導くことが出来ました。

さて連続的な保存量「ラプラス=ルンゲ=レンツベクトル」が存在するということはそれに対応する対称性も存在するのではないかと思いますがその対称性についての話は別の記事で行いたいと思います。

参考文献

Miller, W., Post, S., Winternitz, P.,
「Classical and quantum superintegrability with applications」,
Journal of Physics A: Mathematical and Theoretical 46(42), 423001 (2013).
https://doi.org/10.1088/1751-8113/46/42/423001 (arXiv版)https://arxiv.org/abs/1309.2694

変分原理について

光はどのようなルートを通るのか(フェルマーの原理

フェルマーの原理とは

光は、到達時間が停留値になる経路を通る

という主張をしている原理です。詳しく見てゆきましょう。光の到達時間について考えるために光の進みにくさを表す関数$n(x)$を定義します。

$$ n(x) \equiv \frac{c}{v(x)} $$

ここで$v(x)$は物質を通り抜ける際の光の速度で、$c$が真空における光の速度です。この$n(x)$は真空に対して光が進みにくいかを表す関数であり今後$n(x)$を「屈折率」と呼ぶことにします。この進みにくさ$n(x)$を加味したうえで、光がある点Pから点Qまで通り抜けるの感じる距離は $$ L_{op}=\int_{P}^{Q} n(x) dl $$ と表現されます。「真空中でどれだけの距離を進んだのと同じ効果を持つか」と言い換えても良いかもしれません。光はこの値$L_{op}$が停留値つまり一階変分がゼロになるようなルートを通るということが分かっています。 $$ \delta L_{op} = \delta \int n(x) dl =0 $$

屈折率を変えた時の最短航路シミュレーションがあります。 これを見ると光は移動距離が極小となるような道筋を取るということがどういうことかはわかると思います。

また注意すべきこととしては極小だけではなく、光路長が極大となるようなルートも可能であるということを忘れてはいけません。$L_{op}$の関数形状が谷であろうが山であろうが鞍点であろうがそのような光の経路は許されます。とはいえ、$L_{op}$ の関数形状は一般に谷状の下に凸な関数形状であり、極大や鞍点というのはなかなか出てこないようです。(極大や鞍点というのはなかなか出てこないのになぜ極小ではなく停留値だということが分かったのか?謎ですね。極大や鞍点となるような光の経路はどのように見えるのか?これを調べるのは今後の課題とさせてください。

力学にもフェルマーの原理は存在するのか(変分原理)

それでは物体の運動もフェルマーの原理のように「なんらかの値」の停留値を取るように運動しているのでしょうか?この場合の光路長に対応するものは何なのでしょうか?? 「光路長$L_{op}$」は力学において「作用$S$」と呼ばれる量に対応します。「作用」が停留値を取るように物体は運動するということが先人たちにより判明しています。これを「変分原理」と呼びます。 $$ \delta S =0 $$ では「作用」とは何なのでしょうか。作用は「ラグランジアン」の時間積分です。 $$ S= \int L dt $$ じゃあラグランジアンってのは何なんだよ。ここが今回の話の肝です。古典力学においてラグランジアンは運動エネルギー$T$ ,位置エネルギー$V$を用いて $$ L = T-V $$ と表現されます。ここから先は「変分原理」をニュートンの運動方程式、シュレーディンガー方程式、マクスウェル方程式のバックグラウンドにある共通した原理だと考え、運動エネルギー$T$や位置エネルギー$V$の具体的な形を代入してみたり、場合によっては別の項をラグランジアンに加えたりしながら、そこから基礎方程式が本当に導かれるのかを確認していきます。 なお、ここで「作用」という言葉を用いましたが「作用・反作用の法則」の作用ではありません。またこの「変分原理」のことは一般に「最小作用の原理」と呼ばれるのですが、最小ではなく停留値です。 すべてがややこしいです。

①変分原理⇒ニュートンの運動方程式

ニュートンの運動方程式の場合の運動エネルギー$T$と位置エネルギー$V$の具体形を考えてゆきます。 今回は高校物理で良く出てくる例であるバネ定数$k$のバネにつながれた質量$m$の質点の運動が変分原理から出てくるか確かめたいと思います。この時の運動エネルギー$T$は$\frac{1}{2}m\dot{x}^2$、位置エネルギー$V$は$\frac{1}{2}kx^2$だったことを思い出してください。つまりラグランジアンは以下のようになります $$ L = T-V=\frac{1}{2}m\dot{x}^2 - \frac{1}{2}kx^2 $$

作用$S$は通常の関数(「値」を入力し「値」を出力するもの)とは異なり、「関数」を入力し「値」を出力する関数であり、これを汎関数と呼び、$S[x]$と書きます。汎関数の微分を行うために作用$S$の変分を考えるために経路の端(始点と終点)を固定したまま経路を一瞬微小に変化させることを考えます。,経路の始点の時刻を$t_1$終点の時刻を$t_2$、微小な変化$h$が加わる時刻を$\tau$を用いて以下のように表現しましょう。

$$ x(t) \to x(t) + h \delta(t-\tau) $$ ただし$\delta (\tau)$はデルタ関数です。$S[x]$に対する汎関数微分は以下のように表現されます。

$$ \frac{\delta S[x]}{\delta x (\tau)} =\lim_{h\rightarrow 0} \frac{S[x(t)+h\delta (t-\tau)]-S[(x)]}{h} $$

これを実際に行ってゆきましょう。

$$ S[x] = \int_{t_1}^{t_2} \left( \frac{1}{2}m\dot{x}^2 - \frac{1}{2}kx^2 \right) dt $$

より $$ S[x+h\delta] =\int_{t_1}^{t_2} \left[ \frac{1}{2}m(\dot{x}+h \dot{\delta})^2 -\frac{1}{2}k(x+h\delta)^2 \right]  dt $$ となります。この後の計算で$h$によって割り算されたのちに$h \rightarrow 0$の極限が取られることを考慮して$h$の一時まで展開します。

$$ S[x+h\delta] =S[x]+h \int dt \left[ m\dot{x}\,\dot{\delta}-k x\,\delta\right]+ O(h^2) $$ したがって

$$ \frac{S[x+h\delta]-S[x]}{h} =\int_{t_1}^{t_2} dt \left[ m\dot{x}\,\dot{\delta} -k x\,\delta \right] $$

ここで積の微分法則 $$d(fg)=gdf+fdg$$を積分した $$ \int d(fg)= [fg] =\int g df + \int f dg $$ を用いる(今後この手法を部分積分と呼びます)と

$$ m \int_{t_1}^{t_2} d( \delta \dot{x}) = m[ \delta \dot{x} ]_{t_1}^{t_2} =m\left( \int_{t_1}^{t_2} dt \dot{x}\,\dot{\delta} + \int_{t_1}^{t_2} dt \ddot{x}\,\delta \right) $$

となります。ここで端点は固定されているので境界項$\left[\delta \dot{x}\right]_{t_1}^{t_2}$はゼロになります。よって

$$ \int_{t_1}^{t_2} dt m \dot{x}\,\dot{\delta}=- \int_{t_1}^{t_2} dtm \ddot{x}\,\delta $$

となり $$ \frac{S[x+h\delta]-S[x]}{h}=\int^{t_2}_{t_1} dt \left[ - m\ddot{x}-k x\right]\delta(t-\tau) $$

と変形されます。デルタ関数は$t=\tau$のときのみ1になる関数なので

$$ \frac{\delta S}{\delta x(\tau)} =\int^{t_2}_{t_1} dt \left[ - m\ddot{x} -k x\right] \delta(t-\tau)=- m\ddot{x}(\tau)-k x(\tau) $$ また変分原理から $$ \frac{\delta S}{\delta x(\tau)} =- m\ddot{x}(\tau)-k x(\tau)=0 $$ なので

$$ m\ddot{x} = - kx $$

これにより高校物理で出てくる例であるバネ定数$k$のバネにつながれた質量$m$の質点の運動が変分原理から出てくることが確かめられました。


②変分原理⇒シュレーディンガー方程式

変分原理からそのままシュレーディンガー方程式を出しても良いのですが、今回はファインマンの経路積分を経由て導出したいと思います。

ファインマンの経路積分

粒子がある座標と位置$(x_0,t_0)$から別の位置$(x_1,t_1)$に遷移する確率の振幅はこの2つの位置が「非常に近い時」 $$ \bra{ x_1,t_1 }\ket{x_0,t_0} = \sqrt{\frac{m}{2 \pi i \hbar dt }} \exp( \frac{i}{\hbar} \int_{t_0}^{t_1} L dt) $$

に対応するということが分かっています。ここで出てきた$L$というのはこれまでの計算で出てきたラグランジアンであり、$\int_{t_0}^{t_1} L dt$は作用$S$です。これの証明は略します。

では位置$(x_0,t_0)$から別の位置$(x_1,t_1)$が近くないときはどうすればよいのでしょうか?間に点を挟み込んでゆくことで、微小に近い点を取り扱えばよい形にしてゆきます。完全性関係$\hat{I} =\int da \ket{a}\bra{a}$を上式に用いてゆきます。

$$ \bra{x_n,t_n}\ket{x_0,t_0} = (\frac{m}{2 \pi i \hbar dt })^{\frac{N-1}{2}} \int dx_{n-1} ... \int dx_1 \bra{ x_n,t_n }\ket{x_{n-1},t_{n-1}}... \bra{ x_1,t_1 }\ket{x_0,t_0} $$

これにより2つの位置が非常に近い時に使える式を使うことが可能になり、

$$ \bra{x_n,t_n}\ket{x_0,t_0} = (\frac{m}{2 \pi i \hbar dt })^{\frac{N-1}{2}} \int dx_{n-1} ... \int dx_1 \Pi^{N}_{n=1} \exp(\frac{i}{\hbar} \int_{t_n}^{t_{n-1}} L dt )=(\frac{m}{2 \pi i \hbar dt })^{\frac{N-1}{2}} \int dx_{n-1} ... \int dx_1 \exp(\frac{i}{\hbar} S ) $$

と遷移する確率の振幅を表現できます。この操作の意味を考えるとするなら「ありうる限りの$(x_0,t_0)$から$(x_1,t_1)$の間に挟まる点を考えてすべての間の点を通る経路を考えてその遷移確率振幅を足し上げている」ということであり、これが経路積分ということになります。

ここでこのファインマンの経路積分から微小時間発展要素を取り出すという回りくどいことをして経路積分がシュレーディンガー方程式を導き出すことが出来ることを示します。(これは本来ファインマンの経路積分形式がシュレーディンガーの波動関数形式と等価であることを示すものです。)

まずはファインマンの経路積分から微小時間発展要素を取り出します。 $$ \bra{x_N,t_N}\ket{x_1,t_1} = (\frac{m}{2 \pi i \hbar Δ t })^{\frac{1}{2}} \int dx_{N-1} exp \left[ (\frac{im}{2 \hbar} ) \frac{ (x_N -x_{N-1})^2 }{Δ t} - \frac{iV(x) Δ t}{\hbar} \right]\bra{ x_{N-1},t_{N-1} }\ket{x_1,t_1} $$

この式において$x_{N} \rightarrow x$、$x_{N-1} \rightarrow x - \xi$、$t_{N} \rightarrow t+ Δt$,$t_{N} \rightarrow t$と変数を置き直します。

$$ \bra{x,t+Δt}\ket{x_1,t_1} = (\frac{m}{2 \pi i \hbar Δ t })^{\frac{1}{2}} \int d\xi exp \left[ (\frac{im}{2\hbar} ) \frac{ \xi^2 }{Δ t} - \frac{iV(x) Δ t}{\hbar} \right] \bra{ x - \xi ,t }\ket{x_1,t_1} $$

$\xi$と$Δt$が微小であることを考慮し、$\bra{ x - \xi ,t }\ket{x_1,t_1}$と$\bra{x,t+Δt}\ket{x_1,t_1}$と$exp \left[ - \frac{iV(x) Δ t}{\hbar}\right]$をそれぞれに対してテーラー展開します。ただし$\int d\xi \xi exp(i \xi^2)$に比例する項は奇関数であり積分すると消えるので無視します。

$$ \bra{x,t}\ket{x_1,t_1} +Δt \frac{\partial}{\partial t} \bra{x,t}\ket{x_1,t_1}= (\frac{m}{2 \pi i \hbar Δ t })^{\frac{1}{2}} \int d\xi exp \left[ (\frac{im}{2\hbar} ) \frac{ \xi^2 }{Δ t} \right] (1 - \frac{iV(x) Δ t}{\hbar}+ ...) \left[ \bra{ x ,t }\ket{x_1,t_1} +\frac{\xi^2}{2} \frac{\partial^2}{\partial x^2} \bra{ x ,t }\ket{x_1,t_1} \right] $$

ここで$Δ t$の2次の項以降は微小すぎて無視するに値するとして式を変形します。 またガウス積分公式を使います。

$$ \int d\xi \xi^2 \exp(\frac{i m \xi^2}{2 \hbar Δt }) = \sqrt{2 \pi} (\frac{i\hbar Δt}{m})^{3/2} $$

すると上式は以下のようになります。

$$ Δt \frac{\partial}{\partial t} \bra{x,t}\ket{x_1,t_1} =(\frac{m}{2 \pi i \hbar Δ t })^{\frac{1}{2}} \sqrt{2 \pi} (\frac{i\hbar Δt}{m})^{3/2} \frac{1}{2} \frac{\partial^2}{\partial x^2} \bra{x,t}\ket{x_1,t_1} -\frac{i}{\hbar} Δt V\bra{x,t}\ket{x_1,t_1} $$

この式を変形することにより下式を得ます。これはシュレーディンガー方程式です。

$$ i \hbar \frac{\partial}{\partial t} \bra{x,t}\ket{x_1,t_1}=-\frac{\hbar^2}{2m} \frac{\partial^2}{\partial x^2} \bra{x,t}\ket{x_1,t_1}+V\bra{x,t}\ket{x_1,t_1} $$

この計算には変分原理が出てきませんでした。しかしあらゆる経路を考慮する計算の中でどのような経路が主に経路積分に寄与するのか評価してみると話が変わってきます。リーマン-ルベーグの補題というのがあります。 (坂本眞人 場の量子論Ⅱ 4.散乱行列の一般的性質とLSZ簡約方式 4.4 漸近条件と弱極限 4.4.4 リーマン-ルベーグの補題 p.85)

$$ \lim_{t\rightarrow \infty } \int_{a}^b dx f(x) \exp(itx) =0 $$

つまりexpの中身である位相の変化が激しい経路の経路積分のへ寄与はゼロになります。これはすなわち経路積分において位相の変化が緩やかなところつまり$\delta S \simeq 0$となるところの寄与が大きくなることを意味しています。もし$\delta S = 0$だけを抜き出してきた場合、これは「変分原理」が成立する経路のみからの影響を考慮するという意味であり、古典力学的な経路からの影響だけを考慮することになります。というような形で「変分原理」とのつながりを見ることが出来ます。 (普通は変分原理からシュレーディンガー方程式を導く場合、経路積分を使わずにもっと直接的に導出しますが経路積分が好きだったので寄り道してみました。)

(JJサクライ 現代の量子力学(上) 2章 量子ダイナミクス 2.6 プロパゲーターとファインマンの経路積分)

③変分原理 ⇒マクスウェル方程式

マクスウェル方程式を導くためのラグランジアンについて考えます。 前回までと違うのはマクスウェル方程式は$E(x,t)$のようなものを求める方程式、つまり座標と時間が引数になっている理論であるため、力学的変数が座標$x(t)$であった前回までとは違い空間的な密度のようににラグランジアンが計算されるということです。 この$\mathcal{L}$をラグランジアン密度と呼びます。 $$ S= \int dt \int dx \mathcal{L} $$

では具体的にラグランジアン密度を表してゆきましょう。 まず真空における電磁場のラグランジアン密度は以下のようになります。(坂本眞人場の量子論1 9.6 ゲージ場の作用積分 p.257) $$ \mathcal{L} =\frac{1}{2} (E^2 -B^2) $$ ここで一項目は電場のエネルギー密度、2項目は磁場のエネルギー密度です。 ここから真空におけるマクスウェル方程式を導いてゆきます。

ラグランジアンを見てわかるようにこのままE,Bを変数として、$\delta S/\delta E =0$、$\delta S/\delta B=0$、としても $E=0,B=0$という解しか存在しないことになります。 ここから先は電場E,磁場Bを生み出す源である電位(スカラーポテンシャル)$\phi(x,t)$とベクトルポテンシャル$A(x,t)$を用いて計算を進めてゆきます。

$$ E= - grad \phi - \partial_t A $$

$$ B=rot A $$ (砂川重信 理論電磁気学p.46)

ベクトル解析という数学の分野の知識を用いることで$div (rot A )=0$であることが分かるので磁場$B$について $$ div B=0 $$ が成り立ちます。また電場についても$rot (grad \phi)=0$と$rot A = B$を用いることで、$E=- \nabla \phi - \partial_t A$は以下のように変形できます。 $$ rot E + \partial_t B =0 $$

これらはラグランジアン密度からではなくスカラーポテンシャルとベクトルポテンシャルを用いた電場$E$と磁場$B$の定義から出てきていることに注意してください。4本あったマクスウェル方程式のうち2本が電場と磁場のくスカラーポテンシャルとベクトルポテンシャルを用いた表記から出てきているため、ラグランジアン密度からは残りの2つが出てくることを期待します。

場のオイラー=ラグランジュ方程式

これまでの変数は座標 $q(t)$ だった場合の作用は $$ S[q]=\int L(q,\dot q,t)\,dt $$

でした。何度でも言いますが場の理論では、変数が$x$ではなく $\phi(x)$ になります。その場合の作用は以下のように記述されます。

$$ S[\phi]=\int d^4x\,\mathcal{L}\bigl(\phi,\partial_\mu\phi\bigr) $$

ここで$d^4x = dt\,d^3x$です。これの変分を考えます。

$$ \phi(x) \rightarrow \phi(x) + \delta\phi(x) $$

この場合作用の変化は $$ \delta S=\int d^4x\left(\frac{\partial \mathcal{L}}{\partial \phi}\delta\phi+\frac{\partial \mathcal{L}}{\partial (\partial_\mu\phi)}\partial_\mu(\delta\phi)\right) $$

となります。第二項を部分積分します。

$$ \int d^4x \frac{\partial \mathcal{L}}{\partial (\partial_\mu\phi)}\partial_\mu(\delta\phi)=\int d^4x\partial_\mu\left(\frac{\partial \mathcal{L}}{\partial (\partial_\mu\phi)}\delta\phi\right)-\int d^4x\partial_\mu\left(\frac{\partial \mathcal{L}}{\partial (\partial_\mu\phi)}\right)\delta\phi $$

第一項は境界項であり、経路の始点と終点を固定した状態で取りうる経路を考えているという前提から境界項は消えます。つまり$\delta\phi|_{\text{境界}}=0$です。よって$\delta S$は以下のようにまとめることが出来ます。

$$ \delta S=\int d^4x\left[\frac{\partial \mathcal{L}}{\partial \phi}-\partial_\mu\left(\frac{\partial \mathcal{L}}{\partial (\partial_\mu\phi)}\right)\right]\delta\phi $$

変分原理$\delta S=0$が任意の $\delta\phi$ に対して成立するためには

$$ \boxed{\frac{\partial \mathcal{L}}{\partial \phi}-\partial_\mu\left(\frac{\partial \mathcal{L}}{\partial (\partial_\mu\phi)}\right)=0} $$

でなければなりません。この式はオイラー=ラグランジュ方程式と呼ばれます。 (坂本眞人 場の量子論 不変性と自由場を中心にして p.239)

真空におけるラグランジアン密度

まずは簡単な場合として真空(電荷密度$\rho=0$かつ電流密度$j=0$)の場合を考えましょう。この場合のラグランジアン密度は以下のようになります。

$$ \mathcal{L}=\frac{1}{2} (E^2 - B^2) $$

これの変分を計算してゆきます。

$$ E= - grad \phi - \partial_t A $$ $$ B=rot A $$ であり、すでにマクスウェル方程式の4つの式のうち $$ div B=0 $$ と $$ rot E + \partial_t B =0 $$ は$\phi$と$A$を用いることにより求めることが出来ていることを忘れないようにしましょう。


$\phi$で変分

$L$は$\phi$に直接依存せず、$E$を通して$\nabla \phi$の形でしか$L$に現れません。

$L$は$\phi$に直接依存しないので $$ \frac{\partial\mathcal L}{\partial\phi}=0 $$ であり$\nabla \phi$に関しては

$$ \frac{\partial \mathcal L}{\partial(\partial_i\phi)}=\frac{\partial \mathcal L}{\partial E_j}\frac{\partial E_j}{\partial(\partial_i\phi)} $$ であるのでこれを計算してゆきます。

$$ E= - grad \phi - \partial_t A $$

を成分表示すると、

$$ E_i=-\partial_i\phi-\partial_t A_i $$

なので

$$ \frac{\partial E_j}{\partial(\partial_i\phi)}=-\delta_{ij} $$

よって

$$ \frac{\partial \mathcal L}{\partial(\partial_i\phi)}=\frac{\partial \mathcal L}{\partial E_j}\frac{\partial E_j}{\partial(\partial_i\phi)}=E_j(-\delta_{ij}) $$

ここでオイラーラグランジュ方程式から

$$ \partial_i E_i=0 $$ つまり $$ \boxed{\nabla\cdot E=0} $$ であり、これは真空($\rho=0$)の場合のガウスの法則を導くことが出来たことになります。


$A$で変分

$E$と$B$を成分表示すると $$ E_i=-\partial_i\phi-\partial_t A_i $$

$$ B_i=\epsilon_{ijk}\partial_jA_k $$

となります。ここから分かることとしてラグランジアンは$A_i$には直接依存せず、$\partial_t A_i,\quad \partial_j A_i$という形で依存することとなります。なので $$ \frac{\partial \mathcal L}{\partial A_i}=0 $$ であり、オイラーラグランジュ方程式を計算するためには残りの $$ \frac{\partial\mathcal L}{\partial(\partial_tA_i)}=\frac{\partial\mathcal L}{\partial E_j}\frac{\partial E_j}{\partial(\partial_tA_i)} $$

$$ \frac{\partial\mathcal L}{\partial(\partial_jA_i)}=\frac{\partial\mathcal L}{\partial B_k}\frac{\partial B_k}{\partial(\partial_jA_i)} $$

を計算する必要があります。

$$ \frac{\partial\mathcal L}{\partial E_j}=E_j $$

$$ \frac{\partial\mathcal L}{\partial B_k}=-B_k $$

$$ \frac{\partial E_j}{\partial(\partial_t A_i)}=-\delta_{ij} $$

$$ \frac{\partial B_k}{\partial(\partial_jA_i)}=\epsilon_{kji} $$

であるので

$$ \frac{\partial\mathcal L}{\partial(\partial_tA_i)}=\frac{\partial\mathcal L}{\partial E_j}\frac{\partial E_j}{\partial(\partial_tA_i)}=E_j(-\delta_{ij}) $$

$$ \boxed{ \frac{\partial\mathcal L}{\partial(\partial_tA_i)}=-E_i } $$ また $$ \frac{\partial\mathcal L}{\partial(\partial_jA_i)}=\frac{\partial\mathcal L}{\partial B_k}\frac{\partial B_k}{\partial(\partial_jA_i)}=(-B_k)\epsilon_{kji} $$

$$ \boxed{\frac{\partial\mathcal L}{\partial(\partial_j A_i)}=-\,\epsilon_{kji}B_k} $$

これらをオイラーラグランジュ方程式に代入することにより $$ \frac{\partial \mathcal L}{\partial A_i} -\partial_t \left(\frac{\partial \mathcal L}{\partial(\partial_tA_i)}\right) -\partial_j\left(\frac{\partial \mathcal L}{\partial(\partial_jA_i)}\right)=0 $$

$$ \partial_tE_i+\epsilon_{kji}\partial_jB_k=0 $$ つまり $$ \boxed{ \nabla\times B=\partial_tE } $$ が得られます。 これによって真空(電荷密度$\rho=0$かつ電流密度$j=0$)の場合のマクスウェル方程式が導かれました。

(坂本眞人 場の量子論 不変性と自由場を中心にして p.257)


電荷密度$\rho$と電荷密度$j$が存在する場合

電荷密度$\rho$と電荷密度$j$が存在する場合、電磁場はそれらと相互作用するため、ラグランジアン密度に相互作用項を追加する必要があります。そのラグランジアン密度は以下のようになります。 $$ \mathcal L=\underbrace{\frac12(E^2-B^2)}_{\text{電磁場の自由ラグランジアン}}+\underbrace{(\rho\phi-j\cdot A)}_{\text{相互作用項}} $$

この相互作用項の影響で先ほどの計算でゼロとなっていた$\frac{\partial\mathcal L}{\partial\phi}$と$\frac{\partial\mathcal L}{\partial A_i}$は値を持つようになります。 $$ \frac{\partial \mathcal L}{\partial \phi}=\rho $$

$$ \frac{\partial \mathcal L}{\partial A_i}=- j_i $$

結果として $$ \boxed{\nabla\cdot E=\rho} $$

$$ \boxed{\nabla\times B=j+\partial_t E} $$

となり、変分原理からマクスウェル方程式を導くことが出来たました。


変分原理すごいぜ!

変分原理大好き!変分原理すごいぜ!みんなありがとう!でもさぁ実験でそれを確かめることもできない人間が数式をいじって変分原理から基本方程式を導き出したとしてもそれって陰謀論とどう違うんですか?(ぶち壊し)

(疑問)「確かに変分原理から古典や電磁気の方程式が出るが、そうなるように恣意的に作用を選んでいるだけなのでは」

半分はYESと言えます。なぜならラグランジアンや作用というのは光でいうところの「フェルマーの原理」と同じようなものを見つけるために作られた値であり、ラグランジアンが物理的に意味するところを考えてみても$T+V$であれば全エネルギーとして解釈ができるのですが、$T-V$であるためそのように解釈することが出来ません。つまり人為的な量です。しかし、もう半分はNOだとも言えます。なぜならラグランジアンは人為的に作られた量ではありますが、それに加えられる項に制限があり、それらの制限が物理の基本方程式を形作っていると解釈できるからです。 例えば

  • 不変性(空間並進対称性・時間並進対称性・回転対称性・相対論的不変性・ゲージ対称性など)
  • エルミート性
  • 局所性
  • 真空の存在
  • くりこみ可能性

といった制限があります。これらの制限を満たす形でラグランジアンを書こうとすると、その形はほとんど一意的に定まってしまいます。そして、その停留条件から導かれる方程式こそが、ニュートン方程式やマクスウェル方程式といった基本方程式になります。...ということが参考にしている文献である「坂本眞人 場の量子論」で主張されているのですが、深く理解できているとは言えないので今後の宿題とさせてください。 ( 坂本眞人 場の量子論 不変性と自由場を中心にして 9.3 作用積分の一般要請 p.244 p.263)

参考文献

  • メシア『量子力学 I』東京図書 (1971)
  • J J サクライ『現代の量子力学 上』吉岡書店 (1985)
  • 坂本眞人『場の量子論 不変性と自由場を中心にして』裳華房 (2014)
  • 前野昌弘『よくわかる特殊相対論』東京図書 (2024)
  • 砂川重信『理論電磁気学』紀伊國屋書店 (1999)
  • R P ファインマン『光と物質のふしぎな理論 私の量子電磁力学』岩波書店 (1987)

光路長の極値について

フェルマーの原理

フェルマーの原理とは

光は、到達時間が停留値になる経路を通る

という主張をしている原理です。詳しく見てゆきましょう。光の到達時間について考えるために光の進みにくさを表す関数$n(x)$を定義します。

$$ n(x) \equiv \frac{c}{v(x)} $$

ここで$v(x)$は物質を通り抜ける際の光の速度で、$c$が真空における光の速度です。この$n(x)$は真空に対して光が進みにくいかを表す関数であり今後$n(x)$を「屈折率」と呼ぶことにします。この進みにくさ$n(x)$を加味したうえで、光がある点Pから点Qまで通り抜けるの感じる距離は

$$ L_{op} = \int_{P}^{Q} n(x)\, dl $$

と表現されます。「真空中でどれだけの距離を進んだのと同じ効果を持つか」と言い換えても良いかもしれません。光はこの値 $L_{op}$ が停留値つまり一階変分がゼロになるようなルートを通るということが分かっています。 $$ \delta L_{op} = \delta \int n(x) dl =0 $$

屈折率を変えた時の最短航路シミュレーションがあります。これを見ると光は移動距離が極小となるような道筋を取るということがどういうことかはわかると思います。

注意すべきこととして光路長は「極小」だけではなく、「極大」や「鞍点」となるようなルートも可能であるということを忘れてはいけません。$L_{op}$の関数形状が谷であろうが山であろうが鞍点であろうがそのような光の経路は許されます。

光路長が極小となるような経路は説明などで見たことがあったのですが、極大や鞍点となるような光の経路とはどのような経路でどのように目に映るのかを見たことがありませんでした。これを今回取り扱ってゆこうと思います。

実験環境設定とレンダリング結果

「Blender」というフリーのレンダリングエンジンがあるのでそれを用いて光の経路をレンダリングしてみようと思います。

「光源とカメラ両方を鏡面球の中に入れたとき、球面から反射してカメラに入ってくる光の中にはは光路長の極大点もあるだろう」という考えのもと実験環境を作成します。球鏡面の中心を原点にし半径を$R$、カメラ位置を$(0,a,0)$、光源位置を$(0,-a,0)$に設定し、反射された光を見てみようと思います。

Blenderでの配置は下のような感じです。 カメラのFOVは広めに設定(球の頂点と底が視界に入るように)

パストレースにおける最大バウンス数は2(光源->ミラー->カメラの光を見たいので)

レンダリング結果

中心に点があるリング状の光がレンダリングされていることが分かります。

光路長を解析計算

球面上の点$P$を

$$ P=(R \sin \theta \sin \phi ,R \sin \theta \cos \phi ,R \cos \theta ) $$ とします。ここで$0<\theta<\pi$ 、$0<\phi <2\pi$です。 光路長を$L$とすると$L$は以下のようにあらわされます。

$$ L( \theta , \phi)
= \sqrt{|A-P|^2} + \sqrt{|P-B|^2} $$ $$ = \sqrt{(R \sin \theta \sin \phi)^2 +(R \sin \theta \cos \phi +a)^2 +(R \cos \theta)^2}
+ \sqrt{(R \sin \theta \sin \phi)^2 +(R \sin \theta \cos \phi - a)^2 +(R \cos \theta)^2}
$$ $$ = \sqrt{R^2 + a^2 +2aR\sin \theta \cos \phi} \quad + \sqrt{R^2+ a^2 -2aR\sin \theta \cos \phi}
$$

ここで計算を簡単にするために$X \equiv R^2 +a^2 (定数)$と$Y(\theta,\phi) \equiv 2aR \sin \theta \cos \phi$という変数を用意しておくと、 $$ L(Y) =\sqrt{X+Y} +\sqrt{X-Y} $$ となります。ここから光路長の微分を計算することで停留点を計算してゆきます。

光路長の停留値を計算

$\frac{\partial L}{\partial \theta} =0$と$\frac{\partial L}{\partial \phi} =0$をみたすような$\theta$と$\phi$を求めることで、光路長の停留値を満たすような光の経路を求めてゆきます。 $$ \frac{\partial Y}{\partial \theta}= 2aR \cos \theta cos \phi $$ $$ \frac{\partial Y}{\partial \phi}= -2aR \sin \theta sin \phi $$ $$\frac{\partial L}{\partial X} =\frac{1}{2} (X+Y)^{-1/2} +\frac{1}{2} (X-Y)^{-1/2}$$

$$ \frac{\partial L}{\partial Y} =\frac{1}{2} (X+Y)^{-1/2} -\frac{1}{2} (X-Y)^{-1/2} $$

$$ \frac{\partial X}{\partial \theta} =\frac{\partial X}{\partial \phi} =0 $$

より、 $$ \frac{\partial L}{\partial \theta} = \frac{\partial L}{\partial Y} \frac{\partial Y}{\partial \theta} = aR \cos \theta \cos \phi \left( (X+Y)^{-1/2} - (X-Y)^{-1/2}\right) $$ $$ \frac{\partial L}{\partial \phi} = \frac{\partial L}{\partial Y} \frac{\partial Y}{\partial \phi} = -aR \sin \theta \sin \phi \left( (X+Y)^{-1/2} - (X-Y)^{-1/2}\right) $$

よって $\frac{\partial L}{\partial \theta} =0$を満たすのは $$ \cos \theta =0, \cos \phi =0, Y=0 $$ $\frac{\partial L}{\partial \phi} =0$を満たすのは $$ \cos \theta =0, \sin \phi =0, Y=0 $$

となります。

これら2つを両方矛盾なく満たす$\theta$と$\phi$を求めてゆきます。

①$\cos \phi =0$のとき

$\phi=\pi/2もしくは$$3\pi/2$ この時$Y(\theta,\phi) \equiv 2aR \sin \theta \cos \phi$より$Y=0$となるのでLはXのみに依存し、$L=2\sqrt{R^2+a^2}$で定数になります。 これは$y=0$平面であり、$\theta$に依存しません。

② $\cos \theta =0$のとき

$\theta=\pi/2$です。この時$L=2\sqrt{R^2+a^2}$であり、これを満たすのは$\phi = \pi / 2$もしくは$3 \pi / 2 $になります。

③ $\sin \phi =0$のとき

$\phi=0もしくは$$\pi$ の時$Y= ±2aRsin\theta$ $\cos \theta =0$の時は$\theta=\pi/2$ $\sin \theta =0$の時は$Y=0$であるので天頂と真下だけです。

④$Y =0$のとき

$sin \theta=0$もしくは$\cos \phi=0$となりますが、$Y=0$かつ$\cos \phi=0$は既に考えてあるので、$sin \theta=0$の場合を考えます。この時$\theta=0,\pi$であり、$L=2\sqrt{R^2+a^2}$であり、これを満たすのは天頂と真下だけです。

これらのケース(重複がありましたが)をまとめると光路長が停留地となるのは - ライトからカメラまでまっすぐの経路($\cos \phi =0$) - $y=0$平面で反射する経路

となります。Blenderでレンダリングした結果と比較してみると「ライトからカメラまでまっすぐの経路」が画面中央の点で、 「$y=0$平面で反射する経路」が円環に対応することが分かります。この円環を画面に収めるためにFOVを大きめに設定していたというわけです。

停留地の安定性解析

ここからこれらの停留値の安定性解析をしてゆきます。我々が興味があるのは光路長の山もしくは鞍点であるので負の固有値を持つヘッシアンが出てきてくれることを祈りましょう。「ヘッシアンってなんだよ」と思われた方も安心してください。大昔数学でやったことのあるであろう「増減表」を2次元空間で書くだけです。ヘッシアンの計算には以下の情報が必要になります。

$$ \frac{\partial^2 L}{\partial \phi^2 }, \frac{\partial^2 L}{\partial \theta^2 }, \frac{\partial^2 L}{\partial \theta \partial \phi } $$

これを具体的に計算してゆきます。

$$ \frac{\partial^2 L}{\partial \phi^2 } =\frac{\partial}{\partial \phi } \left( \frac{\partial L}{\partial Y } \frac{\partial Y}{\partial \phi } \right) =\frac{\partial^2 L}{\partial Y^2 } (\frac{\partial Y}{\partial \phi })^2 + \frac{\partial L}{\partial Y } \frac{\partial^2 Y}{\partial \phi^2 } $$

$$ \frac{\partial^2 L}{\partial \theta^2 } =\frac{\partial}{\partial \theta } \left( \frac{\partial L}{\partial Y } \frac{\partial Y}{\partial \theta} \right) =\frac{\partial^2 L}{\partial Y^2 } (\frac{\partial Y}{\partial \theta })^2 +\frac{\partial L}{\partial Y } \frac{\partial^2 Y}{\partial \theta^2 } $$

$$ \frac{\partial^2 L}{\partial \phi \partial \theta } =\frac{\partial}{\partial \phi } \left( \frac{\partial L}{\partial Y } \frac{\partial Y}{\partial \theta} \right) =\frac{\partial^2L}{\partial Y^2 } \frac{\partial Y}{\partial \theta }\frac{\partial Y}{\partial \phi } +\frac{\partial L}{\partial Y } \frac{\partial^2 Y}{\partial \theta \partial \phi } $$

$$ \frac{\partial L}{\partial Y} = \frac{1}{2} (X+Y)^{-1/2} -\frac{1}{2} (X-Y)^{-1/2} $$

$$ \frac{\partial^2 L}{\partial Y^2} = -\frac{1}{4} (X+Y)^{-3/2} -\frac{1}{4} (X-Y)^{-3/2} $$

$$ \frac{\partial Y}{\partial \theta}= 2aR \cos \theta cos \phi $$ $$ \frac{\partial Y}{\partial \phi}= -2aR \sin \theta sin \phi $$ $$ \frac{\partial^2 Y}{\partial \theta^2}= -2aR \sin \theta cos \phi $$ $$ \frac{\partial^2 Y}{\partial \phi^2}= -2aR \sin \theta cos \phi $$ $$ \frac{\partial^2 Y}{\partial \theta \partial \phi } =\frac{\partial^2 Y}{\partial \phi \partial \theta } = -2aR \cos \theta \sin \phi $$ これらを組み合わせることで

$$ \frac{\partial^2 L}{\partial \phi^2 } = \left( - \frac{1}{4} (X+Y)^{-3/2} - \frac{1}{4} (X-Y)^{-3/2}\right) ( -2aR \sin \theta sin \phi )^2 \ +\left( \frac{1}{2} (X+Y)^{-1/2} - \frac{1}{2} (X-Y)^{-1/2}\right) \left( -2aR \sin \theta \cos \phi \right) $$

$$ \frac{\partial^2 L}{\partial \theta^2 } =\left(-\frac{1}{4} (X+Y)^{-3/2} -\frac{1}{4} (X-Y)^{-3/2}\right) (2aR \cos \theta cos \phi )^2 + \left(\frac{1}{2} (X+Y)^{-1/2} -\frac{1}{2} (X-Y)^{-1/2}\right) \left( -2aR \sin \theta cos \phi \right) $$

$$ \frac{\partial^2 L}{\partial \phi \partial \theta } =\frac{\partial}{\partial \phi } \left( \frac{\partial L}{\partial Y } \frac{\partial Y}{\partial \theta} \right) = \left(-\frac{1}{4} (X+Y)^{-3/2} -\frac{1}{4} (X-Y)^{-3/2}\right) \left( 2aR \cos \theta cos \phi \right) \left(-2aR \sin \theta sin \phi \right) + \left(\frac{1}{2} (X+Y)^{-1/2} - \frac{1}{2} (X-Y)^{-1/2}\right) \left(-2aR \cos \theta \sin \phi \right) $$ となります。

①$y=0$平面で反射する経路の時

$Y=0$であるので

$$ \frac{\partial L}{\partial Y} = \frac{1}{2} (X)^{-1/2} -\frac{1}{2} (X)^{-1/2}=0 $$

$$ \frac{\partial^2 L}{\partial Y^2} =-\frac{1}{4} (X)^{-3/2} -\frac{1}{4} (X)^{-3/2}<0 $$ であるため$\frac{\partial^2 L}{\partial \phi^2 }$は負。また$\cos \phi =0$であるため$\frac{\partial^2 L}{\partial \theta^2 }$はゼロ。$\frac{\partial^2 L}{\partial \phi \partial \theta }$もゼロ。

というわけでこの経路は光路長関数の山の稜線であるということがわかりました。

②ライトからカメラまでまっすぐの経路

この時$\theta=\pi/2$より$\sin \theta =1$,$\cos \theta =0$となります。また$\sin \phi=0$でもあるので、ここからすぐに $$ \frac{ \partial Y}{\partial \theta} = \frac{\partial Y}{\partial \phi}=\frac{ \partial^2 Y}{ \partial \theta \partial \phi }=0 $$

が求められます。これより $$ \frac{\partial^2 L}{\partial \phi^2 }=\frac{\partial L}{\partial Y } \frac{\partial^2 Y}{\partial \phi^2 } $$

$$ \frac{\partial^2 L}{ \partial \theta^2 } = \frac{ \partial L }{ \partial Y } \frac{ \partial^2 Y}{ \partial \theta^2 } $$

$$ \frac{ \partial^2 L}{ \partial \phi \partial \theta }=0 $$

です。

(A)$\phi =0$つまり$\cos \phi = 1$の時、

$$ Y=2aR、 \frac{\partial^2 Y}{\partial \phi^2 }= -2aR 、 \frac{\partial^2 Y}{\partial \theta^2 }=-2aR $$

となります。 $$ \frac{\partial^2 L}{\partial \theta^2 } =\frac{\partial^2 L}{\partial \phi^2 } $$ $$ =(2aR) \left(\frac{1}{2} (R^2+a^2+2aR)^{-1/2} -\frac{1}{2} (R^2+a^2-2aR)^{-1/2}\right) $$ であり、これは$(正) \times (正)$であるので正の値を取ります。 つまりこれは極小となる停留値です。

(B)$\phi =\pi$つまり$\cos \phi = -1$の時、

$$ Y=-2aR、 \frac{\partial^2 Y}{\partial \phi^2 }= 2aR 、 \frac{\partial^2 Y}{\partial \theta^2 }=2aR $$ となります。 $$ \frac{ \partial^2 L } {\partial \theta^2 } =\frac{ \partial^2 L}{ \partial \phi^2 } $$ $$ =(-2aR) \left( \frac{1}{2} (R^2 + a^2 -2aR)^{-1/2} - \frac{1}{2} (R^2+a^2+2aR)^{-1/2} \right) $$ であり、これは$(負) \times (負)$であるので正の値を取ります。 つまりこれも極小となる停留値です。

結果として光路長が停留値となるところを図におこしてみると以下のようになります。この結果はBlenderでのレンダリング結果を解析的に説明できていると考えられます。

まとめ

問題設定の対称性が強すぎたせいか稜線という形でしたが、光路長が山となるような経路を見ることが出来て満足です。また「Ray Tracing in One Weekend」というチュートリアルで作ったパストレーサーでも結果を再現できており、これも嬉しいです。

光の位相については全く考えていない議論なのでもし「そうはならんやろ」ということがあれば教えてください。

「自分用」liltoonSDFについての備忘録

liltoonSDFについての備忘録

(前提)

・SDFとは

Signed Distance Fieldの略

もともとはフォントなどで使われていたらしい手法だが 最近になってToon調の3Dモデルの影にも使われるようになったようだ

それまではアニメ顔の影については『ギルティギア Xrd』などで使われていた、法線転写という技術を使うことである程度固定の影を出せる技術が確立されていました。

しかし法線を編集するよりもテクスチャーマッピングを利用する方が処理負荷的にもメモリ的にも効率がよく、 キャラごとの法線編集コストもないのでより安定した影を出せるんじゃないかというところから生まれたのではないかと勝手に予想をしています。

そこで効率の良い影を生成するためにSDFアルゴリズムを使って影情報を持った複数枚のテクスチャーから生成したテクスチャーをマスクに利用することで、 固定したアニメ顔影を生成できるので、ライト角度ごとに閾値を持った影のマスクを作って顔にアニメキャラらしいルックを得られるということになります。

[引用元]

UE5 SDF Face Shadowマッピングでアニメ顔用の影を作ろう - Let's Enjoy Unreal Engine

ちなみにSVGなどのベクター画像を綺麗に見せるための方法としてMSDF(Multi-channel signed distance field)なるものもあるらしい

UnityでMSDFを使ったShaderによるベクター画像の描画について #Unity - Qiita

(基本概念)

Toon調の影をつける際に 法線情報から陰影をつけるのではなくテクスチャから影をつけることが出来るようになりたい。

(これまでに見かけた実装方法)

①リッチな実装

影情報を含んだテクスチャを複数枚用意しライトの方向を基にそれらを補完して影をつける。

nagakagachi.hatenablog.com

cgworld.jp

②実用的な実装方法

①の方法(影情報を含んだテクスチャを複数枚用意しライトの方向を基にそれらを合成する)ではテクスチャサイズが大きくなってしまうので それらを最初から合成しておき一枚のテクスチャにしそれだけをモデルに持たせるようにすることで軽量化する。 ただこれだけでは影の情報不足なのでテクスチャだけではなくライトによる影と組み合わせることでうまくそれなりに見せる。

unrealengine.hatenablog.com

(liltoonにおける実装方法)

liltoonにおいては②の実装方法(実用的な実装方法)が用いられているようだ。

(lil_common_frag.hlslの949~962行目を参照(commit 2b3aca0635c29749f19708983e872bb73edc4aef)) github.com

手続きの概略(ミスがあるかもしれません)

① SDFテクスチャからの影(sdf)の計算
  1. ワールド座標における(Skinned Mesh RendererのRoot Boneから見た)右方向(x-が右かは要確認)のベクトルの取得

  2. ライトがRoot Boneから見て右にある場合はshadowStrengthMaskのREDを使用 そうでない場合はGREENを使用

②ライトによる影(lnSDF)の計算
  1. ワールド座標におけるRoot Boneから見た手前方向ベクトルの取得

  2. ライトの向きベクトルと手前方向ベクトルの内積を取り影の強度を計算

③ライトの向きからくる影(lnSDF)+テクスチャを用いた影(sdf)の合成

この記事の内容を見直してみるとliltoonのSDFの処理とほぼ同じであり、作者の方はこの記事を参考にSDFを実装したのだと考えられる。

テクスチャの作り方

このツイートでは「顔の法線調整は必須」と書いてあるがソースコードを見る限りでは顔の法線情報を取得していないように見えるので法線調整は必要ないように思う。

youtu.be Get PERFECT Anime Face Shadows (Easier Way) in Blender

この動画の概要欄にSDFツールのリンクがあるらしい(未検証情報)

ボクセルモデルの作成(自分用) MagicalVoxcel→Blender→Unity

いつも忘れるので備忘録。

 

  • 手順

1:マジカルボクセルでモデリングする。

今回はこんな感じ。これをPLYで出力する。

2:頂点カラーからテクスチャを作成する。

 

2-1:Blenderでplyファイルを読み込む。ファイル→インポート→Standard PLY

(読み込んだ時は色がついていないが別にOK)

 

2-2:全頂点を選択し、Island Marginを0.05にしてUV展開する。

UVEditorでテクスチャを新規作成する。

 

 

2-3:マテリアルを新規作成し、ベースカラーを先ほど作成したテクスチャに。

 

 

現在は頂点カラー情報しかもっていないため、テクスチャに頂点カラーをベイクする。

 

 

2-4:レンダーエンジンをCyclesにしベイクタイプをディフューズ、影響の寄与をカラーのみにする。

 

 

2-5:シェーダーエディターで以下のようにつないでから、

Image Textureが選択(外枠が白くなる)された状態で、プロパティのBakeボタンを押す。

 

2-6:ベイクが終われば以下のようにシェーダーエディターでベースカラーをつなぎ直す。

(ちなみにベイク結果はこんな感じになっている。)

 

3:頂点をマージする

現在は同じ座標に複数の頂点が重なってしまっている状態なので頂点を距離でマージする。

(ちなみに頂点をマージしないと、モデルを動かした際に裏面が見えてしまったりして酷いことになる)

(ちなみに1つ前の手順で頂点カラーをテクスチャにベイクせず頂点をマージしてしまうと頂点が色情報を持っているためマージで色がぐちゃぐちゃになっていた。)

4:Humanoidリグをつける

今回はこんな感じ

5:ウェイトを作成する

今回は自動ウェイトでテキトウにやってしまう

 

(一応ポーズモードでウェイトの確認はする)

6:Blenderでfbxとして書き出しUnityでHumanoidとして読み込む

(省略)

7:テクスチャのMipMapを無効化する

このままだとボクセルの境界線が見えて不格好なのでテクスチャのMipMapをOFFにすることで境界線を見えないようにする。

 

(ちなみにMipMapをGenerateしているとこんな感じ。(よくよく見るとボクセルの境界線が見える))

 

・以上。

ADDRESS1 開発後記

ADDRESS1 開発後記

公開してからだいぶ時間が経ってしまったが、開発を振り返ろうと思う。

”Address1”とかいうタイトル

前作が「天国の一丁目」だったので次は「一番地」だなと思い、 番地と言えばメモリのアドレスだし、次回作タイトルは「メモリの一番地」にするか~

というのがこの作品の全てであり、あとはこのタイトルに合うようにシナリオを書いたりしただけ。

開発期間

本格的な開発を始めたのはこのツイートを見るに"2019-10-27"で

開発開始
開発開始

steam版の初公開が"2023-05-01"で キャラデザや大まかなシナリオの作成は自分のツイートを見る限り"2019-02-06"なので

キャラデザ
キャラデザ
開発期間は大体4年ぐらいか。まあ開発をしていなかった期間や、steam公開後に英語版を作ったりしていたので 正確な開発期間となるともっと曖昧な数字になる。

開発前から開発期間は4年ぐらいにしようと設定していた。 なぜ4年なのかは後述

薄暗い気持ち

正直言って薄暗い気持ちで開発を始めた。 megabitconvention02というのが2019年08月25日に開催されて、無謀にもこれに一度出店をしたことがあって。 私の作ったゲームのクオリティがあまりにも低かったのと集客がヘタクソで誰からも遊んで貰えなくて。 両隣のブースは凄く人気があるのにその間の自分のゲームは誰にも遊んでもらえなくて。 みんな私のゲームをチラッと見ては見なかったことにして素通りしてゆく。 もうひたすらボーっと11:00~16:30までひたすら暇をしていただけで。それだけでかなり精神的にキてしまったんですが、このイベントのあと公開されたメガビットコンベンション02のシューティングゲーム一挙レポート!と銘打った記事にさえ辛うじてシューティングゲームである自分のゲームは紹介されていなかった事が追い打ちになって。 megabitSTG.png

(いいかユズ、ホントのクソゲーってのは酷評されるんじゃなくて無視されるんだぜ。むしろ酷評なんてちゃんと遊んでくれている上に、自分のターゲット層以外にまで自分のゲームが行き届いているというスゲー事だからな。)

こういう舞台に立ってみて初めて、「大学の発表の場」と「商品発表の場」の違いを理解しましたね。 大学の発表は「そもそも周囲の人間が自分の話を聞いてくれるという大前提」があって、 こういう商品発表の場では「そもそも皆自分に対して興味も無く自分の話を聞くつもりもないので、何とかして自分の話は聞く価値があると説得しなければならない所から始まる」ということにあまりにも無自覚だった。

このイベントで隣のブースになった魔神少女STGというゲームを開発した「ひつじさん」という方にどれぐらいの期間開発をされていたのかうかがったところ「4年」という回答が帰ってきたので「自分もそれぐらい頑張れば同じ土俵に立てるのかな」という思いでADDRESS1の開発期間を4年と見積もった。 魔神少女STG

しかしこのイベント直後の時点では「もう2度とゲームなんて作りたくない」ぐらいの気持ちだった。

そのタイミングで「Hellsinker.」と出会ってもう一度だけ、開発をしてみようかなと思った。 しかしまあ、ADDRESS1の開発を始めたのはこのイベントで私を無下に扱った連中への復讐に近い思いからだった。

面白いゲームを作っている製作者のTwitterを見てみると人間性が最悪でガッカリしてしまうことが多いが ゲームや何かしらの作品を完成させるということは割と大変なことで何かしらの「拗らせ」や「悪意」や「名声欲」のような (いい意味でも悪い意味でも)強い感情が無いと難しいことではあるよなと今では思う。(異論は認められるものとする)

ゲームシステム

シューティングゲームにおける接近戦って楽しいしそれに重点を置いたSTGを作ろう!」ぐらいのアイディアで作った。

フリゲ2022得票作品

それをちゃんと理解してくれた人もいてとても嬉しい。

しかし、「上手くタイミングを見計らって接近戦をしかける」というゲームシステムを上手く機能させることが出来たのは「Stage1」だけで、 それ以外ではステージの内容を頭捻って考えるので精いっぱいで、「近接戦システムを上手く機能させよう」というところまでステージの内容を練り上げることが出来なかった。

スコア

当初は「最早スコアなんて不要だろ」と考えていて、要素として付けていなかったのだが、 知り合いにこのゲームを少し遊んでもらってみると「ただ敵の攻撃を避けながらショットを打ち続ければ良いタイプのSTGとはちょっと違うので、一体どういうプレイをすれば良いのか分からない」ようで、それを見てから考えを改め「初めてプレイする人にどのようなプレイが良いプレイなのか教える指標」、つまり「稼ぐもの」というよりは「機械学習エージェントに与える報酬」というスタンスでスコアを設計することにした。

参考作品

初期のゲームシステムを考えるうえで参考にした作品は「Hellsinker.」「らじおぞんで」「空飛ぶ赤いワイン樽」「神威」です。

どれも名作。

ヒトガタハッパ

Address1を作っている最中に「ヒトガタハッパ」というゲームと出会った。 自分は「シューティングゲームにおける接近戦って楽しいしそれに重点を置いたSTGを作ろう!」ぐらいのアイディアしか出なかったにも関わらず、 このゲームはあろうことか「自機を爆弾として敵にぶつけて攻撃する」というのが基本設計で。

しかもそのゲームコンセプトを活かすようなステージを最後まで練り上げることが出来ているし、なにより凄く面白い。 完全に負けたと思った。

このシステムは、「弾幕というものは接近を防ぐために張られるものであり、弾幕を避けきりなおかつ敵に直接打撃を入れてこそ、真に弾幕に勝利したと言える」という作者の主張を表現したものである。

(引用元: pixiv百科事典)

完敗としか言いようがない。

Penryn

元々狂ったようなゲームシステムにしようと思っていたのでキャラデザも狂った感じで。

ペンリン 2019年2月11日
ペンリン 2019年2月11日

Penryn 2019年11月27日
Penryn 2019年11月27日

脳みそがむき出しなのはなんでなのかはここを見てもらった方が早いと思う。(このゲームのシナリオには直接関わってこないことではあるけれど、主人公に「自分と同じコンプレックス」という呪いを与えて、その主人公が救われる物語を作ることで間接的に自分を救いたかった)

というかこういう考えなので、バッドエンドしかないゲームとか作れないんだよな。 どうしてここまで苦労して可愛がって作ったキャラクターに不幸な思いをさせることが出来ようかという気持ちになってしまう。

PenrynとMIA

「頑張って頑張っても目標に手が届かない」のと「頑張って頑張ってようやく目標に手が届いた瞬間にその目標の周囲を覆っていたメッキが剝げ落ち、”自分があれだけ追い求めていたものはこんなにも価値の無いものだったのか”」となるの、どちらが辛いんでしょうね。

ちなみにこのメッキですが、目標に向かって頑張り続けた期間が長ければ長いほどピカピカ輝きを増してゆくので剝がれた時の失望も目標に届かなかった時の失望も大きくなってしまうのが厄介な所だと思います。

PenrynとMerom

Merom 2023年6月15日
Merom 2023年6月15日
同じような生い立ちを持ち、同じ大切なものを持ち、それを(守るため|取り戻す為)に同じように身体改造を加えていった2人ですが それを(守るため|取り戻す為)に真逆の行動を取る2人。 2人の思考と肉体改造はどこか常軌を逸していて、きっと2人とも限界は近かったのでしょう。

Meromをあれだけ過剰に大きくしたのは 「大切なものをこの手で守りたい」という気持ちが過剰なまでになってしまったというメタファー(?)

GameOver時のテキスト

一応テキストの主体がPenrynともMIAとも取れるように書いたはずだけれど、 どれか一つだけPenrynが主体としか取れない文章が存在した記憶がある。

別に主体を私として取っても良いです。

Stage4クリア後メニュー画面のテキストの日本語訳

Menu5

Menu5
Menu5

まるで 肉食動物のように
世界は私に牙を向ける

まるで その獲物であるように
抵抗せずそれを受け入れる
抗っても意味がないことぐらい分かっているから

この身に湧き上がる絶望と痛み
その中でも自身を終わらせることが出来ない私は
一体何をこの世界にまだ望んでいるのだろう

制限され義務付けられた休養の中で
即時的な快楽にすがり全てを見失ってしまう前に
この世界の全てにささやかな反逆を
自らの存在に福音を
かつて確かにそこにあった

自らの存在の意義を

「制限され義務付けられた休養の中で 即時的な快楽にすがり全てを見失ってしまう前に」 というのは、

休日や終業と銘打ちながら「自己研鑽」を強いてくるアレと、 アルコールなどでなんとか毎日騙し騙しやっていきながら自分を見失っている私についての記述です。

というかこの文章自体が私の会社勤めに対するフラストレーションを綴っていますが、まあ許してやって下さい。

BGM

  1. プログラムでステージを作る。
  2. そのあと下表のような形で何分何秒に何が始まるのかを記録する。
  3. この表の中の大事なタイミングで曲調が変わるように曲を作る。(この時点ではだいたいのタイミングでよい)
  4. もう一度プログラムに戻り、曲調が変るタイミングと、大事な事が起こるタイミングがキッチリ合うようにパラメーターを調整する。
Stage4 ms frame diff
敵登場 13.6 0分13.6秒 13600 816 0
WARNING_Start 32.116666 0分32.11秒 32116.666 1926.99996 1110.99996
Merom_人間形態戦闘開始 43.48333333 0分43.48秒 43483.33333 2609
Merom_ロボ変形開始 148.1333333 2分28.13秒 148133.3333 8888 8072
Merom_ロボ変形終了 165.6166667 2分45.61秒 165616.6667 9937
MEROM_ロボ飛び上がり 235.3 3分55.3秒 235300 14118 13302
MEROM_ロボ爆発開始 291.4666667 4分51.46秒 291466.6667 17488 16672
MEROM_上半身形態開始 297.6833333 4分57.68秒 297683.3333 17861 17045
MEROM_上半身形態爆発開始 320.3833333 5分20.38秒 320383.3333 19223 18407
MEROM_上半身形態爆発終了 324.133333 5分24.13秒 324133.333 19447.99998 18631.99998
Kubrick_前で静止 352.65 5分52.65秒 352650 21159 20343
STAGE4END 382.2666666 6分22.26秒 382266.6666 22936 22120

Stage2の道中はかなり音ハメを頑張った(というか音ハメがメインのステージだった)んだけど、 パラメーターを調整するのが面倒で中途半端に投げ出してしまった。

アニメーション制作の現場では、動画と音の同期に関して「動画は音より2フレーム前にすると仕上がりが良い」という「動画先行の原則」が語られてきた。

(引用:映像と音の同期―「動画先行の原則」の根拠と応用)

こういうこともこの時知った。

反省

もっと高級なゲームエンジンを用いて開発を時短すべきだった。

プログラミングパートのほとんどの部分は「アルゴリズムをプログラムで記述すること」ではなく 「パラメーターを適切に調整すること」にあり、それをデフォルトでサポートしてくれるような開発環境(例えばUnityで言うところのInspectorのような機能)を用いるべきだった。 というか最終的にDXライブラリのような環境で開発することにしたとしても 「このコンセプトは最終的に面白いゲームになりえるか」を素早く判断出来るようにするために、プロトタイプだけでも高級なゲームエンジンを用いて素早く作ることが出来るようになっておいた方が良い気がする。

BGMは自作にこだわらず素材を利用してもよかった

作曲が苦手過ぎた。もう本当に曲を作るのが辛かった。 たまたま一曲だけいい曲が作れるだけでは全然ダメで、色々な場面にキッチリと合った曲を作ることが出来なければならない。 きつすぎる。 作曲に関してはいい思い出無いです。

自作にこだわったところで全体としてのクオリティが上がるわけでもないし。

ゲームの進行に合わせて変化するメニュー画面それぞれにBGMをつけたかった。

作曲難しい。

音ハメをもっと丁寧にしたかった。

IKUSAAAN!」とか「Hellsinker.のSegment8」の音ハメすごいよね。 いや~すごいわ。あそこまでやるだけの気力がない。

「敵に上手く近づいて接近戦をしかけるスタイル」を徹底すべきだった。

ステージの内容を頭捻って考えるので精いっぱいで、「近接戦システムを上手く機能させよう」というところまでステージの内容を練り上げることが出来なかった。

結局みんな「過去に遊んだどのゲームに似てるか」ぐらいにしか着目していなかった。

まあそりゃそうか。そりゃそうだよな。 何も知らないゲームの紹介なら「グラフィックが綺麗か」「過去に遊んだゲームの中でどれに似てるか」ぐらいにしか目がいかないよな。

開発者の思っている本質とユーザーの考える本質の間に差があった。

Steamでゲームを公開してから、ありがたいことにレビューやコミュニティハブ等で色々と反応が付いた。好意的な反応はもちろん、手痛い反応でさえもしっかりとプレイしてみた上での感想という感じでとても嬉しいものだった。

私は手痛い反応から「開発者の思っている本質とユーザーの考える本質の間に差がある」ということを教えられた。

ステージの冒頭にあるムービーが長すぎるというのは(開発者はこのゲームに慣れきっており一度でクリアできてしまい同じステージを何度も繰り返すことが無かったので)気が付くことが出来なかったし、開発者からしてみれば「冒頭のムービーのアイディアを考え、ちゃんと実装し上映できること」こそが本質で「ムービーのスキップ機能をつけること」はおまけのような非本質だと考えていたが、これをスキップできる機能はユーザーからしてみれば本質で。

チュートリアルが読みにくいというのも開発者からしてみれば「チュートリアルの内容を考え、それの英訳を作成し、正しくゲーム画面上で再生できること」こそが本質だと考えていたが、「チュートリアルが十分読み終えることが出来る分量&適切な文字送りのスピードか」というのはユーザーからしてみれば本質で。

でもそういうのって作ってる間はなかなか意識が向かないんだよなぁ。(私だけかもしれないが) アイディアを出すことやアイディアがバグを出さずに動いているかとか、そういった方面にばかり気がいってしまう。

一度開発者であることを捨て、全力でユーザーになってみなければ分からないことはとても多いと感じる。 (しかし開発者であることを捨てるのはなかなか難しいものだと痛感する。) (できれば他の誰かにプレイテストをしてもらうのが良いのだろうけど、人望の無い私にはそういう知り合いが居ないので...) (それにもし誰かにプレイテストをしてもらったとしても、そこでの手痛いフィードバックを素直に受け止めることが出来るだけの寛容さが私にあるとも思えない...)

周囲の反応集

フリゲ20XX得票

コンセプトを理解したうえで楽しんでくれて ここまで丁寧に遊んでもらえるとは思わなかったのでとても嬉しい。

merom686氏

https://merom686.hatenablog.com/entry/2023/05/27/152138

とても嬉しい。

MQ 7145氏

紹介中に別のゲームの話をされていたり、Hellsinker.にこういう武器使ってるキャラいたよねぐらいの紹介で無下にされている感は否めない。

discord

知らない外国人(しかも私の書いた絵がアイコン)からフレンド申請が来てて、「怖いなぁ」と思いつつとりあえず承認してみたら、 「I wante to tell you that i like your game」 というメッセージが届いて嬉しくなった。 (英語対応しておいて良かった)

総括

いろいろ嬉しい反応もありましたが、「これでmegabitconvention02の雪辱を晴らすことが出来たか」と問われると「駄目だったよ」というのが正直な所かもしれない。

4年かけて頑張ってみても結局私はこの程度だったということです。

逆に自分がどの程度なのかしっかり知ることが出来たのは良かったのかもしれない。

「Penrynに世界を用意してあげることが出来た。」 「物語を完成させることでPenrynを救うことが出来た。」 それでいいんだ。私程度の人間はそれで”足るを知る”べきなんだ。

今後

このゲームのキャッチコピーは

大切なあの記憶 もう一度だけ この体でもまだ そう思えるのなら

ですが,もはや私は

もう一度だけ なんてもう 思えない...

ので「もうゲーム作ることも無いかな」という気持ちです。 疲れ果てました。お疲れ様でした。