<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ノードを知る on Godot 4 レシピ</title><link>https://kamera25.github.io/godot_recipes/4.x/ja/kyn/index.html</link><description>Recent content in ノードを知る on Godot 4 レシピ</description><generator>Hugo -- gohugo.io</generator><language>ja</language><atom:link href="https://kamera25.github.io/godot_recipes/4.x/ja/kyn/index.xml" rel="self" type="application/rss+xml"/><item><title>Label</title><link>https://kamera25.github.io/godot_recipes/4.x/ja/kyn/label/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kamera25.github.io/godot_recipes/4.x/ja/kyn/label/index.html</guid><description>&lt;h2 id="hahahugoshortcode282s0hbhblabel"&gt;&lt;i class="gd-Label"&gt;&lt;/i&gt;&lt;code&gt;Label&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;i class="gd-Label"&gt;&lt;/i&gt; &lt;code&gt;ラベル&lt;/code&gt; は、フォーマットされていないテキストを表示するための &lt;i class="gd-Control"&gt;&lt;/i&gt;&lt;code&gt;コントロール&lt;/code&gt;ノードであり、テキストの配置や折り返しなどの制御オプションを備えています。&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.godotengine.org/ja/stable/classes/class_label.html" target="_blank"&gt;APIドキュメント&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="ノードのプロパティ"&gt;ノードのプロパティ&lt;/h3&gt;
&lt;p&gt;完全なリストについてはドキュメントを参照してください。以下では、ノードで最も一般的に使用されるプロパティについて説明します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;text&lt;/code&gt; - このプロパティはラベルの表示内容を決定します。コード内で変更することで、ラベルに表示させる内容を更新できます。数値を表示する場合は、必ず文字列に変換してください！例えば、指定された数値値でラベルを更新する場合：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript" data-lang="gdscript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#81a1c1;font-weight:bold"&gt;func&lt;/span&gt; &lt;span style="color:#88c0d0"&gt;update_label&lt;/span&gt;&lt;span style="color:#eceff4"&gt;(&lt;/span&gt;value&lt;span style="color:#eceff4"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $Label&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;text &lt;span style="color:#81a1c1"&gt;=&lt;/span&gt; &lt;span style="color:#81a1c1"&gt;str&lt;/span&gt;&lt;span style="color:#eceff4"&gt;(&lt;/span&gt;value&lt;span style="color:#eceff4"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;align&lt;/code&gt; - このプロパティを使用すると、テキストを右揃え/中央揃え/左揃えにできます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;percent_visible&lt;/code&gt; - このプロパティは表示する文字数を制限します。例えば値を &lt;code&gt;0.5&lt;/code&gt; に設定するとコンテンツの半分が表示されます。この値をアニメーション化することで「タイプライター効果」を作成できます。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="スクリプトの追加方法"&gt;スクリプトの追加方法&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;テキスト&lt;/em&gt; プロパティに何らかの文字を入力するとすぐに、Godotのデフォルトフォントが要件に対して小さすぎることに気付くでしょう。以下に変更方法を説明します。&lt;/p&gt;
&lt;p&gt;まず、プロジェクトフォルダにTTFまたはOTFフォントファイルが保存されていることを確認してください。&lt;/p&gt;
&lt;p&gt;&lt;i class="gd-Label"&gt;&lt;/i&gt;&lt;code&gt;Label&lt;/code&gt;の「カスタムフォント」セクションにて、&amp;ldquo;Custom Fonts&amp;quot;を選択してください。&lt;code&gt;DynamicFont&lt;/code&gt;は、指定された書体でテキストを表示するリソース型です。&lt;/p&gt;
&lt;p&gt;追加した&amp;quot;DynamicFont&amp;quot;を選択し、&amp;ldquo;Font/Font Data&amp;quot;で&amp;quot;Load&amp;quot;を選び、フォントファイルを選択します。また、フォントの&lt;em&gt;サイズ&lt;/em&gt;も設定してください。&lt;/p&gt;</description></item><item><title>Path2D と PathFollow2D</title><link>https://kamera25.github.io/godot_recipes/4.x/ja/kyn/path2d/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kamera25.github.io/godot_recipes/4.x/ja/kyn/path2d/index.html</guid><description>&lt;div class="box notices cstyle tips"&gt;
&lt;div class="box-label"&gt;ℹ️ 留意事項&lt;/div&gt;
&lt;div class="box-content"&gt;
&lt;p&gt;この記事は Godot 3から Godot 4 へ内容の書き換え中です。
Godot4では存在しない変数、関数が含まれている場合があります。もしその場合はリポジトリの&lt;a href="https://github.com/kamera25/godot_recipes/issues" target="_blank"&gt;Issues&lt;/a&gt;までご報告ください。&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="hahahugoshortcode287s1hbhbpath2d-と-hahahugoshortcode287s2hbhb-pathfollow2d"&gt;&lt;i class="gd-Path2D"&gt;&lt;/i&gt;&lt;code&gt;Path2D と &lt;i class="gd-PathFollow2D"&gt;&lt;/i&gt; PathFollow2D&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;パス&lt;/em&gt; とは 2D 空間における点の連続であり、&lt;i class="gd-Curve2D"&gt;&lt;/i&gt;&lt;code&gt;Curve2D&lt;/code&gt; リソースによって定義されます。&lt;i class="gd-Path2D"&gt;&lt;/i&gt;&lt;code&gt;Path2D&lt;/code&gt; ノードを使用すると、2D 空間でパスを配置できるほか、エディター内で新規パスを作成することもできます。&lt;/p&gt;
&lt;p&gt;パスには様々な用途があります。敵モブが辿る巡回経路、アニメーション効果のための曲がりくねった道、移動プラットフォームの動作パターンなどを作成できます。&lt;/p&gt;
&lt;h3 id="curve2dについてhahahugoshortcode287s5hbhb"&gt;&lt;code&gt;Curve2D&lt;/code&gt;について【&lt;i class="gd-Curve2D"&gt;&lt;/i&gt;】&lt;/h3&gt;
&lt;p&gt;パスのデータはこのリソースオブジェクトに保持されています。これには曲線の数学的表現が含まれており、そのデータと対話するための方法が提供されています。&lt;a href="https://docs.godotengine.org/ja/stable/classes/class_curve2d.html" target="_blank"&gt;APIドキュメント&lt;/a&gt;に詳細が記載されていますが、ここでは特に役立つメソッドをご紹介します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;add_point()&lt;/code&gt; / &lt;code&gt;remove_point()&lt;/code&gt; / &lt;code&gt;clear_points()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;コード内でパスのポイントを操作する必要がある場合、これらの関数が役立ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_closest_point()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このメソッドは、空間内の任意の点に最も近い経路上のポイントを返します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_closest_offset()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上記と異なる点として、この方法は指定された地点に最も近い経路上の位置を返します。ただし、この位置は経路上に定義された2つの特定のポイント間に位置する場合もあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;tesselate()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このメソッドは曲線上の点のリストを返します。これらの点は、曲率が高い経路部分に密集して配置されます。&lt;/p&gt;
&lt;h2 id="経路の描画方法"&gt;経路の描画方法&lt;/h2&gt;
&lt;p&gt;&lt;i class="gd-Path2D"&gt;&lt;/i&gt;&lt;code&gt;Path2D&lt;/code&gt; ノードを選択すると、アイコンバーに以下の新しいアイコンが表示されます。&lt;/p&gt;
&lt;p&gt;
&lt;a href="#image-2eb13e7c20a3542c211009c8f2678b28" class="lightbox-link"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_path2d_01.png" alt="alt" style="height: auto; width: auto;" loading="lazy"&gt;
&lt;/a&gt;
&lt;a href="javascript:history.back();" class="lightbox" id="image-2eb13e7c20a3542c211009c8f2678b28"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_path2d_01.png" alt="alt" class="lightbox-image" loading="lazy"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;アイコンのいずれかを選択すると、マウスカーソルの動作が変更されます。ホバーするとそれぞれの名前を確認できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ポイントを選択&lt;/strong&gt; - クリック＆ドラッグで既存のポイントを移動できます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;コントロールポイントを選ぶ&lt;/strong&gt; - ポイントに調整ハンドルを追加し、カーブ形状を調整できます（詳細は後述）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ポイントを追加(空きポイントに)&lt;/strong&gt; - 空白部分をクリックすることで新しいポイントを作成します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;点を削除&lt;/strong&gt; - クリックすると指定したポイントを削除します。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;曲線を閉じる&lt;/strong&gt; - 曲線の最終ポイントと最初のポイントを接続してループ状に仕上げます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;「ポイントを追加」を選択し、エディターウィンドウ内でクリックしてポイントを作成します。&lt;/p&gt;
&lt;p&gt;
&lt;a href="#image-8ee045d12b4d360cb03cbef5e2ed41c0" class="lightbox-link"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_path2d_02.png" alt="alt" style="height: auto; width: auto;" loading="lazy"&gt;
&lt;/a&gt;
&lt;a href="javascript:history.back();" class="lightbox" id="image-8ee045d12b4d360cb03cbef5e2ed41c0"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_path2d_02.png" alt="alt" class="lightbox-image" loading="lazy"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;より滑らかで丸みを帯びた曲線を作成するには、「制御点を選択」を選択し、カーブ上の任意の点をドラッグして「内向き」「外向き」ハンドルを調整してください。&lt;/p&gt;
&lt;p&gt;
&lt;a href="#image-d005910fb367e1b3dc75c5732e5cc3bc" class="lightbox-link"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_path2d_03.png" alt="alt" style="height: auto; width: auto;" loading="lazy"&gt;
&lt;/a&gt;
&lt;a href="javascript:history.back();" class="lightbox" id="image-d005910fb367e1b3dc75c5732e5cc3bc"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_path2d_03.png" alt="alt" class="lightbox-image" loading="lazy"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="経路の追跡"&gt;経路の追跡&lt;/h2&gt;
&lt;p&gt;単体では&lt;i class="gd-Path2D"&gt;&lt;/i&gt;&lt;code&gt;Path2D&lt;/code&gt;ノードにはほとんど機能がありません。経路に沿って移動するには、&lt;i class="gd-PathFollow2D"&gt;&lt;/i&gt;&lt;code&gt;PathFollow2D&lt;/code&gt; ノードも併せて使用が必要です。これは親の &lt;i class="gd-Path2D"&gt;&lt;/i&gt;&lt;code&gt;Path2D&lt;/code&gt; に沿って移動する役割を持つノードです。&lt;/p&gt;</description></item><item><title>RayCast2D</title><link>https://kamera25.github.io/godot_recipes/4.x/ja/kyn/raycast2d/index.html</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kamera25.github.io/godot_recipes/4.x/ja/kyn/raycast2d/index.html</guid><description>&lt;div class="box notices cstyle tips"&gt;
&lt;div class="box-label"&gt;ℹ️ 留意事項&lt;/div&gt;
&lt;div class="box-content"&gt;
&lt;p&gt;この記事は Godot 3から Godot 4 へ内容の書き換え中です。
Godot4では存在しない変数、関数が含まれている場合があります。もしその場合はリポジトリの&lt;a href="https://github.com/kamera25/godot_recipes/issues" target="_blank"&gt;Issues&lt;/a&gt;までご報告ください。&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="hahahugoshortcode293s1hbhbraycast2d"&gt;&lt;i class="gd-RayCast2D"&gt;&lt;/i&gt;RayCast2D&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;レイキャスティング&lt;/em&gt; はゲーム開発で広く用いられる手法です。「レイを飛ばす(キャストする)」とは、ある点から直線を伸ばし、それが何かに衝突するか限界に達するまで移動させる操作を指します。&lt;/p&gt;
&lt;h3 id="ノードのプロパティ"&gt;ノードのプロパティ&lt;/h3&gt;
&lt;p&gt;&lt;i class="gd-RayCast2D"&gt;&lt;/i&gt;&lt;code&gt;RayCast2D&lt;/code&gt; ノードを追加して、インスペクターを確認します。&lt;/p&gt;
&lt;p&gt;
&lt;a href="#image-43e749425e83ab38c4155a23fce0d0d1" class="lightbox-link"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_raycast2d_01_4.png" alt="alt" style="height: auto; width: auto;" loading="lazy"&gt;
&lt;/a&gt;
&lt;a href="javascript:history.back();" class="lightbox" id="image-43e749425e83ab38c4155a23fce0d0d1"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_raycast2d_01_4.png" alt="alt" class="lightbox-image" loading="lazy"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;以下に主要な特性をご説明します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Enabled&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この機能を無効にするとレイキャスト操作が無効化されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Exclude Parent&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このプロパティにより、レイは親オブジェクトとの衝突を無視するようになります。デフォルトで有効になっています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Target Position&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これはレイの到達点です。※注：この座標系はローカル座標です。&lt;/p&gt;
&lt;p&gt;また、「衝突対象」セクションにも注意してください。初期設定ではレイはオブジェクトのみを検出するため、領域も検知したい場合や代わりに使用したい場合は、ここで設定する必要があります。&lt;/p&gt;
&lt;h3 id="便利な機能"&gt;便利な機能&lt;/h3&gt;
&lt;p&gt;ノードの機能一覧は&lt;a href="https://docs.godotengine.org/ja/stable/classes/class_raycast2d.html" target="_blank"&gt;APIドキュメント&lt;/a&gt;で確認できます。特に便利な主要機能をご紹介します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;is_colliding()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ブール型関数。レイが何らかの物体と衝突しているかどうかを判定します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_collision_point()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;レイが衝突している場合、この関数は衝突位置をグローバル座標系で返します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_collider()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;衝突が発生している場合、この関数は衝突中のオブジェクトへの参照を返します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;get_collision_normal()&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;別の有用な情報として、衝突点における衝突オブジェクトの法線ベクトルを示します。&lt;/p&gt;
&lt;h3 id="使用例"&gt;使用例&lt;/h3&gt;
&lt;p&gt;レイキャストには多様な用途があります。可視判定（AはBを確認できるか、その間に障害物はないか）、近接検出（壁や地面、障害物の近くにいるか）などです。以下に実用的な使用例をご紹介します。&lt;/p&gt;
&lt;h4 id="1-射撃"&gt;1. 射撃&lt;/h4&gt;
&lt;p&gt;高速で移動する発射物には、障害物を「すり抜けてしまう」という問題がよく発生します。これは、衝突判定が1フレーム内で検出できないほど物体の移動速度が速いためです。代替案として、経路（あるいはレーザーなど）を表現するには &lt;i class="gd-RayCast2D"&gt;&lt;/i&gt;&lt;code&gt;Raycast2D&lt;/code&gt; を使用する方法があります。&lt;/p&gt;
&lt;p&gt;ここに、銃の先端にレイキャストが取り付けられたプレイヤースプライトがあります。&lt;code&gt;target_position&lt;/code&gt;は&lt;code&gt;(250, 0)&lt;/code&gt;に設定されています。&lt;/p&gt;
&lt;p&gt;
&lt;a href="#image-530415889b0e6975967fe25384ad7441" class="lightbox-link"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_raycast2d_02.png" alt="alt" style="height: auto; width: auto;" loading="lazy"&gt;
&lt;/a&gt;
&lt;a href="javascript:history.back();" class="lightbox" id="image-530415889b0e6975967fe25384ad7441"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_raycast2d_02.png" alt="alt" class="lightbox-image" loading="lazy"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;プレイヤーが射撃した際、レイが何かに衝突しているかどうかを判定します。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript" data-lang="gdscript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#81a1c1;font-weight:bold"&gt;func&lt;/span&gt; &lt;span style="color:#88c0d0"&gt;_input&lt;/span&gt;&lt;span style="color:#eceff4"&gt;(&lt;/span&gt;event&lt;span style="color:#eceff4"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#81a1c1;font-weight:bold"&gt;if&lt;/span&gt; event&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;&lt;span style="color:#88c0d0"&gt;is_action_pressed&lt;/span&gt;&lt;span style="color:#eceff4"&gt;(&lt;/span&gt;&lt;span style="color:#a3be8c"&gt;&amp;#34;shoot&amp;#34;&lt;/span&gt;&lt;span style="color:#eceff4"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#81a1c1;font-weight:bold"&gt;if&lt;/span&gt; $RayCast2D&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;&lt;span style="color:#88c0d0"&gt;is_colliding&lt;/span&gt;&lt;span style="color:#eceff4"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#81a1c1"&gt;print&lt;/span&gt;&lt;span style="color:#eceff4"&gt;(&lt;/span&gt;$RayCast2D&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;&lt;span style="color:#88c0d0"&gt;get_collider&lt;/span&gt;&lt;span style="color:#eceff4"&gt;()&lt;/span&gt;&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;name&lt;span style="color:#eceff4"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="2-エッジ検出処理"&gt;2. エッジ検出処理&lt;/h4&gt;
&lt;p&gt;以下の方法でmobに下向きレイキャストを2つ追加してください。&lt;/p&gt;
&lt;p&gt;
&lt;a href="#image-cd6070890769d71633775025cece03aa" class="lightbox-link"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_raycast2d_03.png" alt="alt" style="height: auto; width: auto;" loading="lazy"&gt;
&lt;/a&gt;
&lt;a href="javascript:history.back();" class="lightbox" id="image-cd6070890769d71633775025cece03aa"&gt;
&lt;img src="https://kamera25.github.io/godot_recipes/4.x/img/kyn_raycast2d_03.png" alt="alt" class="lightbox-image" loading="lazy"&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;モブキャラクターのスクリプト内で、レイが衝突を&lt;em&gt;停止&lt;/em&gt;したときを確認します。その時点までに境界線に到達したことを意味するので、向きを変える必要があります。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d8dee9;background-color:#2e3440;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-gdscript" data-lang="gdscript"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#81a1c1;font-weight:bold"&gt;func&lt;/span&gt; &lt;span style="color:#88c0d0"&gt;_physics_process&lt;/span&gt;&lt;span style="color:#eceff4"&gt;(&lt;/span&gt;delta&lt;span style="color:#eceff4"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; velocity&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;y &lt;span style="color:#81a1c1"&gt;+=&lt;/span&gt; gravity &lt;span style="color:#81a1c1"&gt;*&lt;/span&gt; delta
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#81a1c1;font-weight:bold"&gt;if&lt;/span&gt; &lt;span style="color:#81a1c1;font-weight:bold"&gt;not&lt;/span&gt; $RayRight&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;&lt;span style="color:#88c0d0"&gt;is_colliding&lt;/span&gt;&lt;span style="color:#eceff4"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dir &lt;span style="color:#81a1c1"&gt;=&lt;/span&gt; &lt;span style="color:#81a1c1"&gt;-&lt;/span&gt;&lt;span style="color:#b48ead"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#81a1c1;font-weight:bold"&gt;if&lt;/span&gt; &lt;span style="color:#81a1c1;font-weight:bold"&gt;not&lt;/span&gt; $RayLeft&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;&lt;span style="color:#88c0d0"&gt;is_colliding&lt;/span&gt;&lt;span style="color:#eceff4"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; dir &lt;span style="color:#81a1c1"&gt;=&lt;/span&gt; &lt;span style="color:#b48ead"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; velocity&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;x &lt;span style="color:#81a1c1"&gt;=&lt;/span&gt; dir &lt;span style="color:#81a1c1"&gt;*&lt;/span&gt; speed
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $AnimatedSprite&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;flip_h &lt;span style="color:#81a1c1"&gt;=&lt;/span&gt; velocity&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;x &lt;span style="color:#81a1c1"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#b48ead"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; velocity &lt;span style="color:#81a1c1"&gt;=&lt;/span&gt; &lt;span style="color:#88c0d0"&gt;move_and_slide&lt;/span&gt;&lt;span style="color:#eceff4"&gt;(&lt;/span&gt;velocity&lt;span style="color:#eceff4"&gt;,&lt;/span&gt; &lt;span style="color:#8fbcbb"&gt;Vector2&lt;/span&gt;&lt;span style="color:#81a1c1"&gt;.&lt;/span&gt;UP&lt;span style="color:#eceff4"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;動作中の様子をご覧ください。&lt;/p&gt;</description></item></channel></rss>