{"id":31927,"date":"2024-11-01T09:04:16","date_gmt":"2024-11-01T09:04:16","guid":{"rendered":"http:\/\/atmokpo.com\/w\/?p=31927"},"modified":"2024-11-01T11:34:07","modified_gmt":"2024-11-01T11:34:07","slug":"unity-basic-course-enemy-character-status","status":"publish","type":"post","link":"https:\/\/atmokpo.com\/w\/31927\/","title":{"rendered":"Unity Basic Course: Enemy Character Status"},"content":{"rendered":"<p>In game development, enemy characters play an important role in interaction with the player. The management of enemy AI and behavior is a crucial element that determines the fun and challenges of the game. In this course, we will explore how to implement enemy character states using Unity. This process will cover state patterns, animations, and AI logic in detail.<\/p>\n<h2>1. Understanding Unity and Enemy Characters<\/h2>\n<p>Unity is a very useful engine for game development. It allows for easy creation of 2D and 3D games. Enemy characters interact with the player and influence the game&#8217;s progression, making state management important.<\/p>\n<h3>1.1 Definition of Enemy Characters<\/h3>\n<p>Enemy characters refer to those that confront the player in the game world, performing actions such as combat, chasing, and defending. They include elements such as weapons, health, and status effects, and these elements interact to determine the enemy&#8217;s behavior.<\/p>\n<h3>1.2 Necessity of a State System<\/h3>\n<p>A state system represents the current situation of the enemy character. For example, the enemy character can have the following states:<\/p>\n<ul>\n<li>Idle State (Idle)<\/li>\n<li>Chasing State (Chasing)<\/li>\n<li>Attacking State (Attacking)<\/li>\n<li>Hit State (Hit)<\/li>\n<li>Dead State (Dead)<\/li>\n<\/ul>\n<p>Each state affects the enemy&#8217;s behavior, and transition rules can create natural behavior patterns.<\/p>\n<h2>2. Setting Up a Unity Project<\/h2>\n<p>Create a new project in Unity to implement enemy characters. Prepare a basic Unity environment. You can choose a 2D or 3D environment, and you need to prepare the sprite or model for the enemy character.<\/p>\n<h3>2.1 Creating a New Project<\/h3>\n<pre>\n1. Launch Unity.\n2. Click 'New Project'.\n3. Name the project and select 2D or 3D.\n4. Click the 'Create' button to create the project.\n<\/pre>\n<h3>2.2 Creating Game Objects<\/h3>\n<pre>\n1. Right-click in the Hierarchy and select '3D Object' or '2D Object' to create the enemy character object.\n2. Rename the enemy character to 'Enemy'.\n3. Add animations and sprites as needed.\n<\/pre>\n<h2>3. Implementing State Patterns<\/h2>\n<p>One of the best ways to manage the state of enemy characters is to use the state pattern. This allows each state to be implemented as a separate class, enabling the enemy to take different actions based on its state.<\/p>\n<h3>3.1 Defining the State Interface<\/h3>\n<pre>\npublic interface IEnemyState\n{\n    void Enter(Enemy enemy);\n    void Update(Enemy enemy);\n    void Exit(Enemy enemy);\n}\n<\/pre>\n<p>Each state implements the Enter, Update, and Exit methods to define the logic executed when the enemy enters, updates, and exits a state.<\/p>\n<h3>3.2 Implementing Each State Class<\/h3>\n<p>You need to create classes for each state, such as Idle, Chasing, and Attacking.<\/p>\n<pre>\npublic class IdleState : IEnemyState\n{\n    public void Enter(Enemy enemy) {\n        \/\/ Start idle animation\n        enemy.animator.SetTrigger(\"Idle\");\n    }\n\n    public void Update(Enemy enemy) {\n        \/\/ Check conditions to chase the player\n        if (Vector3.Distance(enemy.transform.position, player.position) < enemy.chaseDistance) {\n            enemy.ChangeState(new ChaseState());\n        }\n    }\n\n    public void Exit(Enemy enemy) {\n        \/\/ End idle state\n    }\n}\n\npublic class ChaseState : IEnemyState\n{\n    public void Enter(Enemy enemy) {\n        \/\/ Start chasing animation\n        enemy.animator.SetTrigger(\"Chasing\");\n    }\n\n    public void Update(Enemy enemy) {\n        \/\/ Move towards the player\n        enemy.transform.position = Vector3.MoveTowards(enemy.transform.position, player.position, enemy.speed * Time.deltaTime);\n        \n        \/\/ Switch to attack state when near\n        if (Vector3.Distance(enemy.transform.position, player.position) < enemy.attackDistance) {\n            enemy.ChangeState(new AttackState());\n        }\n    }\n\n    public void Exit(Enemy enemy) {\n        \/\/ End chasing state\n    }\n}\n\npublic class AttackState : IEnemyState\n{\n    public void Enter(Enemy enemy) {\n        \/\/ Start attacking animation\n        enemy.animator.SetTrigger(\"Attacking\");\n    }\n\n    public void Update(Enemy enemy) {\n        \/\/ Attack the player\n        enemy.Attack();\n        \n        \/\/ Transition to idle state after attack\n        enemy.ChangeState(new IdleState());\n    }\n\n    public void Exit(Enemy enemy) {\n        \/\/ End attacking state\n    }\n}\n<\/pre>\n<h3>3.3 Managing State Transitions<\/h3>\n<p>Add a method to manage state transitions in the Enemy class.<\/p>\n<pre>\npublic class Enemy : MonoBehaviour\n{\n    private IEnemyState currentState;\n\n    public Animator animator;\n    public float speed;\n    public float chaseDistance;\n    public float attackDistance;\n\n    void Start() {\n        ChangeState(new IdleState());\n    }\n\n    void Update() {\n        currentState.Update(this);\n    }\n\n    public void ChangeState(IEnemyState newState) {\n        if (currentState != null) {\n            currentState.Exit(this);\n        }\n        currentState = newState;\n        currentState.Enter(this);\n    }\n\n    public void Attack() {\n        \/\/ Logic to damage the player\n    }\n}\n<\/pre>\n<h2>4. Connecting Animations<\/h2>\n<p>Integrate animations based on states to make the enemy character's actions feel natural.<\/p>\n<h3>4.1 Setting Up Animations<\/h3>\n<p>Use an Animator Controller to set up animations corresponding to each state. Using triggers for animation transitions allows for smooth transitions.<\/p>\n<h3>4.2 Connecting the Animator Controller<\/h3>\n<p>Connect the written Animator Controller to the enemy character's Animator Component and set triggers for each animation state accordingly.<\/p>\n<h2>5. Implementing Interaction with the Player<\/h2>\n<p>Implement how the enemy character interacts with the player. For example, you can add attack logic that decreases the player's health.<\/p>\n<h3>5.1 Writing the Player Script<\/h3>\n<pre>\npublic class Player : MonoBehaviour\n{\n    public int health = 100;\n\n    public void TakeDamage(int damage) {\n        health -= damage;\n        if (health <= 0) {\n            Die();\n        }\n    }\n\n    public void Die() {\n        \/\/ Handle player death\n    }\n}\n<\/pre>\n<h3>5.2 Modifying the Enemy Attack Method<\/h3>\n<pre>\npublic void Attack() {\n    Player player = FindObjectOfType<Player>();\n    if (player != null) {\n        player.TakeDamage(10);  \/\/ Apply 10 damage.\n    }\n}\n<\/pre>\n<h2>6. Enhancing Enemy AI<\/h2>\n<p>Make the enemy character's behavior more complex to create challenging situations. For example, extend the enemy's attack range or add logic to return to an idle state after fleeing.<\/p>\n<h3>6.1 Adding Varied States<\/h3>\n<p>Create additional states such as defensive or pattern attack states to diversify the enemy character's behavior.<\/p>\n<h3>6.2 Improving AI<\/h3>\n<p>Implement AI that randomizes the enemy's behavior patterns or makes them behave differently based on the situation. This can enhance the immersion of the game.<\/p>\n<h2>7. Testing and Tuning<\/h2>\n<p>This is the stage where you observe how the enemy character behaves in the game and make fine adjustments to fix bugs. You should check to ensure it functions well and adjust speed, attack power, etc., as necessary.<\/p>\n<h3>7.1 Debugging and Testing<\/h3>\n<p>Debug the enemy's behavior in Unity's play mode and fix any potential bugs to ensure it works as expected.<\/p>\n<h3>7.2 Reflecting Player Feedback<\/h3>\n<p>Incorporate player feedback from beta tests to improve the character's states and AI algorithms. This can enhance the overall quality of the game.<\/p>\n<h2>Conclusion<\/h2>\n<p>In this course, we learned how to manage the states of enemy characters in Unity. We explored how to use state patterns to structure each state and integrate animations and AI actions. This allows for an immersive experience in the game and the creation of challenging enemy characters for players.<\/p>\n<p>In the next course, we will discuss optimizing enemy character performance and implementing more complex AI systems. We hope this helps you in your game development journey.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In game development, enemy characters play an important role in interaction with the player. The management of enemy AI and behavior is a crucial element that determines the fun and challenges of the game. In this course, we will explore how to implement enemy character states using Unity. This process will cover state patterns, animations, &hellip; <a href=\"https:\/\/atmokpo.com\/w\/31927\/\" class=\"more-link\">\ub354 \ubcf4\uae30<span class=\"screen-reader-text\"> &#8220;Unity Basic Course: Enemy Character Status&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[135],"tags":[],"class_list":["post-31927","post","type-post","status-publish","format-standard","hentry","category-unity-basic"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Unity Basic Course: Enemy Character Status - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/atmokpo.com\/w\/31927\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unity Basic Course: Enemy Character Status - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"og:description\" content=\"In game development, enemy characters play an important role in interaction with the player. The management of enemy AI and behavior is a crucial element that determines the fun and challenges of the game. In this course, we will explore how to implement enemy character states using Unity. This process will cover state patterns, animations, &hellip; \ub354 \ubcf4\uae30 &quot;Unity Basic Course: Enemy Character Status&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/atmokpo.com\/w\/31927\/\" \/>\n<meta property=\"og:site_name\" content=\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-01T09:04:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-01T11:34:07+00:00\" \/>\n<meta name=\"author\" content=\"root\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:site\" content=\"@bebubo4\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"root\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"4\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/atmokpo.com\/w\/31927\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31927\/\"},\"author\":{\"name\":\"root\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\"},\"headline\":\"Unity Basic Course: Enemy Character Status\",\"datePublished\":\"2024-11-01T09:04:16+00:00\",\"dateModified\":\"2024-11-01T11:34:07+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31927\/\"},\"wordCount\":709,\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"articleSection\":[\"Unity Basic\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/atmokpo.com\/w\/31927\/\",\"url\":\"https:\/\/atmokpo.com\/w\/31927\/\",\"name\":\"Unity Basic Course: Enemy Character Status - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"isPartOf\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#website\"},\"datePublished\":\"2024-11-01T09:04:16+00:00\",\"dateModified\":\"2024-11-01T11:34:07+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/atmokpo.com\/w\/31927\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/atmokpo.com\/w\/31927\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/atmokpo.com\/w\/31927\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\ud648\",\"item\":\"https:\/\/atmokpo.com\/w\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unity Basic Course: Enemy Character Status\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/atmokpo.com\/w\/#website\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/atmokpo.com\/w\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/atmokpo.com\/w\/#organization\",\"name\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\",\"url\":\"https:\/\/atmokpo.com\/w\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"contentUrl\":\"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png\",\"width\":400,\"height\":400,\"caption\":\"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8\"},\"image\":{\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/bebubo4\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7\",\"name\":\"root\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g\",\"caption\":\"root\"},\"sameAs\":[\"http:\/\/atmokpo.com\/w\"],\"url\":\"https:\/\/atmokpo.com\/w\/author\/root\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unity Basic Course: Enemy Character Status - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/atmokpo.com\/w\/31927\/","og_locale":"ko_KR","og_type":"article","og_title":"Unity Basic Course: Enemy Character Status - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","og_description":"In game development, enemy characters play an important role in interaction with the player. The management of enemy AI and behavior is a crucial element that determines the fun and challenges of the game. In this course, we will explore how to implement enemy character states using Unity. This process will cover state patterns, animations, &hellip; \ub354 \ubcf4\uae30 \"Unity Basic Course: Enemy Character Status\"","og_url":"https:\/\/atmokpo.com\/w\/31927\/","og_site_name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","article_published_time":"2024-11-01T09:04:16+00:00","article_modified_time":"2024-11-01T11:34:07+00:00","author":"root","twitter_card":"summary_large_image","twitter_creator":"@bebubo4","twitter_site":"@bebubo4","twitter_misc":{"\uae00\uc4f4\uc774":"root","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"4\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/atmokpo.com\/w\/31927\/#article","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/31927\/"},"author":{"name":"root","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7"},"headline":"Unity Basic Course: Enemy Character Status","datePublished":"2024-11-01T09:04:16+00:00","dateModified":"2024-11-01T11:34:07+00:00","mainEntityOfPage":{"@id":"https:\/\/atmokpo.com\/w\/31927\/"},"wordCount":709,"publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"articleSection":["Unity Basic"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/atmokpo.com\/w\/31927\/","url":"https:\/\/atmokpo.com\/w\/31927\/","name":"Unity Basic Course: Enemy Character Status - \ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","isPartOf":{"@id":"https:\/\/atmokpo.com\/w\/#website"},"datePublished":"2024-11-01T09:04:16+00:00","dateModified":"2024-11-01T11:34:07+00:00","breadcrumb":{"@id":"https:\/\/atmokpo.com\/w\/31927\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/atmokpo.com\/w\/31927\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/atmokpo.com\/w\/31927\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\ud648","item":"https:\/\/atmokpo.com\/w\/en\/"},{"@type":"ListItem","position":2,"name":"Unity Basic Course: Enemy Character Status"}]},{"@type":"WebSite","@id":"https:\/\/atmokpo.com\/w\/#website","url":"https:\/\/atmokpo.com\/w\/","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","description":"","publisher":{"@id":"https:\/\/atmokpo.com\/w\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/atmokpo.com\/w\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/atmokpo.com\/w\/#organization","name":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8","url":"https:\/\/atmokpo.com\/w\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/","url":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","contentUrl":"https:\/\/atmokpo.com\/w\/wp-content\/uploads\/2024\/11\/logo.png","width":400,"height":400,"caption":"\ub77c\uc774\ube0c\uc2a4\ub9c8\ud2b8"},"image":{"@id":"https:\/\/atmokpo.com\/w\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/bebubo4"]},{"@type":"Person","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/91b6b3b138fbba0efb4ae64b1abd81d7","name":"root","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/atmokpo.com\/w\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/708197b41fc6435a7ce22d951b25d4a47e9e904270cb1f04682d4f025066f80c?s=96&d=mm&r=g","caption":"root"},"sameAs":["http:\/\/atmokpo.com\/w"],"url":"https:\/\/atmokpo.com\/w\/author\/root\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31927","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/comments?post=31927"}],"version-history":[{"count":1,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31927\/revisions"}],"predecessor-version":[{"id":31928,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/posts\/31927\/revisions\/31928"}],"wp:attachment":[{"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/media?parent=31927"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/categories?post=31927"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/atmokpo.com\/w\/wp-json\/wp\/v2\/tags?post=31927"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}