{"id":335631,"date":"2022-07-12T15:00:15","date_gmt":"2022-07-12T15:00:15","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=335631"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=335631","title":{"rendered":"<span>[2] \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 Survival Horror \u0432 \u0441\u0442\u0438\u043b\u0435 RE2 \u043d\u0430 Unreal Engine \u0438 \u0421++. \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u043c \u0438 \u043a\u0430\u043c\u0435\u0440\u043e\u0439<\/span>"},"content":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w780q1\/getpro\/habr\/upload_files\/677\/7de\/017\/6777de017c9488885c70212dcfbc7517.jpeg\" width=\"1200\" height=\"675\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/677\/7de\/017\/6777de017c9488885c70212dcfbc7517.jpeg\" data-blurred=\"true\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0438\u043c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0421++ \u043a\u043b\u0430\u0441\u0441\u043e\u0432 &#8212;\u00a0<strong>Character<\/strong>,\u00a0<strong>Player Controller<\/strong>\u00a0\u0438\u00a0<strong>GameMode<\/strong>.<\/p>\n<p>\u0412 Content Browser \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0443\u00a0<strong>&#171;\u0421++ Classes&#187;<\/strong><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/464\/559\/aff\/464559aff46072fdc749cf286e724f3e.png\" alt=\"\" title=\"\" width=\"334\" height=\"194\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/464\/559\/aff\/464559aff46072fdc749cf286e724f3e.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u043d\u0435\u0442, \u0442\u043e \u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0436\u0430\u0432 \u043d\u0430\u00a0<strong>View Options<\/strong>\u00a0\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u043d\u0430\u00a0<strong>Show C++ Classes<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/260\/468\/51c\/26046851c5c9a5f501ac1011f58e0455.png\" alt=\"\" title=\"\" width=\"1200\" height=\"318\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/260\/468\/51c\/26046851c5c9a5f501ac1011f58e0455.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u044f \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0421++ \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u0449\u0435\u043b\u043a\u0430\u0435\u043c \u041f\u041a\u041c \u0432 \u043e\u043a\u043d\u0435 Content Browser \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u00a0<strong>New C++ Classes<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c1d\/e5e\/70a\/c1de5e70aadcbbbd0fe4b5fbcead1f86.png\" alt=\"\" title=\"\" width=\"659\" height=\"292\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c1d\/e5e\/70a\/c1de5e70aadcbbbd0fe4b5fbcead1f86.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043e\u043a\u043d\u043e \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u00a0<strong>Character<\/strong>\u00a0\u0438 \u0449\u0435\u043b\u043a\u0430\u0435\u043c\u00a0<strong>Next<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/115\/2be\/ec7\/1152beec72cca8b724d7c0476c36e673.png\" alt=\"\" title=\"\" width=\"936\" height=\"564\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/115\/2be\/ec7\/1152beec72cca8b724d7c0476c36e673.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0438 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438\u043f\u0438\u0441\u043a\u0443\u00a0<strong>SH(Survival Horror)<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/98f\/b3d\/102\/98fb3d1027c2e9feaae5413927e8b62d.png\" alt=\"\" title=\"\" width=\"936\" height=\"568\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/98f\/b3d\/102\/98fb3d1027c2e9feaae5413927e8b62d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u0436\u043c\u0435\u043c \u043d\u0430\u00a0<strong>Public<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b(*.h) \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Public<\/strong>, \u0430 *.cpp \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Private<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b2f\/870\/749\/b2f870749960aaef3ba871fe71b25150.png\" alt=\"\" title=\"\" width=\"942\" height=\"555\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b2f\/870\/749\/b2f870749960aaef3ba871fe71b25150.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043f\u0443\u0442\u0438 \u0444\u0430\u0439\u043b\u0430 \u0434\u043e\u043f\u0438\u0448\u0443\u00a0<strong>Player<\/strong>. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0441\u0442\u0441\u044f \u043f\u0430\u043f\u043a\u0430 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0442\u0443\u0434\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441. \u041f\u043e\u0442\u043e\u043c \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c\u00a0<strong>Create Class<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/d1c\/ed9\/f03\/d1ced9f03519e5b478e1f3b42674152f.png\" alt=\"\" title=\"\" width=\"944\" height=\"569\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/d1c\/ed9\/f03\/d1ced9f03519e5b478e1f3b42674152f.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/aee\/ff8\/1ac\/aeeff81acc21067c7febc94b43593ede.png\" alt=\"\" title=\"\" width=\"539\" height=\"502\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/aee\/ff8\/1ac\/aeeff81acc21067c7febc94b43593ede.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c\u00a0<strong>Player Controller<\/strong>\u00a0\u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>SHPlayerController<\/strong>\u00a0\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443\u00a0<strong>Player<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b4b\/a36\/986\/b4ba369866d322a113068b94ea23919f.png\" alt=\"\" title=\"\" width=\"939\" height=\"571\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b4b\/a36\/986\/b4ba369866d322a113068b94ea23919f.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u00a0<strong>GameModeBase<\/strong>\u00a0\u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>SHGameModeBase<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/adc\/ba2\/09f\/adcba209fff8dcf4bc7e79bd81b6bec0.png\" alt=\"\" title=\"\" width=\"938\" height=\"561\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/adc\/ba2\/09f\/adcba209fff8dcf4bc7e79bd81b6bec0.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Public<\/strong>\u00a0\u0438\u00a0<strong>Private<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/de6\/bdc\/ae8\/de6bdcae8558dfb313c13243afbe3edb.png\" alt=\"\" title=\"\" width=\"939\" height=\"564\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/de6\/bdc\/ae8\/de6bdcae8558dfb313c13243afbe3edb.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Content<\/strong>\u00a0\u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0435\u00a0<strong>Blueprints<\/strong>. \u0418 \u0443\u0436\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0430\u043f\u043a\u0443\u00a0<strong>Player.<\/strong><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/e47\/e7e\/728\/e47e7e7285877f0be6f585738dbfbbde.png\" alt=\"\" title=\"\" width=\"323\" height=\"128\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/e47\/e7e\/728\/e47e7e7285877f0be6f585738dbfbbde.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 C++ \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c Blueprint \u043a\u043b\u0430\u0441\u0441\u044b.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0421++ \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0438 \u0449\u0435\u043b\u043a\u0430\u0435\u043c \u041f\u041a\u041c \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0443\u00a0<strong>SHCharacter<\/strong>, \u0432 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u00a0<strong>Create Blueprint class based on SHCharacter<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/774\/775\/663\/774775663d4a06e7e2b2143bb9a04f32.png\" alt=\"\" title=\"\" width=\"538\" height=\"131\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/774\/775\/663\/774775663d4a06e7e2b2143bb9a04f32.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043e\u043a\u043d\u043e. \u0417\u0434\u0435\u0441\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430. Blueprint \u043a\u043b\u0430\u0441\u0441\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u00a0<strong>BP_<\/strong>. \u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443, \u0433\u0434\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u00a0<strong>Player<\/strong>. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c\u00a0<strong>Create Blueprint Class<\/strong>.<\/p>\n<p>\u041a\u0430\u043a \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 Unreal Engine \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043d\u0430 GitHub &#8212;\u00a0<a href=\"https:\/\/github.com\/ShadowPKx\/ue4-style-guide-rus\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/ShadowPKx\/ue4-style-guide-rus<\/a><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2eb\/276\/87d\/2eb27687d5fddfff9f9c6798bdfb789d.png\" alt=\"\" title=\"\" width=\"946\" height=\"511\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2eb\/276\/87d\/2eb27687d5fddfff9f9c6798bdfb789d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043e\u043a\u043d\u043e \u0441 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c Blueprint \u043a\u043b\u0430\u0441\u0441\u0430, \u0435\u0433\u043e \u043f\u043e\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0449\u0435 \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f\u00a0<strong>Player Controller<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9b5\/81e\/145\/9b581e1457f2bd91c7c0cb2edfb3199d.png\" alt=\"\" title=\"\" width=\"940\" height=\"510\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9b5\/81e\/145\/9b581e1457f2bd91c7c0cb2edfb3199d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e\u00a0<strong>SHGameModeBase<\/strong>, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0430\u043f\u043a\u0443\u00a0<strong>Blueprints<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2be\/998\/f2c\/2be998f2cfc1ea22b5ac9190dd3b95e8.png\" alt=\"\" title=\"\" width=\"936\" height=\"506\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2be\/998\/f2c\/2be998f2cfc1ea22b5ac9190dd3b95e8.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>BP_GameModeBase<\/strong><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/16c\/630\/82a\/16c63082a312d4895b8b314bd288263d.png\" alt=\"\" title=\"\" width=\"477\" height=\"170\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/16c\/630\/82a\/16c63082a312d4895b8b314bd288263d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u00a0<strong>Player Controller Class<\/strong>\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0448 Player Controller<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ba8\/5a5\/764\/ba85a57646f16df7dd7aa2223ce03510.png\" alt=\"\" title=\"\" width=\"878\" height=\"205\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ba8\/5a5\/764\/ba85a57646f16df7dd7aa2223ce03510.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u00a0<strong>Default Pawn Class<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/586\/94f\/f50\/58694ff50b3bbf7919a40623611f363d.png\" alt=\"\" title=\"\" width=\"858\" height=\"154\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/586\/94f\/f50\/58694ff50b3bbf7919a40623611f363d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u00a0<strong>Edit->Project Settings<\/strong>. \u0414\u0430\u043b\u044c\u0448\u0435 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e\u00a0<strong>Maps&amp;Modes<\/strong>. \u0418 \u0432\u00a0<strong>Default GameMode<\/strong>\u00a0\u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/19f\/5da\/4db\/19f5da4db925fdab579ed9d1f3938fff.png\" alt=\"\" title=\"\" width=\"751\" height=\"145\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/19f\/5da\/4db\/19f5da4db925fdab579ed9d1f3938fff.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043a\u0440\u043e\u0435\u043c Blueprint \u043a\u043b\u0430\u0441\u0441\u00a0<strong>BP_SHCharacter\u00a0<\/strong>\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e\u00a0<strong>Skeletal Mesh<\/strong>\u00a0\u043c\u0430\u043d\u0435\u043a\u0435\u043d\u0430.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7bb\/4c9\/852\/7bb4c9852929bde63fc6997eb222eca5.png\" alt=\"\" title=\"\" width=\"388\" height=\"198\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7bb\/4c9\/852\/7bb4c9852929bde63fc6997eb222eca5.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u043c Mesh<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/362\/667\/a30\/362667a300ed10a28d1dfa6b39b448d8.png\" alt=\"\" title=\"\" width=\"303\" height=\"240\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/362\/667\/a30\/362667a300ed10a28d1dfa6b39b448d8.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u00a0<strong>Details<\/strong>\u00a0\u0438\u0449\u0435\u043c\u00a0<strong>Skeletal Mesh<\/strong>\u00a0\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439\u00a0<strong>Mesh<\/strong><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/389\/73c\/26e\/38973c26ead64f5fe21d5cf097f2b5c9.png\" alt=\"\" title=\"\" width=\"413\" height=\"287\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/389\/73c\/26e\/38973c26ead64f5fe21d5cf097f2b5c9.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u043e\u00a0<strong>Viewport<\/strong>\u00a0\u0438 \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e\u00a0<strong>Mesh<\/strong>\u00a0\u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8de\/ba6\/a3a\/8deba6a3ad54da53645af2da0973dde9.png\" alt=\"\" title=\"\" width=\"649\" height=\"524\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8de\/ba6\/a3a\/8deba6a3ad54da53645af2da0973dde9.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e \u043e\u0441\u0438\u00a0<strong>Z<\/strong>\u00a0\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 -88 \u0438 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043d\u0430 -90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/041\/cb6\/25c\/041cb625c2cc9e820a39a10b45d063a0.png\" alt=\"\" title=\"\" width=\"388\" height=\"135\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/041\/cb6\/25c\/041cb625c2cc9e820a39a10b45d063a0.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u0430\u043f\u0441\u0443\u043b\u044b \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0430\u043c &#171;\u0433\u043e\u0432\u043e\u0440\u0438\u0442&#187; \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u0442\u0440\u0435\u043b\u043a\u0430.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bae\/956\/574\/bae956574144c9deca3dfb988bd24064.png\" alt=\"\" title=\"\" width=\"478\" height=\"474\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bae\/956\/574\/bae956574144c9deca3dfb988bd24064.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u043c \u0438 \u043a\u0430\u043c\u0435\u0440\u043e\u0439.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>Edit->Project Settings.\u00a0<\/strong>\u041f\u043e\u0442\u043e\u043c \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e\u00a0<strong>Input<\/strong>. \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c\u00a0<strong>mappings<\/strong>, \u0442.\u0435. \u043a\u043b\u0430\u0432\u0438\u0448\u0438, \u043c\u044b\u0448\u044c, \u043a\u043d\u043e\u043f\u043a\u0438 \u0433\u0435\u0439\u043c\u043f\u0430\u0434\u0430 \u0438 \u0442.\u0434., \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u043a\u0430\u043a\u043e\u0435-\u043b\u0438\u0431\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432 \u0438\u0433\u0440\u0435.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 mapping\u00a0<strong>Action<\/strong>\u00a0\u0438\u00a0<strong>Axis<\/strong>.<\/p>\n<p><strong>Action<\/strong>\u00a0&#8212; \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445 \u0442\u043e \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0432 \u0441 \u041d\u041f\u0421.<\/p>\n<p><strong>Axis<\/strong>\u00a0&#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u043a\u043b\u0438\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0436\u0430\u0442\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432\u043f\u0435\u0440\u0435\u0434.<\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d\u00a0<strong>Axis<\/strong>.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c, \u0442\u043e \u0442\u0430\u043c \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 mappings. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u043e\u0442 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u043b\u0438\u0446\u0430. \u0423\u0434\u0430\u043b\u0438\u043c \u0438\u0445, \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u0440\u0435\u0441\u0442\u0438\u043a \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445. \u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0441 Action.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3f2\/a2f\/a35\/3f2a2fa35e9e8a9e8b0ca02c0ce447d0.png\" alt=\"\" title=\"\" width=\"350\" height=\"194\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3f2\/a2f\/a35\/3f2a2fa35e9e8a9e8b0ca02c0ce447d0.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 &#171;+&#187; \u0438 \u0434\u0430\u0434\u0438\u043c \u0435\u043c\u0443 \u0438\u043c\u044f\u00a0<strong>MoveForward<\/strong>. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u043d\u0430\u0437\u0430\u0434<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6de\/2ee\/e85\/6de2eee85362d62d9c76de2f293787f1.png\" alt=\"\" title=\"\" width=\"443\" height=\"110\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6de\/2ee\/e85\/6de2eee85362d62d9c76de2f293787f1.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0435\u0433\u043e \u043d\u0430\u0436\u043c\u0435\u043c \u043d\u0430 &#171;+&#187;, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0438<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6bc\/b68\/c28\/6bcb68c284ca9f4939d43de3ebc61aae.png\" alt=\"\" title=\"\" width=\"376\" height=\"105\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6bc\/b68\/c28\/6bcb68c284ca9f4939d43de3ebc61aae.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0449\u0435\u043b\u043a\u0430\u0435\u043c \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u044e\u00a0<strong>None<\/strong>\u00a0\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0438\u0441\u043a \u0438\u0449\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0443\u00a0<strong>W<\/strong>, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u043f\u0435\u0440\u0435\u0434.\u00a0<strong>Scale<\/strong>\u00a0\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0430\u0432\u043d\u044b\u043c 1.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/dd3\/6dc\/181\/dd36dc181ae853cf5382209435d24bed.png\" alt=\"\" title=\"\" width=\"416\" height=\"255\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/dd3\/6dc\/181\/dd36dc181ae853cf5382209435d24bed.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0443\u00a0<strong>S<\/strong>, \u0430\u00a0<strong>Scale<\/strong>\u00a0\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 -1.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bed\/d1a\/273\/bedd1a273c3035f7d767b94ae81f0da2.png\" alt=\"\" title=\"\" width=\"404\" height=\"125\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bed\/d1a\/273\/bedd1a273c3035f7d767b94ae81f0da2.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u042d\u0442\u043e\u0442\u00a0<strong>Scale<\/strong>\u00a0\u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 -1 \u0434\u043e 1, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0448\u0438.<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 mapping \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>MoveRight<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/384\/b97\/620\/384b976200f5c73719b4601567611130.png\" alt=\"\" title=\"\" width=\"423\" height=\"151\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/384\/b97\/620\/384b976200f5c73719b4601567611130.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0440\u0435\u0442\u0438\u0439 mapping \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>LookUp<\/strong>\u00a0\u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438.\u00a0<strong>Scale<\/strong>\u00a0\u0441\u0442\u0430\u0432\u0438\u043c -1, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f65\/261\/0c6\/f652610c682b6fe55ad0c92fd8034abf.png\" alt=\"\" title=\"\" width=\"408\" height=\"147\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f65\/261\/0c6\/f652610c682b6fe55ad0c92fd8034abf.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 mapping \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>Turn<\/strong>\u00a0\u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7ae\/71d\/ea8\/7ae71dea8f471782b79f9231587667cb.png\" alt=\"\" title=\"\" width=\"428\" height=\"193\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7ae\/71d\/ea8\/7ae71dea8f471782b79f9231587667cb.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430. \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441\u00a0<strong>SHCharacter.h<\/strong>\u00a0\u0438\u00a0<strong>SHCharacter.cpp.<\/strong><\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0432\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/Camera\/UCameraComponent\/\" rel=\"noopener noreferrer nofollow\"><strong>CameraComponent<\/strong><\/a>\u00a0\u0438\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/USpringArmComponent\/\" rel=\"noopener noreferrer nofollow\"><strong>SpringArmComponet<\/strong><\/a>. \u0422.\u0435. \u043a\u0430\u043c\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0441\u0435\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438 \u043a\u0430\u043a \u0431\u044b \u043b\u0435\u0442\u0430\u0442\u044c \u043f\u043e \u043e\u0440\u0431\u0438\u0442\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435\u00a0<strong>SHCharacter.h<\/strong>\u00a0\u0432 \u0441\u0435\u043a\u0446\u0438\u0438\u00a0<strong>protected<\/strong>\u00a0\u043e\u0431\u044a\u044f\u0432\u0438\u043c \u0434\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u00a0<strong>UCameraComponent<\/strong>\u00a0\u0438\u00a0<strong>USpringArmComponent<\/strong>\u00a0c \u0438\u043c\u0435\u043d\u0430\u043c\u0438\u00a0<strong>CameraComponent<\/strong>\u00a0\u0438\u00a0<strong>SpringArmComponent<\/strong>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b60\/e8e\/239\/b60e8e239491c8c4b2cb61362386c717.png\" alt=\"\" title=\"\" width=\"620\" height=\"136\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b60\/e8e\/239\/b60e8e239491c8c4b2cb61362386c717.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u00a0<strong>UPROPERTY<\/strong>\u00a0\u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 (<em>VisibleAnywhere, BlueprintReadWritem, Category = &#171;Components&#187;<\/em>).<\/p>\n<p>\u041f\u0440\u043e \u043d\u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u043e\u0444\u0444 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/ProgrammingAndScripting\/GameplayArchitecture\/Properties\/Specifiers\/\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.unrealengine.com\/4.26\/en-US\/ProgrammingAndScripting\/GameplayArchitecture\/Properties\/Specifiers\/<\/a><\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u043d\u044b\u043c(\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0443). \u0421\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432\u00a0<strong>SHCharacter.cpp.<\/strong><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d &#171;\u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u043b&#187; \u0438 \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445\u00a0<strong>include<\/strong>\u00a0\u0438 \u043f\u0435\u0440\u0435\u0434 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u043c\u00a0<strong>UCLASS()<\/strong>\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/7c3\/eb1\/0a6\/7c3eb10a6c31f9e11656db821ffec878.png\" alt=\"\" title=\"\" width=\"512\" height=\"221\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/7c3\/eb1\/0a6\/7c3eb10a6c31f9e11656db821ffec878.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432\u00a0<strong>SHCharacter.cpp.\u00a0<\/strong>\u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043d\u043e \u0435\u0449\u0435 \u0438\u0445 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0438.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043d\u0438\u0445.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5b1\/96f\/196\/5b196f19693574115b51a2d0e061c809.png\" alt=\"\" title=\"\" width=\"438\" height=\"130\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5b1\/96f\/196\/5b196f19693574115b51a2d0e061c809.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/994\/ad9\/46c\/994ad946c3e3a77816500c07b43b4996.png\" alt=\"\" title=\"\" width=\"378\" height=\"172\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/994\/ad9\/46c\/994ad946c3e3a77816500c07b43b4996.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/CoreUObject\/UObject\/UObject\/CreateDefaultSubobject\/2\/\" rel=\"noopener noreferrer nofollow\"><strong>CreateDefaultSuboject<\/strong><\/a>. \u0422.\u0435. \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u043a\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c(<strong>USpringArmComponent<\/strong>), \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8fa\/3bb\/2c0\/8fa3bb2c0c0408bb91b4bf49c072489e.png\" alt=\"\" title=\"\" width=\"737\" height=\"53\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/8fa\/3bb\/2c0\/8fa3bb2c0c0408bb91b4bf49c072489e.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0437\u043e\u0432\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/Components\/USceneComponent\/SetupAttachment\/\" rel=\"noopener noreferrer nofollow\"><strong>SetupAttachment<\/strong><\/a>\u00a0\u0443\u00a0<strong>SpringArmComponent<\/strong>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443(<strong>RootComponent<\/strong>).<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/GetRootComponent\/\" rel=\"noopener noreferrer nofollow\"><strong>GetRootComponent<\/strong><\/a>\u00a0\u043a\u0430\u043a \u0440\u0430\u0437 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2cb\/fb9\/ecb\/2cbfb9ecbdbe0e15d42a82cbcc319126.png\" alt=\"\" title=\"\" width=\"542\" height=\"58\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2cb\/fb9\/ecb\/2cbfb9ecbdbe0e15d42a82cbcc319126.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443\u00a0<strong>SpringArmComponent<\/strong>\u00a0\u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/USpringArmComponent\/bUsePawnControlRotation\/\" rel=\"noopener noreferrer nofollow\"><strong>bUsePawnControlRotation<\/strong><\/a>, \u0435\u0433\u043e \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u043d\u0430\u00a0<strong>true<\/strong>, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440\u0430 \u0438 \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u044b\u0448\u0438.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/880\/2c9\/00d\/8802c900d3a964885fd2a57ed9d9e538.png\" alt=\"\" title=\"\" width=\"437\" height=\"51\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/880\/2c9\/00d\/8802c900d3a964885fd2a57ed9d9e538.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/761\/59b\/d85\/76159bd85a3c0c7fea357598b35feb92.png\" alt=\"\" title=\"\" width=\"673\" height=\"66\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/761\/59b\/d85\/76159bd85a3c0c7fea357598b35feb92.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0435\u0435 \u043a \u043d\u0430\u0448\u0435\u043c\u0443\u00a0<strong>SpringArmComponent<\/strong><\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/213\/d86\/292\/213d8629251337b009319a6bc1fcf19e.png\" alt=\"\" title=\"\" width=\"449\" height=\"57\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/213\/d86\/292\/213d8629251337b009319a6bc1fcf19e.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/24c\/f09\/abc\/24cf09abcaa10b48a58d31a8a31c25e6.png\" alt=\"\" title=\"\" width=\"872\" height=\"315\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/24c\/f09\/abc\/24cf09abcaa10b48a58d31a8a31c25e6.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>BP_SHCharacter<\/strong>.<\/p>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2ba\/850\/cbb\/2ba850cbb484173ad638296f9d9da634.png\" alt=\"\" title=\"\" width=\"359\" height=\"250\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2ba\/850\/cbb\/2ba850cbb484173ad638296f9d9da634.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0442\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0438\u043c \u043a\u0430\u043c\u0435\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0438\u0441\u0438\u0442 \u043d\u0430 \u043a\u0440\u0430\u044e\u00a0<strong>SpringArmComponent<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/6dd\/20b\/3fa\/6dd20b3fa19d2c3bdcffba4e47dc6de5.png\" alt=\"\" title=\"\" width=\"694\" height=\"445\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/6dd\/20b\/3fa\/6dd20b3fa19d2c3bdcffba4e47dc6de5.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u044b\u0431\u0435\u0440\u0435\u043c\u00a0<strong>SpringArmComponent<\/strong>\u00a0\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u042f \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f5\/edb\/3d3\/5f5edb3d32760e549a225c9adb64a3f6.png\" alt=\"\" title=\"\" width=\"395\" height=\"303\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5f5\/edb\/3d3\/5f5edb3d32760e549a225c9adb64a3f6.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043c\u0435\u0440\u0430 \u0443 \u043c\u0435\u043d\u044f \u0432\u0438\u0441\u0438\u0442 \u043a\u0430\u043a \u0431\u044b \u0438\u0437-\u0437\u0430 \u043f\u043b\u0435\u0447\u0430<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a52\/7e5\/0fd\/a527e50fd13a974d58dcb54d1649df96.png\" alt=\"\" title=\"\" width=\"1042\" height=\"513\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a52\/7e5\/0fd\/a527e50fd13a974d58dcb54d1649df96.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u0432 \u0444\u0430\u0439\u043b\u00a0<strong>SHCharacter.h<\/strong><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e. \u0412 \u043d\u0435\u0439 \u043e\u0431\u044a\u044f\u0432\u0438\u043c \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong>MoveForward<\/strong>\u00a0\u0438\u00a0<strong>MoveRight<\/strong>\u00a0\u0441 \u043e\u0434\u043d\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0442\u0438\u043f\u0430\u00a0<strong>float<\/strong>. \u0412 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a11\/09e\/d77\/a1109ed77beea2664e83d54cc8115c14.png\" alt=\"\" title=\"\" width=\"340\" height=\"114\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a11\/09e\/d77\/a1109ed77beea2664e83d54cc8115c14.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>SHCharacter.cpp\u00a0<\/strong>\u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0435\u043b\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/48e\/ee8\/9ac\/48eee89ac2d5e1fc336b83af27b43d86.png\" alt=\"\" title=\"\" width=\"393\" height=\"163\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/48e\/ee8\/9ac\/48eee89ac2d5e1fc336b83af27b43d86.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430\u00a0<strong>PlayerInputComponent<\/strong>, \u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u0442 &#171;\u0431\u0438\u043d\u0434\u0438\u0442\u044c&#187; \u043d\u0430\u0448\u0438 mapping \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438\u00a0<strong>MoveForward\u00a0<\/strong>\u0438\u00a0<strong>MoveRight<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f1c\/367\/a43\/f1c367a43172f2dce4d5a65ac5940f69.png\" alt=\"\" title=\"\" width=\"689\" height=\"150\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f1c\/367\/a43\/f1c367a43172f2dce4d5a65ac5940f69.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0423\u00a0<strong>PlayerInputComponent<\/strong>\u00a0\u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<strong>BindAxis<\/strong>. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f mapping, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212; \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0430\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/854\/8ff\/db1\/8548ffdb11bd37080f3f2dacc491b53d.png\" alt=\"\" title=\"\" width=\"716\" height=\"55\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/854\/8ff\/db1\/8548ffdb11bd37080f3f2dacc491b53d.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u043c \u0441\u00a0<strong>MoveRight<\/strong><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a2b\/609\/6e6\/a2b6096e6df8fd6fdfed20ce716d7902.png\" alt=\"\" title=\"\" width=\"706\" height=\"66\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a2b\/609\/6e6\/a2b6096e6df8fd6fdfed20ce716d7902.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u0442\u0435\u043b\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong>MoveForward<\/strong>\u00a0\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0442\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/APawn\/AddMovementInput\/\" rel=\"noopener noreferrer nofollow\"><strong>AddMovementInput<\/strong><\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430. \u0414\u043b\u044f \u043d\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439(<a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/GetActorForwardVector\/\" rel=\"noopener noreferrer nofollow\"><strong>GetActorForwardVector<\/strong><\/a>), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u043a\u0443\u0434\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u00a0<strong>Actor<\/strong>.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439, \u044d\u0442\u043e \u043d\u0430\u0448\u00a0<strong>Scale<\/strong>\u00a0mapping&#8217;a \u043e\u0442 -1 \u0434\u043e 1. \u041d\u0430 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u043a\u0430.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c95\/84b\/fdb\/c9584bfdbbd4c2ad9b3a0eb0d1d12e48.png\" alt=\"\" title=\"\" width=\"563\" height=\"101\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c95\/84b\/fdb\/c9584bfdbbd4c2ad9b3a0eb0d1d12e48.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u043c \u0438 \u0441\u00a0<strong>MoveRight<\/strong>. \u0422\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u00a0<a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/GetActorRightVector\/\" rel=\"noopener noreferrer nofollow\"><strong>GetActorRightVector<\/strong><\/a>.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/29c\/458\/274\/29c4582740a27ae927fa8226cc38fbff.png\" alt=\"\" title=\"\" width=\"594\" height=\"112\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/29c\/458\/274\/29c4582740a27ae927fa8226cc38fbff.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u00a0<strong>PlayerInputComponent<\/strong>\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong>BindAxis<\/strong>\u00a0\u0434\u043b\u044f mapping&#8217;\u043e\u0432\u00a0<strong>LookUp<\/strong>\u00a0\u0438\u00a0<strong>Turn<\/strong>. \u0412 Unreal Engine \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u043c\u0435\u0440\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0438\u0445.<\/p>\n<p>\u0414\u043b\u044f LookUp &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/API\/Runtime\/Engine\/GameFramework\/APawn\/AddControllerPitchInput\/\" rel=\"noopener noreferrer nofollow\"><strong>AddControllerPitchInput<\/strong><\/a><\/p>\n<p>\u0414\u043b\u044f Turn &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/APawn\/AddControllerYawInput\/\" rel=\"noopener noreferrer nofollow\"><strong>AddControllerYawInput<\/strong><\/a><\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/813\/3be\/5a4\/8133be5a430102fea60d366371219236.png\" alt=\"\" title=\"\" width=\"770\" height=\"62\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/813\/3be\/5a4\/8133be5a430102fea60d366371219236.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044f \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u0442\u043e \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u0432\u0430\u0448\u0435\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435, \u043b\u0430\u0439\u043a\u0443 \u0438\u043b\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0443:)<\/p>\n<p>\u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0432\u0438\u0434\u0435\u043e<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62cd70368a07305a932417c2\" data-style=\"\" id=\"62cd70368a07305a932417c2\" width=\"\"><\/div>\n<p><strong>\u041f\u043e\u0434\u043f\u0438\u0448\u0438\u0441\u044c:<\/strong><\/p>\n<blockquote>\n<p><em>Discord &#8212;\u00a0<\/em><a href=\"http:\/\/discord.gg\/CqZTXY4zwG\" rel=\"noopener noreferrer nofollow\"><em>discord.gg\/CqZTXY4zwG<\/em><\/a><\/p>\n<\/blockquote>\n<blockquote>\n<p><em>VK &#8212;\u00a0<\/em><a href=\"http:\/\/vk.com\/vlakugames\" rel=\"noopener noreferrer nofollow\"><em>vk.com\/vlakugames<\/em><\/a><\/p>\n<\/blockquote>\n<blockquote>\n<p><em>Youtube &#8212;\u00a0<\/em><a href=\"http:\/\/vk.cc\/cchfQD\" rel=\"noopener noreferrer nofollow\"><em>vk.cc\/cchfQD<\/em><\/a><\/p>\n<\/blockquote>\n<blockquote>\n<p><em>Rutube &#8212;\u00a0<\/em><a href=\"https:\/\/rutube.ru\/channel\/23334940\/\" rel=\"noopener noreferrer nofollow\"><em>https:\/\/rutube.ru\/channel\/23334940\/<\/em><\/a><\/p>\n<\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/676530\/\"> https:\/\/habr.com\/ru\/post\/676530\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u0438\u043c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439.<\/p>\n<p>\u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0421++ \u043a\u043b\u0430\u0441\u0441\u043e\u0432 &#8212;\u00a0<strong>Character<\/strong>,\u00a0<strong>Player Controller<\/strong>\u00a0\u0438\u00a0<strong>GameMode<\/strong>.<\/p>\n<p>\u0412 Content Browser \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u043f\u0430\u043f\u043a\u0443\u00a0<strong>&#171;\u0421++ Classes&#187;<\/strong><\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u043d\u0435\u0442, \u0442\u043e \u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043d\u0430\u0436\u0430\u0432 \u043d\u0430\u00a0<strong>View Options<\/strong>\u00a0\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u043d\u0430\u00a0<strong>Show C++ Classes<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u044f \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0421++ \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438, \u0449\u0435\u043b\u043a\u0430\u0435\u043c \u041f\u041a\u041c \u0432 \u043e\u043a\u043d\u0435 Content Browser \u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u00a0<strong>New C++ Classes<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043e\u043a\u043d\u043e \u0441 \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u00a0<strong>Character<\/strong>\u00a0\u0438 \u0449\u0435\u043b\u043a\u0430\u0435\u043c\u00a0<strong>Next<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043e\u043a\u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430 \u0438 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u0414\u043b\u044f \u0432\u0441\u0435\u0445 \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0438\u043f\u0438\u0441\u043a\u0443\u00a0<strong>SH(Survival Horror)<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043d\u0430\u0436\u043c\u0435\u043c \u043d\u0430\u00a0<strong>Public<\/strong>, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b(*.h) \u043d\u0430\u0445\u043e\u0434\u0438\u043b\u0438\u0441\u044c \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Public<\/strong>, \u0430 *.cpp \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Private<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043f\u0443\u0442\u0438 \u0444\u0430\u0439\u043b\u0430 \u0434\u043e\u043f\u0438\u0448\u0443\u00a0<strong>Player<\/strong>. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0441\u0442\u0441\u044f \u043f\u0430\u043f\u043a\u0430 \u0441 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0442\u0443\u0434\u0430 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u0441\u044f \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441. \u041f\u043e\u0442\u043e\u043c \u043d\u0430\u0436\u0438\u043c\u0430\u0435\u043c\u00a0<strong>Create Class<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043a\u043e\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c\u00a0<strong>Player Controller<\/strong>\u00a0\u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>SHPlayerController<\/strong>\u00a0\u0438 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u043c \u0435\u0433\u043e \u0432 \u043f\u0430\u043f\u043a\u0443\u00a0<strong>Player<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043a\u043b\u0430\u0441\u0441\u00a0<strong>GameModeBase<\/strong>\u00a0\u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>SHGameModeBase<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043b\u0435\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u0432 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Public<\/strong>\u00a0\u0438\u00a0<strong>Private<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043f\u0430\u043f\u043a\u0435\u00a0<strong>Content<\/strong>\u00a0\u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u0430\u043f\u043a\u0443 \u0438 \u043d\u0430\u0437\u043e\u0432\u0435\u043c \u0435\u0435\u00a0<strong>Blueprints<\/strong>. \u0418 \u0443\u0436\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0430\u043f\u043a\u0443\u00a0<strong>Player.<\/strong><\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 C++ \u043a\u043b\u0430\u0441\u0441\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c Blueprint \u043a\u043b\u0430\u0441\u0441\u044b.<\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u043f\u0430\u043f\u043a\u0443 \u0441 \u0421++ \u043a\u043b\u0430\u0441\u0441\u0430\u043c\u0438 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0438 \u0449\u0435\u043b\u043a\u0430\u0435\u043c \u041f\u041a\u041c \u043f\u043e \u043a\u043b\u0430\u0441\u0441\u0443\u00a0<strong>SHCharacter<\/strong>, \u0432 \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0435\u043c\u0441\u044f \u043c\u0435\u043d\u044e \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c\u00a0<strong>Create Blueprint class based on SHCharacter<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u043e\u043a\u043d\u043e. \u0417\u0434\u0435\u0441\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0438\u043c\u044f \u043a\u043b\u0430\u0441\u0441\u0430. Blueprint \u043a\u043b\u0430\u0441\u0441\u044b \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0442\u044c \u0441 \u043f\u0440\u0435\u0444\u0438\u043a\u0441\u0430\u00a0<strong>BP_<\/strong>. \u0422\u0430\u043a\u0436\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u043f\u043a\u0443, \u0433\u0434\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0435\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c, \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435\u00a0<strong>Player<\/strong>. \u041d\u0430\u0436\u0438\u043c\u0430\u0435\u043c\u00a0<strong>Create Blueprint Class<\/strong>.<\/p>\n<p>\u041a\u0430\u043a \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 Unreal Engine \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043d\u0430 GitHub &#8212;\u00a0<a href=\"https:\/\/github.com\/ShadowPKx\/ue4-style-guide-rus\" rel=\"noopener noreferrer nofollow\">https:\/\/github.com\/ShadowPKx\/ue4-style-guide-rus<\/a><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0442\u043a\u0440\u043e\u0435\u0442\u0441\u044f \u043e\u043a\u043d\u043e \u0441 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c Blueprint \u043a\u043b\u0430\u0441\u0441\u0430, \u0435\u0433\u043e \u043f\u043e\u043a\u0430 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c. \u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0435\u0449\u0435 \u0434\u0432\u0430 \u043a\u043b\u0430\u0441\u0441\u0430.<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f\u00a0<strong>Player Controller<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e\u00a0<strong>SHGameModeBase<\/strong>, \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0441\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0430\u043f\u043a\u0443\u00a0<strong>Blueprints<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>BP_GameModeBase<\/strong><\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0417\u0434\u0435\u0441\u044c \u0432\u00a0<strong>Player Controller Class<\/strong>\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430\u0448 Player Controller<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0442\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u00a0<strong>Default Pawn Class<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u044c\u0448\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u00a0<strong>Edit->Project Settings<\/strong>. \u0414\u0430\u043b\u044c\u0448\u0435 \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e\u00a0<strong>Maps&amp;Modes<\/strong>. \u0418 \u0432\u00a0<strong>Default GameMode<\/strong>\u00a0\u0432\u044b\u0431\u0435\u0440\u0435\u043c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043a\u0440\u043e\u0435\u043c Blueprint \u043a\u043b\u0430\u0441\u0441\u00a0<strong>BP_SHCharacter\u00a0<\/strong>\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e\u00a0<strong>Skeletal Mesh<\/strong>\u00a0\u043c\u0430\u043d\u0435\u043a\u0435\u043d\u0430.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0412 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430\u0445 \u043d\u0430\u0445\u043e\u0434\u0438\u043c Mesh<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u00a0<strong>Details<\/strong>\u00a0\u0438\u0449\u0435\u043c\u00a0<strong>Skeletal Mesh<\/strong>\u00a0\u0438 \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0434\u043b\u044f \u043d\u0435\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439\u00a0<strong>Mesh<\/strong><\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u043e\u00a0<strong>Viewport<\/strong>\u00a0\u0438 \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e\u00a0<strong>Mesh<\/strong>\u00a0\u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0438 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0442\u044c<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e \u043e\u0441\u0438\u00a0<strong>Z<\/strong>\u00a0\u043e\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0435\u0433\u043e \u043d\u0430 -88 \u0438 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c \u043d\u0430 -90 \u0433\u0440\u0430\u0434\u0443\u0441\u043e\u0432<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0434 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u0430\u043f\u0441\u0443\u043b\u044b \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u043e\u0431 \u044d\u0442\u043e\u043c \u043d\u0430\u043c &#171;\u0433\u043e\u0432\u043e\u0440\u0438\u0442&#187; \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0441\u0442\u0440\u0435\u043b\u043a\u0430.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u043c \u043a \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u043a\u043e\u0434\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0435\u043c \u0438 \u043a\u0430\u043c\u0435\u0440\u043e\u0439.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>Edit->Project Settings.\u00a0<\/strong>\u041f\u043e\u0442\u043e\u043c \u0432 \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044e\u00a0<strong>Input<\/strong>. \u0417\u0434\u0435\u0441\u044c \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c\u00a0<strong>mappings<\/strong>, \u0442.\u0435. \u043a\u043b\u0430\u0432\u0438\u0448\u0438, \u043c\u044b\u0448\u044c, \u043a\u043d\u043e\u043f\u043a\u0438 \u0433\u0435\u0439\u043c\u043f\u0430\u0434\u0430 \u0438 \u0442.\u0434., \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u043a\u0430\u043a\u043e\u0435-\u043b\u0438\u0431\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0432 \u0438\u0433\u0440\u0435.<\/p>\n<p>\u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0442\u0438\u043f\u0430 mapping\u00a0<strong>Action<\/strong>\u00a0\u0438\u00a0<strong>Axis<\/strong>.<\/p>\n<p><strong>Action<\/strong>\u00a0&#8212; \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0442 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445 \u0442\u043e \u0440\u0430\u0437\u043e\u0432\u044b\u0439 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0436\u0430\u0442\u044c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0433\u043e\u0432\u043e\u0440\u043e\u0432 \u0441 \u041d\u041f\u0421.<\/p>\n<p><strong>Axis<\/strong>\u00a0&#8212; \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043a\u043e\u0433\u0434\u0430 \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442\u043a\u043b\u0438\u043a \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u043a\u0430\u0434\u0440\u0435. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430, \u043a\u043e\u0433\u0434\u0430 \u0437\u0430\u0436\u0430\u0442\u0430 \u043a\u043b\u0430\u0432\u0438\u0448\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u0432\u043f\u0435\u0440\u0435\u0434.<\/p>\n<p>\u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043c \u043d\u0443\u0436\u0435\u043d\u00a0<strong>Axis<\/strong>.<\/p>\n<p>\u0415\u0441\u043b\u0438 \u0435\u0433\u043e \u0441\u0435\u0439\u0447\u0430\u0441 \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c, \u0442\u043e \u0442\u0430\u043c \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435 mappings. \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438 \u0448\u0430\u0431\u043b\u043e\u043d \u043e\u0442 \u0442\u0440\u0435\u0442\u044c\u0435\u0433\u043e \u043b\u0438\u0446\u0430. \u0423\u0434\u0430\u043b\u0438\u043c \u0438\u0445, \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 \u043a\u0440\u0435\u0441\u0442\u0438\u043a \u043d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0438\u0437 \u043d\u0438\u0445. \u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u0442\u044c \u0441 Action.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u043d\u0430\u0436\u0430\u0432 \u043d\u0430 &#171;+&#187; \u0438 \u0434\u0430\u0434\u0438\u043c \u0435\u043c\u0443 \u0438\u043c\u044f\u00a0<strong>MoveForward<\/strong>. \u041e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u043d\u0430\u0437\u0430\u0434<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430\u043f\u0440\u043e\u0442\u0438\u0432 \u043d\u0435\u0433\u043e \u043d\u0430\u0436\u043c\u0435\u043c \u043d\u0430 &#171;+&#187;, \u0447\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u043e \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0438<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0449\u0435\u043b\u043a\u0430\u0435\u043c \u043f\u043e \u043f\u0435\u0440\u0432\u043e\u043c\u0443 \u043f\u043e\u043b\u044e\u00a0<strong>None<\/strong>\u00a0\u0438 \u0447\u0435\u0440\u0435\u0437 \u043f\u043e\u0438\u0441\u043a \u0438\u0449\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0443\u00a0<strong>W<\/strong>, \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432\u043f\u0435\u0440\u0435\u0434.\u00a0<strong>Scale<\/strong>\u00a0\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0440\u0430\u0432\u043d\u044b\u043c 1.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0443\u00a0<strong>S<\/strong>, \u0430\u00a0<strong>Scale<\/strong>\u00a0\u0438\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u043d\u0430 -1.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u042d\u0442\u043e\u0442\u00a0<strong>Scale<\/strong>\u00a0\u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043e\u0442 -1 \u0434\u043e 1, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043d\u0430\u0436\u0430\u0442\u043e\u0439 \u043a\u043b\u0430\u0432\u0438\u0448\u0438.<\/p>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043d\u043e\u0432\u044b\u0439 mapping \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>MoveRight<\/strong>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u0435 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u044b.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0440\u0435\u0442\u0438\u0439 mapping \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>LookUp<\/strong>\u00a0\u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u043f\u043e \u0432\u0435\u0440\u0442\u0438\u043a\u0430\u043b\u0438.\u00a0<strong>Scale<\/strong>\u00a0\u0441\u0442\u0430\u0432\u0438\u043c -1, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0431\u044b\u043b\u043e \u0438\u043d\u0432\u0435\u0440\u0441\u0438\u0438.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 mapping \u0441 \u0438\u043c\u0435\u043d\u0435\u043c\u00a0<strong>Turn<\/strong>\u00a0\u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 \u0437\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439 \u043f\u043e \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u0438<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430. \u041d\u0430\u043c \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u0442\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044c \u043d\u0430\u0448 \u043a\u043b\u0430\u0441\u0441\u00a0<strong>SHCharacter.h<\/strong>\u00a0\u0438\u00a0<strong>SHCharacter.cpp.<\/strong><\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u0432\u0430 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430 &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/Camera\/UCameraComponent\/\" rel=\"noopener noreferrer nofollow\"><strong>CameraComponent<\/strong><\/a>\u00a0\u0438\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/USpringArmComponent\/\" rel=\"noopener noreferrer nofollow\"><strong>SpringArmComponet<\/strong><\/a>. \u0422.\u0435. \u043a\u0430\u043c\u0435\u0440\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u0438\u0441\u0435\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0435 \u0438 \u043a\u0430\u043a \u0431\u044b \u043b\u0435\u0442\u0430\u0442\u044c \u043f\u043e \u043e\u0440\u0431\u0438\u0442\u0435 \u0432\u043e\u043a\u0440\u0443\u0433 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0432 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u043e\u043c \u0444\u0430\u0439\u043b\u0435\u00a0<strong>SHCharacter.h<\/strong>\u00a0\u0432 \u0441\u0435\u043a\u0446\u0438\u0438\u00a0<strong>protected<\/strong>\u00a0\u043e\u0431\u044a\u044f\u0432\u0438\u043c \u0434\u0432\u0430 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u043d\u0430\u00a0<strong>UCameraComponent<\/strong>\u00a0\u0438\u00a0<strong>USpringArmComponent<\/strong>\u00a0c \u0438\u043c\u0435\u043d\u0430\u043c\u0438\u00a0<strong>CameraComponent<\/strong>\u00a0\u0438\u00a0<strong>SpringArmComponent<\/strong>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0414\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u043c\u0430\u043a\u0440\u043e\u0441\u00a0<strong>UPROPERTY<\/strong>\u00a0\u0441\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c\u0438 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u0430\u043c\u0438 (<em>VisibleAnywhere, BlueprintReadWritem, Category = &#171;Components&#187;<\/em>).<\/p>\n<p>\u041f\u0440\u043e \u043d\u0438\u0445 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0432 \u043e\u0444\u0444 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/ProgrammingAndScripting\/GameplayArchitecture\/Properties\/Specifiers\/\" rel=\"noopener noreferrer nofollow\">https:\/\/docs.unrealengine.com\/4.26\/en-US\/ProgrammingAndScripting\/GameplayArchitecture\/Properties\/Specifiers\/<\/a><\/p>\n<p>\u0421\u0435\u0439\u0447\u0430\u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u043f\u043e\u0434\u0441\u0432\u0435\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u043d\u044b\u043c(\u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0443). \u0421\u0432\u044f\u0437\u0430\u043d\u043e \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432. \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432\u00a0<strong>SHCharacter.cpp.<\/strong><\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0439 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u043e\u043d &#171;\u043d\u0435 \u043f\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u043b&#187; \u0438 \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u0432\u0441\u0435\u0445\u00a0<strong>include<\/strong>\u00a0\u0438 \u043f\u0435\u0440\u0435\u0434 \u043c\u0430\u043a\u0440\u043e\u0441\u043e\u043c\u00a0<strong>UCLASS()<\/strong>\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0441\u0442\u0440\u043e\u043a\u0438.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u0432\u00a0<strong>SHCharacter.cpp.\u00a0<\/strong>\u0412 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0434\u043b\u044f \u044d\u0442\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043d\u043e \u0435\u0449\u0435 \u0438\u0445 \u043d\u0435 \u0441\u043e\u0437\u0434\u0430\u043b\u0438.<\/p>\n<p>\u0421\u043d\u0430\u0447\u0430\u043b\u0430 \u043c\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043c \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u0447\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u043d\u0438\u0445.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u043a\u043b\u0430\u0441\u0441\u0430 \u0431\u0443\u0434\u0435\u043c \u0438\u0445 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0448\u0430\u0431\u043b\u043e\u043d\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/CoreUObject\/UObject\/UObject\/CreateDefaultSubobject\/2\/\" rel=\"noopener noreferrer nofollow\"><strong>CreateDefaultSuboject<\/strong><\/a>. \u0422.\u0435. \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043a\u0430\u043a\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c(<strong>USpringArmComponent<\/strong>), \u0430 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0432\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0437\u043e\u0432\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/Components\/USceneComponent\/SetupAttachment\/\" rel=\"noopener noreferrer nofollow\"><strong>SetupAttachment<\/strong><\/a>\u00a0\u0443\u00a0<strong>SpringArmComponent<\/strong>, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0435\u0433\u043e \u043a \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u043c\u0443 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0443(<strong>RootComponent<\/strong>).<\/p>\n<p>\u0424\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/GetRootComponent\/\" rel=\"noopener noreferrer nofollow\"><strong>GetRootComponent<\/strong><\/a>\u00a0\u043a\u0430\u043a \u0440\u0430\u0437 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0443\u00a0<strong>SpringArmComponent<\/strong>\u00a0\u0435\u0441\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/USpringArmComponent\/bUsePawnControlRotation\/\" rel=\"noopener noreferrer nofollow\"><strong>bUsePawnControlRotation<\/strong><\/a>, \u0435\u0433\u043e \u043c\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u043d\u0430\u00a0<strong>true<\/strong>, \u0447\u0442\u043e\u0431\u044b \u044d\u0442\u043e\u0442 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0432\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0435\u0440\u0430 \u0438 \u043c\u044b \u043c\u043e\u0433\u043b\u0438 \u043f\u043e\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u044b\u0448\u0438.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442 \u043a\u0430\u043c\u0435\u0440\u044b.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0435\u043c \u0435\u0435 \u043a \u043d\u0430\u0448\u0435\u043c\u0443\u00a0<strong>SpringArmComponent<\/strong><\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043a\u043e\u0434 \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0441\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>BP_SHCharacter<\/strong>.<\/p>\n<p>\u0423 \u043d\u0430\u0441 \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0434\u0432\u0430 \u043d\u0430\u0448\u0438\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u0430<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0418 \u0442\u0430\u043a\u0436\u0435 \u0432\u0438\u0434\u0438\u043c \u043a\u0430\u043c\u0435\u0440\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u0438\u0441\u0438\u0442 \u043d\u0430 \u043a\u0440\u0430\u044e\u00a0<strong>SpringArmComponent<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u044b\u0431\u0435\u0440\u0435\u043c\u00a0<strong>SpringArmComponent<\/strong>\u00a0\u0438 \u0438\u0437\u043c\u0435\u043d\u0438\u043c \u0435\u0433\u043e \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u0435. \u042f \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u041a\u0430\u043c\u0435\u0440\u0430 \u0443 \u043c\u0435\u043d\u044f \u0432\u0438\u0441\u0438\u0442 \u043a\u0430\u043a \u0431\u044b \u0438\u0437-\u0437\u0430 \u043f\u043b\u0435\u0447\u0430<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u0434\u0430 \u0432 \u0444\u0430\u0439\u043b\u00a0<strong>SHCharacter.h<\/strong><\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e. \u0412 \u043d\u0435\u0439 \u043e\u0431\u044a\u044f\u0432\u0438\u043c \u0434\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong>MoveForward<\/strong>\u00a0\u0438\u00a0<strong>MoveRight<\/strong>\u00a0\u0441 \u043e\u0434\u043d\u0438\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u0442\u0438\u043f\u0430\u00a0<strong>float<\/strong>. \u0412 \u044d\u0442\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0431\u0443\u0434\u0435\u0442 \u043b\u043e\u0433\u0438\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432\u00a0<strong>SHCharacter.cpp\u00a0<\/strong>\u0438 \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0435\u043b\u043e \u0434\u043b\u044f \u043d\u0430\u0448\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u0430\u043a\u0436\u0435 \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430\u00a0<strong>PlayerInputComponent<\/strong>, \u0432 \u044d\u0442\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u0442 &#171;\u0431\u0438\u043d\u0434\u0438\u0442\u044c&#187; \u043d\u0430\u0448\u0438 mapping \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438\u00a0<strong>MoveForward\u00a0<\/strong>\u0438\u00a0<strong>MoveRight<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0423\u00a0<strong>PlayerInputComponent<\/strong>\u00a0\u0435\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u00a0<strong>BindAxis<\/strong>. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0438\u043c\u044f mapping, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435. \u0412\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 &#8212; \u044d\u0442\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044c \u043d\u0430 \u043e\u0431\u044a\u0435\u043a\u0442, \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0435\u0442 \u0432\u044b\u0437\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0438 \u0442\u0440\u0435\u0442\u0438\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u044d\u0442\u043e \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0441\u0430\u043c\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0410\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u043c \u0441\u00a0<strong>MoveRight<\/strong><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u0442\u0435\u043b\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong>MoveForward<\/strong>\u00a0\u0438 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0442\u0430\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/APawn\/AddMovementInput\/\" rel=\"noopener noreferrer nofollow\"><strong>AddMovementInput<\/strong><\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430. \u0414\u043b\u044f \u043d\u0435\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432.<\/p>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439, \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f. \u0412\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439(<a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/GetActorForwardVector\/\" rel=\"noopener noreferrer nofollow\"><strong>GetActorForwardVector<\/strong><\/a>), \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u043a\u0442\u043e\u0440 \u043a\u0443\u0434\u0430 \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u00a0<strong>Actor<\/strong>.<\/p>\n<p>\u0412\u0442\u043e\u0440\u043e\u0439, \u044d\u0442\u043e \u043d\u0430\u0448\u00a0<strong>Scale<\/strong>\u00a0mapping&#8217;a \u043e\u0442 -1 \u0434\u043e 1. \u041d\u0430 \u044d\u0442\u043e \u0447\u0438\u0441\u043b\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u043c\u043d\u043e\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u0435\u043a\u0442\u043e\u0440 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0436\u0430 \u0432 \u043d\u0443\u0436\u043d\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0437\u043d\u0430\u043a\u0430.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435 \u043f\u0440\u043e\u0434\u0435\u043b\u044b\u0432\u0430\u0435\u043c \u0438 \u0441\u00a0<strong>MoveRight<\/strong>. \u0422\u043e\u043b\u044c\u043a\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u00a0<a href=\"https:\/\/docs.unrealengine.com\/5.0\/en-US\/API\/Runtime\/Engine\/GameFramework\/AActor\/GetActorRightVector\/\" rel=\"noopener noreferrer nofollow\"><strong>GetActorRightVector<\/strong><\/a>.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u0430\u043c\u0435\u0440\u043e\u0439.<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0443\u00a0<strong>PlayerInputComponent<\/strong>\u00a0\u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u0438\u00a0<strong>BindAxis<\/strong>\u00a0\u0434\u043b\u044f mapping&#8217;\u043e\u0432\u00a0<strong>LookUp<\/strong>\u00a0\u0438\u00a0<strong>Turn<\/strong>. \u0412 Unreal Engine \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u0430\u043c\u0435\u0440\u043e\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u044b \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043d\u0438\u0445.<\/p>\n<p>\u0414\u043b\u044f LookUp &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.27\/en-US\/API\/Runtime\/Engine\/GameFramework\/APawn\/AddControllerPitchInput\/\" rel=\"noopener noreferrer nofollow\"><strong>AddControllerPitchInput<\/strong><\/a><\/p>\n<p>\u0414\u043b\u044f Turn &#8212;\u00a0<a href=\"https:\/\/docs.unrealengine.com\/4.26\/en-US\/API\/Runtime\/Engine\/GameFramework\/APawn\/AddControllerYawInput\/\" rel=\"noopener noreferrer nofollow\"><strong>AddControllerYawInput<\/strong><\/a><\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u044f \u0437\u0430\u043a\u0430\u043d\u0447\u0438\u0432\u0430\u044e. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0441\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442, \u0442\u043e \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u0432\u0430\u0448\u0435\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u043a\u0435, \u043b\u0430\u0439\u043a\u0443 \u0438\u043b\u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0443:)<\/p>\n<p>\u0422\u043e\u0436\u0435 \u0441\u0430\u043c\u043e\u0435, \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0432\u0438\u0434\u0435\u043e<\/p>\n<div class=\"tm-iframe_temp\" data-src=\"https:\/\/embedd.srv.habr.com\/iframe\/62cd70368a07305a932417c2\" data-style=\"\" id=\"62cd70368a07305a932417c2\" width=\"\"><\/div>\n<p><strong>\u041f\u043e\u0434\u043f\u0438\u0448\u0438\u0441\u044c:<\/strong><\/p>\n<blockquote>\n<p><em>Discord &#8212;\u00a0<\/em><a href=\"http:\/\/discord.gg\/CqZTXY4zwG\" rel=\"noopener noreferrer nofollow\"><em>discord.gg\/CqZTXY4zwG<\/em><\/a><\/p>\n<\/blockquote>\n<blockquote>\n<p><em>VK &#8212;\u00a0<\/em><a href=\"http:\/\/vk.com\/vlakugames\" rel=\"noopener noreferrer nofollow\"><em>vk.com\/vlakugames<\/em><\/a><\/p>\n<\/blockquote>\n<blockquote>\n<p><em>Youtube &#8212;\u00a0<\/em><a href=\"http:\/\/vk.cc\/cchfQD\" rel=\"noopener noreferrer nofollow\"><em>vk.cc\/cchfQD<\/em><\/a><\/p>\n<\/blockquote>\n<blockquote>\n<p><em>Rutube &#8212;\u00a0<\/em><a href=\"https:\/\/rutube.ru\/channel\/23334940\/\" rel=\"noopener noreferrer nofollow\"><em>https:\/\/rutube.ru\/channel\/23334940\/<\/em><\/a><\/p>\n<\/blockquote>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"v-portal\" style=\"display:none;\"><\/div>\n<\/div>\n<p> <!----> <!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/676530\/\"> https:\/\/habr.com\/ru\/post\/676530\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-335631","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/335631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=335631"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/335631\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=335631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=335631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=335631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}