<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spline on GS_Play Gameplay Framework</title><link>https://gsplay.genomestudios.ca/tags/spline/</link><description>Recent content in Spline on GS_Play Gameplay Framework</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://gsplay.genomestudios.ca/tags/spline/index.xml" rel="self" type="application/rss+xml"/><item><title>Spline Helpers</title><link>https://gsplay.genomestudios.ca/docs/framework/core/utilities/spline_helper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://gsplay.genomestudios.ca/docs/framework/core/utilities/spline_helper/</guid><description>&lt;p&gt;The &lt;code&gt;SplineUtility&lt;/code&gt; namespace (&lt;code&gt;GS_Core::SplineUtility&lt;/code&gt;) provides free functions for querying the closest point on an O3DE spline component attached to an entity. All functions take an entity ID and a position in world or local space.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Used by:&lt;/strong&gt; &lt;code&gt;PathTo_DialoguePerformance&lt;/code&gt; (&lt;code&gt;gs_cinematics&lt;/code&gt;), any system that guides an entity along a spline path.&lt;/p&gt;
&lt;p&gt;For usage guides and setup examples, see &lt;a href="../../../../the_basics/core/utilities/"&gt;The Basics: GS_Core&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;h2 id="contents"&gt;Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#api-reference"&gt;API Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#usage-example"&gt;Usage Example&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#see-also"&gt;See Also&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="api-reference"&gt;API Reference&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Function&lt;/th&gt;
 &lt;th&gt;Parameters&lt;/th&gt;
 &lt;th&gt;Description&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;FindClosestWorldPoint&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;AZ::EntityId entityId&lt;/code&gt;, &lt;code&gt;AZ::Vector3 worldPos&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Returns the closest world-space point on the spline attached to &lt;code&gt;entityId&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;FindClosestLocalPoint&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;AZ::EntityId entityId&lt;/code&gt;, &lt;code&gt;AZ::Vector3 localPos&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Returns the closest point in local spline space&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;FindClosestFraction&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;AZ::EntityId entityId&lt;/code&gt;, &lt;code&gt;AZ::Vector3 worldPos&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Returns the normalized [0, 1] fraction along the spline of the closest point to &lt;code&gt;worldPos&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;hr&gt;
&lt;h2 id="usage-example"&gt;Usage Example&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;GS_Core/Utility/SplineUtility.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Find how far along a path the player is (0 = start, 1 = end)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;AZ&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Vector3&lt;/span&gt; &lt;span class="n"&gt;playerPos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GetPlayerWorldPosition&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;fraction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GS_Core&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;SplineUtility&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;FindClosestFraction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;splineEntityId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;playerPos&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// Get the actual closest world position on the path
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;AZ&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;Vector3&lt;/span&gt; &lt;span class="n"&gt;closestPoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;GS_Core&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;SplineUtility&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;FindClosestWorldPoint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;splineEntityId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;playerPos&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="see-also"&gt;See Also&lt;/h2&gt;
&lt;p&gt;For related resources:&lt;/p&gt;</description></item></channel></rss>