シェーダでノイズ2(パーリンノイズ)
パーリンノイズは単純なランダムノイズと異なり、滑らかなノイズが得られます。そのため、様々なテクスチャの生成や炎、雲及び地形などの自然物を表現する際によく使用されます。 一次元パーリンノイズ 始めに、xの少数部分を取り出します。これにより、整数の間で\(0\)から\(1\)未満の値を繰り返すようになります。したがって、下図で色分けされているように整数の間を一つの区間として区切ることができます。こ […]
Unityによるゲーム制作のあれこれ
パーリンノイズは単純なランダムノイズと異なり、滑らかなノイズが得られます。そのため、様々なテクスチャの生成や炎、雲及び地形などの自然物を表現する際によく使用されます。 一次元パーリンノイズ 始めに、xの少数部分を取り出します。これにより、整数の間で\(0\)から\(1\)未満の値を繰り返すようになります。したがって、下図で色分けされているように整数の間を一つの区間として区切ることができます。こ […]
Scriptでゲームオブジェクトを作成し、そのオブジェクトに必要なコンポーネントを追加することで、 新たにUI要素を作成します。しかし、この方法でUI要素を作成すると、デフォルトの画像を使用する際に問題が生じます。Editorで実行する場合に限れば以下のコードからデフォルトの画像を取得できます。 [crayon-674f3fa500f22636213733/] 当然、Build後には使用できませ […]
Shaderで波動方程式を用いて波紋をシミュレートしてみました。 波動方程式 波動方程式は以下の通りです。 $$ \frac{1}{s^2}\frac{\partial ^2u}{\partial t^2}=\frac{\partial ^2u}{\partial x^2}+\frac{\partial ^2u}{\partial y^2} $$ 離散化した波動方程式 上記の方程式のままではs […]
ReflectionProbeを使用する方法 Create→3DObject→Planeより、鏡面用の平面を作成します。新しくMaterialを作成します。このMaterialのShaderをStandardへ、MetallicとSmoothnessを1へ変更します。そして、このMaterialを平面へアタッチします。 新しく空のゲームオブジェクトを作成し、AddComponentからRefle […]
前回の記事では、両端の形状を維持したまま動くゲージをImageのMaskやFilledを用いて作成しました。このゲージをShaderを用いて作成しました。 Shader 作成したShaderは以下の通りです。Imageのカラー変更とImageTypeのFilledは正しく動作するようです。 [crayon-674f3fa502231231874787/] Script 適当なゲームオブジェク […]
ゲージをImageのFilledを用いて作成すると、端が直線になってしまいます。そこで、ゲージの形を維持したまま、動かす方法がないかと考え、以下の方法を思いつきました。 ※端が直線にならないHPゲージの作り方(Shader)はこちら Maskを使用した方法 その1 Create→UI→ImageからCanvesに背景用Image、Mask用Imageとゲージ用Imageを作成します。 ゲージ用 […]
Canvasへの描画 OnPopulateMeshをオーバーライドし、そこでメッシュを作成します。 Positionsへ軌道予測線の座標を代入し、この座標から頂点を決定し、vh.AddUIVertexQuadによって四角いポリゴンを生成します。sizeによって、座標位置を画面サイズ/2ずらし、正しい位置に頂点座標を移動しています。このScriptでは単純に頂点位置を予測線の座標をy軸へずらしただ […]
軌道予測線に衝突判定の追加 軌道予測線に沿ってRayを飛ばすことで、衝突判定を行いました。 Scriptと実行結果 マウスを動かすことで視点移動を行い、左クリックでオブジェクトを投射します。マウスの左ボタンを押し続けると、初速が大きくなります。初速と向いている方向に応じて、LineRendererによって軌道予測線の描画を行います。また、衝突判定はRayによって行っています。Rayによって検出 […]
空気抵抗がある場合のrigidbodyの軌道予測線を作成しました。放物線運動の公式によって作成した起動予測線はrigidbodyの軌道と一致していなかったため、新たに式を導出しrigidbodyの軌道と一致するかを確認しました。 ※空気抵抗がない場合の軌道予測線はこちら 放物線運動の公式をもとに作成 放物線運動の公式 原点より初速\(v_{0}\)で発射された空気抵抗を受ける物体の時刻\(t\ […]
空気抵抗がない場合のrigidbodyの軌道予測線を作成しました。放物線運動の公式によって作成した起動予測線はrigidbodyの軌道と一致していなかったため、新たに式を導出しrigidbodyの軌道と一致するかを確認しました。 ※空気抵抗を考慮した起動予測線はこちら 放物線運動の公式をもとに作成 放物線運動の公式 原点から初速\(v_{0}\)で発射された物体の時刻\(t\)における位置\( […]