投稿

6月, 2020の投稿を表示しています

ハバネロプロジェクトの近況報告

イメージ
こんにちは 最近、家のパソコンが急死してしまって 現在修理所に預けている状況です。 それで、久々にノートパソコンで作業していますが 古いものなので、PhotoShopやUnityなど 重い作業は難しいです。 次のGPGシリーズはもう少しお待ちください。 ハバネロサイトを復旧してから しばらく目立つアップデートはなかったですが、 内部的には少し進展がありました。 Unityバージョン更新 この間、Unity2019のLTSバージョンが リリースされました。(2019.4) (Unityの時間は半年遅い…) ハバネロに載せているゲームクライアントは かなり古いバージョンで作られていたので LTSバージョンに合わせて更新しました。 ビルドの自動化 今までクライアントをデプロイする時 Unityエンジンでビルドして、 OutputファイルをGCPダッシュボードから アップロードする面倒な作業を繰り返しました。 その一連の手作業を一括まとめて処理するため コマンドビルドを導入しました。 1つ問題なら、コマンドビルドを実行するために 一旦Unityエンジンを終了する必要がありますが、 (インスタンス重複エラーが発生) 手作業で行ったクライアントデプロイが 自動化されて、少し楽になりました。 そろそろサイトに載せる次のゲーム制作や サイトのアップデートも進みたいと思っています。 (パソコンが無事に帰って来ることを祈っています。) ※ 元ブログから移転された記事です。

GPG雑学:バイリニアフィルタ - 画像を拡大する方法

イメージ
​ 当然の話ですが、デジタル画像は拡大しても 細かい部分を詳しく見ることはできません。 コンピューターは画像を単純に 色情報の配列として保存しているだけです。 こういう風に色データの配列で作られています。 昔のコンピューターは画面を拡大するとき 隙間の部分を近くの色で塗り替えました。 計算は簡単ですが、結果としてはあまり綺麗ではないです。 ギザギザしている部分が良く見つかります。 コンピューターの性能が良くなってからは もっと自然に見える拡大方法が出てきました。 従来の拡大画像(左)、現在の拡大画像(右) 今日は画像を拡大する時に良く使われている バイリニアフィルタ 「Bilinear Filter」  について話します。 ● バイリニアフィルタとは? ● 名前の意味そのまま訳すると 二重 (bi) 線形 (linear) 補間 (filter) です。 。。。 先ずは 線形補間  について説明します。 例えは、こういうグラフがあるとしましょう そして、このグラフが何らかの理由で 一部のデータだけ残った場合を考えてみます。 この情報から元のグラフを復元するため 点と点の間を線で繋げます。 これが 線形補間 です。 線形補間の良い所は、計算がめちゃくちゃ早くて 結果物も計算の軽さに比べて悪くないことです。 これは 演算速度を重要視するゲーム では 強力な利点として作用します。 線分の中を計算するには 内分点公式 を使います。 \(\displaystyle P(x,y) = \frac{n}{m+n}A(x,y) + \frac{m}{m+n}B(x,y)\) 色の場合は赤、緑、青の各要素ごとに分けて 線形補間を行います。 すなわち、バイリニアフィルタ (二重線形補間) は 画像の色情報を2つの軸 (横、縦) に対して 線形補間することです。 では、具体的な計算方法をみてみましょう。 ● バイリニアフィルタの計算仕方 ●

ブログにLATEXを導入

イメージ
ゲーム開発について説明しようとすると 色んな場面で数式が出て来ます。 それで、ブログで数式を自由に書けるように LATEXライブラリーを追加しました。 ● LATEXライブラリー入れ方 ● (Google Blogger基準です。) ブログのテーマメニューを開き、 HTML編集を選択します。 <head>タグの中に下のコードを追加します。 <script src='http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' type='text/javascript'/> これでブログで数式が書けるようになりました。 ● 数式のテスト ● \(\displaystyle \sqrt[n]{abc} + {x^3+y^3 \over 2}\) \(\displaystyle C = \sum_{k=1}^N\left({\frac{S_k}{S_{total}} \times C_k}\right)\) \(\displaystyle C_E = \frac{aC_B\,+\,bC_A}{a+b}\) \(\mathbb{R} = \begin{pmatrix} x & y \\ z & v \end{pmatrix}\) LATEX数式の文法は下のWikiページを参考 https://meta.wikimedia.org/wiki/Help:Displaying_a_formula/ja 次のGPG雑学シリーズもお楽しみください! ※ 元ブログから移転された記事です。

GPG雑学:ゲームで使う画像サイズはなぜ2の乗数なのか?(下)

イメージ
​ こんにちは。 前回の記事で、コンピューターは画像を処理するとき 必要なメモリを確報するため、2倍ずつ拡張する という話をしました。 今日は、その理由について詳しく話したいと思います。 ※この記事は前回の記事と繋がる話です。 前回の記事を まだ読んでいない方は 是非、前の記事を先に読んでください。 ↓(クリック)↓ ゲームで使う画像サイズはなぜ2の乗数なのか?(上) ● なぜメモリは2倍ずつ拡張されるのか? ● 理解を助けるため、マンションを例に説明します Bさんは最近、新しいマンションに引っ越しました。 部屋番号は1103号です。 Q: Bさんの部屋は何階にありますか? A: 11階 私たちは寛容的に、部屋番号の前方2数字が 階数を示すことを知っています。 正に部屋番号だけで部屋の場所が推測できる 素晴らしいルールです。 でも実はこのマンション、20階のビルで 各フロアーには7つの部屋があります。 つまり、総部屋数は 7 x 20 = 140 個あります。 性格がケチな人なら、140個の部屋を職別するために 4桁の番号(9999まで)を使うのは無駄が多いな、と 思うかもしれません。 (実際は1 ~ 140までの数字で番号付けられます。) 仮にマンションの部屋番号を 1から順番につけてみましょう これて140までの番号で部屋が区別できます。 ある日、106号のNさんから管理室に電話が来ました。 管理人: はい、管理室です。 Nさん: すみません、106号ですが 水道検針に問題があるようです。 ちょっと見て頂けませんか? 管理人: すぐ伺います。 管理人: え〜と、106を7に割って 10から7を引くと残り36で… 106号の階数を計算中 部屋を1から順番に番号付けると 数字は節約できるかも知れませんが その代わり、場所を特定するため 面倒な計算を行う必要があります。 めんどくさい計算が嫌なのは コンピューターも同じです。 コンピューターもマンション番号みたい