{"id":4192,"date":"2024-12-03T15:34:03","date_gmt":"2024-12-03T07:34:03","guid":{"rendered":"https:\/\/lonelinerd.com\/?p=4192"},"modified":"2025-07-22T21:33:40","modified_gmt":"2025-07-22T13:33:40","slug":"ue5_spline_patrol_points","status":"publish","type":"post","link":"https:\/\/lonelinerd.com\/index.php\/2024\/12\/03\/ue5_spline_patrol_points\/","title":{"rendered":"[C++\/UE5] \u4f7f\u7528Spline\u9032\u884cAI\u5de1\u908f\u8def\u7dda\u958b\u767c\u7684\u7d93\u9a57\u5206\u4eab"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"4192\" class=\"elementor elementor-4192\">\n\t\t\t\t\t\t<div class=\"elementor-inner\">\n\t\t\t\t<div class=\"elementor-section-wrap\">\n\t\t\t\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-30968e9 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"30968e9\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8d94f55\" data-id=\"8d94f55\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-bc6bc20 elementor-widget elementor-widget-text-editor\" data-id=\"bc6bc20\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>\u00a0 \u00a0 \u00a0 \u00a0 \u6700\u8fd1\u5728\u5de5\u4f5c\u4e0a\u63a5\u5230\u4e00\u500b\u9700\u6c42\uff0c\u662f\u8981\u7d66\u7b56\u5283\u63d0\u4f9b\u914d\u7f6eNpc\u7684\u5de1\u908f\u8def\u7dda\u7684\u6d41\u7a0b\u3002\u4e00\u958b\u59cb\u56e0\u70ba\u7b56\u5283\u90a3\u908a\u4e26\u6c92\u6709\u751a\u9ebc\u8981\u6c42\uff0c\u53ea\u8981\u80fd\u5728\u4e0d\u540c\u9ede\u4e4b\u9593\u5de1\u908f\u5c31\u884c\uff0c\u6240\u4ee5\u70ba\u4e86\u8caa\u65b9\u4fbf\uff0c\u5c31\u505a\u4e86\u6700\u7c21\u55ae\u6700\u7d93\u5178\u7684\u4e00\u7248\u3002\u5c31\u662f\u5728\u5834\u666f\u4e0a\u4e8b\u5148\u653e\u597dN\u500b\u9ede\uff0c\u7136\u5f8cNpc\u85cd\u5716\u518d\u63a5\u6536\u4e00\u500bActor\u5217\u8868\u7684\u8b8a\u91cf\uff0c\u628a\u9019\u4e9b\u9ede\u62d6\u7d66\u9019\u500b\u8b8a\u91cf\uff1b\u6700\u5f8c\u518d\u8b93Npc\u901a\u904e\u884c\u70ba\u6a39\u7684\u57f7\u884c\uff0c\u5206\u5225\u7528\u9806\u5e8f\u6a21\u5f0f\uff081-&gt;2-&gt;3-&gt;1-&gt;2-&gt;3\uff09\u6216YoYo\u6a21\u5f0f\uff081-&gt;2-&gt;3-&gt;2-&gt;1\uff09\u4f86\u904d\u6b77\u79fb\u52d5\u5230\u9019\u4e9b\u5de1\u908f\u9edeActor\u4e0a\u3002<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-f42eb42 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"f42eb42\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b04235a\" data-id=\"b04235a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-f40a733 elementor-widget elementor-widget-image\" data-id=\"f40a733\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"480\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/a69a83c94fbde718d799ed03f2bc085-1024x480.png\" class=\"attachment-large size-large wp-image-4201\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/a69a83c94fbde718d799ed03f2bc085-1024x480.png 1024w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/a69a83c94fbde718d799ed03f2bc085-300x141.png 300w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/a69a83c94fbde718d799ed03f2bc085-768x360.png 768w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/a69a83c94fbde718d799ed03f2bc085.png 1362w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0591392 elementor-widget elementor-widget-image\" data-id=\"0591392\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"693\" height=\"397\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/9dccaf1ba9452d74bbd10c3161c62c8.png\" class=\"attachment-large size-large wp-image-4202\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/9dccaf1ba9452d74bbd10c3161c62c8.png 693w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/9dccaf1ba9452d74bbd10c3161c62c8-300x172.png 300w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3441cab elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3441cab\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3f3cb9c\" data-id=\"3f3cb9c\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-01bc8d3 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"01bc8d3\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-811e63f elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"811e63f\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b7c58ec\" data-id=\"b7c58ec\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-976552f elementor-widget elementor-widget-text-editor\" data-id=\"976552f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>\u00a0 \u00a0 \u00a0 \u00a0 \u9019\u500b\u65b9\u6cd5\u96d6\u7136\u7528\u78ba\u5be6\u80fd\u7528\uff0c\u8dd1\u8d77\u4f86\u4e5f\u6c92\u554f\u984c\uff1b\u4f46\u662f\u6709\u592a\u591a\u539f\u56e0\uff0c\u4ee5\u81f4\u65bc\u5f8c\u9762\u5be6\u969b\u914d\u8d77\u4f86\u9084\u662f\u5404\u7a2e\u4e0d\u65b9\u4fbf\uff0c\u6bd4\u5982\u7531\u65bcUE\u5728Outliner\u88e1\u591a\u9078Actor\u662f\u4e0d\u6703\u628a\u4ed6\u5011\u7684\u4f4d\u7f6e\u90fd\u986f\u793a\u51fa\u4f86\u7684\uff1b\u800c\u4e14\u7d66Npc\u7684\u5217\u8868\u8b8a\u91cf\u8ce6\u503c\u4e5f\u4e0d\u50cfUnity\u90a3\u6a23\uff0c\u53ef\u4ee5\u76f4\u63a5\u628a\u591a\u500b\u5c0d\u8c61\u62d6\u5230\u8b8a\u91cf\u4e0a\uff0c\u800c\u662f\u8981\u4e00\u500b\u4e00\u500b\u62d6\uff0c\u592a\u96e3\u53d7\u4e86\u3002<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u800c\u4e14\u9019\u7a2e\u65b9\u6cd5\u4e5f\u53ea\u652f\u6301\u9ede\u5230\u9ede\u7684\u76f4\u7dda\u79fb\u52d5\uff0c\u5f88\u96e3\u505a\u5230\u4e00\u7a2e\u5713\u6ed1\u62d0\u5f4e\u7684\u611f\u89ba\uff0c\u6240\u4ee5\u5f8c\u9762Leader\u5c31\u8b93\u6211\u5617\u8a66\u627e\u4e00\u4e0b\u50cf\u7b56\u5283\u914d\u6cb3\u6d41\u3001\u5f4e\u8def\u9019\u7a2e\u5de5\u5177\uff0c\u770b\u770b\u80fd\u4e0d\u80fd\u4e5f\u61c9\u7528\u5728\u5de1\u908f\u8def\u7dda\u7684\u914d\u7f6e\u4e0a\u3002<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u7d50\u679c\u9084\u771f\u7d66\u6211\u627e\u5230\u4e86Spline\u9019\u500b\u7d44\u4ef6\u3002Spline\u7684\u529f\u80fd\u7c21\u55ae\u4f86\u8aaa\u5c31\u662f\u7d66\u7528\u6236\u5728\u5834\u666f\u4e0a\u6a19\u8a18\u591a\u500b\u9ede\uff0c\u7136\u5f8c\u5b83\u6703\u6839\u64da\u6bcf\u5169\u500b\u9ede\u4e4b\u9593\u7684tangent\u503c\uff0c\u5f97\u51fa\u80fd\u9023\u4e0a\u5169\u9ede\u7684\u7dda\u6bb5\u3002\u7136\u5f8c\u9019\u4e9b\u9ede\u53ef\u4ee5\u9078\u4e2d\u55ae\u7368\u79fb\u52d5\uff0c\u6309\u4f4fAlt\u518d\u62d6\u52d5\u6703\u65b0\u589e\u4e00\u500b\u65b0\u9ede\uff0cSpline\u985e\u4e5f\u63d0\u4f9b\u4e86\u7372\u53d6\u9019\u4e9b\u9ede\u3001\u6839\u64da\u8d77\u9ede\u958b\u59cb\u8ddd\u96e2\u7372\u53d6\u5177\u9ad4Location\u3001\u6839\u64daLocation\u7372\u53d6\u5728\u7dda\u6bb5\u4e0a\u7684\u8ddd\u96e2\u7b49\u63a5\u53e3\uff1b\u6700\u91cd\u8981\u7684\u4e00\u9ede\u662f\uff0c\u5b83\u9084\u6703\u986f\u793a\u51fa\u5177\u9ad4\u7684\u8def\u7dda\uff01<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u6240\u4ee5\u6211\u5efa\u4e86\u4e00\u500bActor\u85cd\u5716\uff0c\u52a0\u4e86Spline\u7d44\uff0c\u4e26\u96a8\u4fbf\u52a0\u4e86\u4e00\u4e9b\u9ede\uff0c\u5927\u6982\u7684\u6548\u679c\u5c31\u662f\u9019\u6a23\uff1a<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9090594 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9090594\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2d7f25b\" data-id=\"2d7f25b\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-53f8237 elementor-widget elementor-widget-image\" data-id=\"53f8237\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"450\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/6da4f9d089f5a41a6e0422f55261c47-1024x450.png\" class=\"attachment-large size-large wp-image-4212\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/6da4f9d089f5a41a6e0422f55261c47-1024x450.png 1024w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/6da4f9d089f5a41a6e0422f55261c47-300x132.png 300w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/6da4f9d089f5a41a6e0422f55261c47-768x338.png 768w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/6da4f9d089f5a41a6e0422f55261c47-1536x676.png 1536w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/6da4f9d089f5a41a6e0422f55261c47.png 1553w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-aa38a1d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"aa38a1d\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fa3f3fc\" data-id=\"fa3f3fc\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0930334 elementor-widget elementor-widget-text-editor\" data-id=\"0930334\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>\u00a0 \u00a0 \u00a0 \u00a0 \u7136\u5f8c\u6211\u901a\u904eSplineComponent.GetLocationAtSplinePoint(Index, SpaceType)\u5206\u5225\u7372\u53d6\u5230\u9019\u4e9b\u9ede\u7684\u4e16\u754c\u5750\u6a19\uff0c\u4e26\u61c9\u7528\u5230\u4e0a\u4e00\u5957\u7684\u76f4\u7dda\u79fb\u52d5\u65b9\u6848\u7576\u4e2d\uff0c\u5c31\u5be6\u73fe\u4e86\u57fa\u672c\u7684Spline\u5de1\u908f\u8def\u7dda\u914d\u7f6e<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7b90f77 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7b90f77\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b2ae55a\" data-id=\"b2ae55a\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-af5d043 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"af5d043\" data-element_type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-cpp'>FVector AYLSplinePath::GetPatrolPointLocationByIndex(int Index, ESplineCoordinateSpace::Type SpaceType)\r\n{\r\n\tConfirmSplineComp();\r\n\t\r\n\tif(SplineComp)\r\n\t{\r\n\t\tint SplinePointCount = SplineComp-&gt;GetNumberOfSplinePoints();\r\n\t\tif(Index &gt;= 0 &amp;&amp; Index &lt; SplinePointCount)\r\n\t\t{\r\n\t\t\treturn SplineComp-&gt;GetLocationAtSplinePoint(Index, SpaceType);\r\n\t\t}\r\n\t}\r\n\treturn FVector::ZeroVector;\r\n}<\/code><\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9bcb2bf elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9bcb2bf\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5f9cdf3\" data-id=\"5f9cdf3\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0a2f999 elementor-widget elementor-widget-video\" data-id=\"0a2f999\" data-element_type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/patrol.mp4\" controls=\"\" preload=\"metadata\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-20387f5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"20387f5\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-40afe88\" data-id=\"40afe88\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b08d741 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"b08d741\" data-element_type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-65aad20 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"65aad20\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7f8e532\" data-id=\"7f8e532\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b311f28 elementor-widget elementor-widget-text-editor\" data-id=\"b311f28\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>\u00a0 \u00a0 \u00a0 \u00a0 \u4f46\u662f\u65e2\u7136\u5df2\u7d93\u6709\u5177\u9ad4\u7684\u8def\u7dda\u4e86\uff0c\u55ae\u7d14\u7684\u76f4\u7dda\u79fb\u52d5\u80af\u5b9a\u4e0d\u6eff\u8db3\u9700\u6c42\u4e86\u3002Spline\u96d6\u7136\u6709\u7d66\u6bcf\u500b\u9ede\u7684\u4f4d\u7f6e\uff0c\u4f46\u662f\u537b\u6c92\u6709\u63d0\u4f9b\u8b93Actor\u6cbf\u8457\u7dda\u6bb5\u79fb\u52d5\u7684\u63a5\u53e3\uff0c\u6240\u4ee5\u9019\u4e00\u584a\u6211\u5011\u53ea\u80fd\u81ea\u5df1\u505a\u3002<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u5728\u7db2\u4e0a\u641c\u4e86\u4e00\u5708\uff0c\u4e00\u822c\u4f86\u8aaa\u6709\u5169\u7a2e\u601d\u8def\uff1a<\/p><ul><li>\u4f7f\u7528Timeline\u6642\u9593\u8ef8\uff0c\u8b93Actor\u57280\u52301\u4e4b\u9593\uff08\u5169\u9ede\u7684\u8d77\u9ede\u5230\u7d42\u9ede\uff09\u4e4b\u9593\u9032\u884c\u63d2\u503c\u79fb\u52d5<\/li><li>\u5728\u5169\u9ede\u4e4b\u9593\u5207\u6210\u591a\u500b\u5b50\u7dda\u6bb5\uff0c\u7136\u5f8c\u8b93Actor\u904d\u6b77\u79fb\u52d5\u9019\u4e9b\u5b50\u7dda\u6bb5\uff0c\u5207\u5206\u8d8a\u591a\uff0c\u8d8a\u7b26\u5408\u7dda\u6bb5\u7684\u8def\u7dda<\/li><li>\u53c3\u8003\u8cc7\u6599<ul><li><a href=\"https:\/\/www.youtube.com\/watch?v=UIF1PcmZkGA\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=UIF1PcmZkGA<\/a><\/li><li><a href=\"https:\/\/www.youtube.com\/watch?v=-V6D5WtemMI\" target=\"_blank\" rel=\"noopener\">https:\/\/www.youtube.com\/watch?v=-V6D5WtemMI<\/a><\/li><li><a href=\"https:\/\/blog.csdn.net\/qq_44924388\/article\/details\/132706912\" target=\"_blank\" rel=\"noopener\">https:\/\/blog.csdn.net\/qq_44924388\/article\/details\/132706912<\/a><\/li><\/ul><\/li><\/ul><p>\u00a0 \u00a0 \u00a0 \u00a0 \u7b2c\u4e00\u7a2e\u592a\u8907\u96dc\uff0c\u9084\u8981\u4f9d\u8cf4Timeline\uff0c\u800c\u4e14\u7531\u65bc\u6211\u5011\u662f\u7528\u4f86\u6230\u9b25Npc\u7684\u5de1\u908f\u529f\u80fd\uff0c\u96a8\u6642\u6703\u96e2\u958b\/\u8fd4\u56de\u5de1\u908f\u8def\u7dda\uff0c\u4e0d\u662f\u90a3\u7a2e\u53ea\u9700\u8981\u4e00\u76f4\u5faa\u74b0\u64ad\u653e\u5c31\u884c\u7684\u52d5\u756b\uff0c\u6240\u4ee5\u6211\u9078\u64c7\u4e86\u7b2c\u4e8c\u7a2e\u601d\u8def\u9032\u884c\u958b\u767c\u3002<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u5728\u7b2c\u4e8c\u7a2e\u601d\u8def\u7684\u60c5\u6cc1\u4e0b\uff0c\u600e\u6a23\u5207\u5206\u5b50\u7dda\u6bb5\uff0c\u8b93\u5b83\u5011\u7528\u4e00\u7a2e\u600e\u6a23\u7684\u5206\u5e03\u4e5f\u662f\u4e00\u500b\u554f\u984c\u3002\u5982\u679c\u4f7f\u7528\u5e73\u5747\u5206\u5e03\uff1a<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0\u00a0<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c44f474 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c44f474\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f421f03\" data-id=\"f421f03\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c74c731 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"c74c731\" data-element_type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-cpp'>\tFVector FirstLocation = GetPatrolPointLocationByIndex(PrevIndex, SpaceType);\r\n\tFVector NextLocation = GetPatrolPointLocationByIndex(CurrIndex, SpaceType);\r\n\t\r\n\tfloat Distance1 = SplineComp-&gt;GetDistanceAlongSplineAtSplinePoint(PrevIndex);\r\n\tfloat Distance2 = SplineComp-&gt;GetDistanceAlongSplineAtSplinePoint(CurrIndex);\r\n\tfloat DistanceDiff = Distance2 - Distance1;\r\n\tfloat Step = DistanceDiff \/ SplitCount;\r\n\t\r\n\tTArray&lt;FVector&gt; Results;\r\n\tfor(int i = 0; i &lt; SplitCount; i++)\r\n\t{\r\n\t    FVector TargetPos = SplineComp-&gt;GetLocationAtDistanceAlongSpline(Distance1 + Step * (i + 1), SpaceType);\r\n\t    Results.Add(TargetPos);\r\n\t}<\/code><\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a233854 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a233854\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a0a0970\" data-id=\"a0a0970\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-9e7e56f elementor-widget elementor-widget-text-editor\" data-id=\"9e7e56f\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>\u00a0 \u00a0 \u00a0 \u00a0 \u5728\u5169\u9ede\u4e4b\u9593\u7684\u76f4\u7dda\u90e8\u5206\uff0c\u662f\u975e\u5e38\u7a69\u5b9a\u7684\u80fd\u6cbf\u8457\u7dda\u6bb5\u8d70\uff0c\u4f46\u662f\u5728\u7dda\u6bb5\u8d77\u9ede\/\u7d42\u9ede\u7684\u8f49\u5f4e\u90e8\u5206\uff0c\u5c31\u6703\u5448\u73fe\u76f4\u7dda\u79fb\u52d5\u7684\u8868\u73fe\u3002\u5169\u9ede\u7684\u8ddd\u96e2\u8d8a\u5927\uff0c\u7dda\u6bb5\u8d8a\u9577\uff0c\u5206\u5272\u6578\u91cf\u8d8a\u5c11\uff0c\u9019\u500b\u60c5\u6cc1\u8d8a\u56b4\u91cd\uff0c\u56e0\u70ba\u7b2c\u4e00\u500b\u5b50\u7dda\u6bb5\u548c\u6700\u5f8c\u4e00\u500b\u5b50\u7dda\u6bb5\u5f88\u53ef\u80fd\u6c92\u6709\u5f88\u597d\u7684\u8986\u84cb\u5230\u8d77\u9ede\u548c\u7d42\u9ede\u7684\u5f4e\u66f2\u90e8\u5206\u3002<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u70ba\u4e86\u89e3\u6c7a\u9019\u500b\u554f\u984c\uff0c\u6211\u9700\u8981\u4e00\u7a2e\u628a\u5b50\u7dda\u6bb5\u4e3b\u8981\u5206\u5e03\u5728\u8d77\u9ede\u548c\u7d42\u9ede\u7684\u5206\u5272\u65b9\u5f0f\uff0c\u7d93\u904e\u641c\u7d22\uff0c\u6211\u627e\u5230\u4e86SmoothStep\u51fd\u6578\uff0c\u662fS\u578b\u51fd\u6578\u7684\u4e00\u7a2e\u3002<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-4be7e51 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"4be7e51\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9741588\" data-id=\"9741588\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6c4bbef elementor-widget elementor-widget-image\" data-id=\"6c4bbef\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-image\">\n\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"1017\" height=\"575\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/f97d902fe48118f5753518ee5d33d74.png\" class=\"attachment-large size-large wp-image-4234\" alt=\"\" srcset=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/f97d902fe48118f5753518ee5d33d74.png 1017w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/f97d902fe48118f5753518ee5d33d74-300x170.png 300w, https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/f97d902fe48118f5753518ee5d33d74-768x434.png 768w\" sizes=\"auto, (max-width: 1017px) 100vw, 1017px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ea933a7 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ea933a7\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-59649bf\" data-id=\"59649bf\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-7330e6d elementor-widget elementor-widget-text-editor\" data-id=\"7330e6d\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>\u00a0 \u00a0 \u00a0 \u00a0 \u5728\u6211\u7684\u60c5\u6cc1\u4e0b\uff0cx = i\/SplitCount &#8211; 1\uff0c0 &lt;= i &lt;= SplitCount &#8211; 1\u3002i = 0\u6642\uff0c \u5b50\u9ede\u4f4d\u65bc\u8d77\u9ede\u4e0a\uff0ci = SplitCount &#8211; 1\u6642\uff0c\u5b50\u9ede\u4f4d\u65bc\u7d42\u9ede\u4e0a\uff1b\u5728\u7dda\u6bb5\u4e2d\u9593\u524d\u7684\u5176\u4ed6\u9ede\uff0c\u8ddd\u96e2\u6703\u8d8a\u4f86\u8d8a\u758f\u9060\uff1b\u800c\u5728\u4e2d\u9593\u5f8c\u7684\u9ede\uff0c\u8ddd\u96e2\u53c8\u6703\u8d8a\u4f86\u8d8a\u7dca\u5bc6\u3002<\/p><p>\u00a0 \u00a0 \u00a0 \u00a0 \u70ba\u4e86\u61c9\u7528\u9019\u5957\u898f\u5247\uff0c\u6211\u6839\u64da3x^2 &#8211; 2x^3\u7372\u53d6\u5230\u5177\u9ad4\u67d0\u500b\u5b50\u9ede\u5728\u8d77\u9ede\u548c\u7d42\u9ede\u9593\u7684\u63d2\u503c\uff08Alpha\uff09\uff0c\u7136\u5f8c\u901a\u904eFMath::Lerp(\u8d77\u9edeDistance\uff0c\u7d42\u9edeDistance\uff0cAlpha\uff09\u7372\u53d6\u5230\u8a72\u5b50\u9ede\u6240\u5728\u7684Distance\uff1b\u6700\u5f8c\u901a\u904eSplineComp-&gt;GetLocationAtDistanceAlongSpline\uff0c\u6839\u64da\u8ddd\u96e2\u7372\u53d6\u5230\u5177\u9ad4\u7684Location\u3002<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-923ca63 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"923ca63\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-5433936\" data-id=\"5433936\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6f4fd65 elementor-widget elementor-widget-code-block-for-elementor\" data-id=\"6f4fd65\" data-element_type=\"widget\" data-widget_type=\"code-block-for-elementor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<pre class='line-numbers theme-okaidia' data-show-toolbar='yes'><code class='language-cpp'>TArray&lt;FVector&gt; AYLSplinePath::SplitMidPointsBetweenPatrolPoints(int PrevIndex, int CurrIndex, int SplitCount, ESplineCoordinateSpace::Type SpaceType)\r\n{\r\n\tConfirmSplineComp();\r\n\r\n\tTArray&lt;FVector&gt; Result;\r\n\t\r\n\tif(SplineComp &amp;&amp; SplitCount &gt; 1)\r\n\t{\r\n\t\tint SplinePointCount = SplineComp-&gt;GetNumberOfSplinePoints();\r\n\t\tif(PrevIndex &gt;= 0 &amp;&amp; PrevIndex &lt; SplinePointCount &amp;&amp;\r\n\t\t\tCurrIndex &gt;= 0 &amp;&amp; CurrIndex &lt; SplinePointCount)\r\n\t\t{\r\n\t\t\tFVector FirstLocation = GetPatrolPointLocationByIndex(PrevIndex, SpaceType);\r\n\t\t\tFVector NextLocation = GetPatrolPointLocationByIndex(CurrIndex, SpaceType);\r\n\t\t\t\r\n\t\t\tfloat Distance1 = SplineComp-&gt;GetDistanceAlongSplineAtSplinePoint(PrevIndex);\r\n\t\t\tfloat Distance2 = SplineComp-&gt;GetDistanceAlongSplineAtSplinePoint(CurrIndex);\r\n\t\t\tUE_LOG(LogTemp, Log, TEXT(&quot;Distance1: %f, Distance2: %f&quot;), Distance1, Distance2);\r\n\r\n\t\t\tTArray&lt;float&gt; NormalizedDistances;\r\n\t\t\t\r\n\t\t\tfor(int i = 0; i &lt; SplitCount; ++i)\r\n\t\t\t{\r\n\t\t\t\tfloat Alpha = static_cast&lt;float&gt;(i) \/ static_cast&lt;float&gt;(SplitCount - 1);\r\n\t\t\t\tAlpha = 3 * FMath::Pow(Alpha, 2) - 2 * FMath::Pow(Alpha, 3);\r\n\t\t\t\tNormalizedDistances.Add(Alpha);\r\n\t\t\t\t\r\n\t\t\t\tfloat Distance = FMath::Lerp(Distance1, Distance2, Alpha);\r\n\t\t\t\tFVector Location = SplineComp-&gt;GetLocationAtDistanceAlongSpline(Distance, SpaceType);\r\n\t\t\t\tUE_LOG(LogTemp, Log, TEXT(&quot;Alpha: %f, Location: %s, Distance: %f&quot;), Alpha, *Location.ToString(), Distance);\r\n\r\n\t\t\t\tResult.Add(Location);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tResult.Insert(FirstLocation, 0);\r\n\t\t\tResult.Add(NextLocation);\r\n\t\t}\r\n\t}\r\n\r\n\treturn Result;\r\n}<\/code><\/pre>\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7d93884 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7d93884\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-26d2e66\" data-id=\"26d2e66\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-08eece9 elementor-widget elementor-widget-text-editor\" data-id=\"08eece9\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t<div class=\"elementor-text-editor elementor-clearfix\">\n\t\t\t\t<p>\u00a0 \u00a0 \u00a0 \u00a0 \u6700\u5f8c\uff0c\u662fSplitCount = 16\u7684\u8868\u73fe<\/p>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-030c5cc elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"030c5cc\" data-element_type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t\t\t<div class=\"elementor-row\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c5031d9\" data-id=\"c5031d9\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-column-wrap elementor-element-populated\">\n\t\t\t\t\t\t\t<div class=\"elementor-widget-wrap\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-91820d1 elementor-widget elementor-widget-video\" data-id=\"91820d1\" data-element_type=\"widget\" data-settings=\"{&quot;video_type&quot;:&quot;hosted&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"e-hosted-video elementor-wrapper elementor-open-inline\">\n\t\t\t\t\t<video class=\"elementor-video\" src=\"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/12\/patrol2.mp4\" controls=\"\" preload=\"metadata\" controlsList=\"nodownload\"><\/video>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u5982\u4f55\u4f7f\u7528Spline\u8b93\u5de1\u908f\u5f9e\u9ede\u5230\u9ede\u7684\u76f4\u7dda\u79fb\u52d5\uff0c\u5347\u7d1a\u81f3\u652f\u6301\u66f2\u7dda\u62d0\u89d2\u7684\u79fb\u52d5<\/p>\n","protected":false},"author":1,"featured_media":4068,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,17],"tags":[],"class_list":["post-4192","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-notes","category-devnotes"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/lonelinerd.com\/wp-content\/uploads\/2024\/03\/FeatureCover_Unreal5ArtificialIntelligence.png","_links":{"self":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/4192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/comments?post=4192"}],"version-history":[{"count":39,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/4192\/revisions"}],"predecessor-version":[{"id":4240,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/posts\/4192\/revisions\/4240"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media\/4068"}],"wp:attachment":[{"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/media?parent=4192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/categories?post=4192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lonelinerd.com\/index.php\/wp-json\/wp\/v2\/tags?post=4192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}