<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Unity アーカイブ - だくまたゲーム制作ブログ</title>
	<atom:link href="https://d9m.conohawing.com/category/unity/feed/" rel="self" type="application/rss+xml" />
	<link>https://d9m.conohawing.com/category/unity/</link>
	<description></description>
	<lastBuildDate>Tue, 09 Jan 2024 23:55:14 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>【2D機能】走りアニメーション制御【アニメーター】</title>
		<link>https://d9m.conohawing.com/func_animator2/</link>
					<comments>https://d9m.conohawing.com/func_animator2/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Mon, 28 Nov 2022 15:06:38 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[機能]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1865</guid>

					<description><![CDATA[<p>目次 ●はじめに●走りアニメーション▷状態と遷移▷遷移設定▷遷移制御●走り中にジャンプ▷遷移作成▷遷移情報▷動作確認●左右方向に向く▷スクリプト修正▷動作確認●完成 ●はじめに 2D横スクロールアクション作成を目指し、プ [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/func_animator2/">【2D機能】走りアニメーション制御【アニメーター】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●走りアニメーション</a><ol><li><a href="#toc3" tabindex="0">▷状態と遷移</a></li><li><a href="#toc4" tabindex="0">▷遷移設定</a></li><li><a href="#toc5" tabindex="0">▷遷移制御</a></li></ol></li><li><a href="#toc6" tabindex="0">●走り中にジャンプ</a><ol><li><a href="#toc7" tabindex="0">▷遷移作成</a></li><li><a href="#toc8" tabindex="0">▷遷移情報</a></li><li><a href="#toc9" tabindex="0">▷動作確認</a></li></ol></li><li><a href="#toc10" tabindex="0">●左右方向に向く</a><ol><li><a href="#toc11" tabindex="0">▷スクリプト修正</a></li><li><a href="#toc12" tabindex="0">▷動作確認</a></li></ol></li><li><a href="#toc13" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールアクション作成を目指し、プレイヤーキャラクターのアニメーションを制御してみます。</p>



<p>待機からスペースキーでジャンプ、左右キーで走るようにします。</p>



<p>アセットは無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」をお借りします。</p>



<iframe src="/game/sideact4/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成します。</p>



<h2 class="wp-block-heading"><span id="toc2">●走りアニメーション</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷状態と遷移</span></h3>



<p>走りアニメーションを追加し、待機から相互に遷移するようにします。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-60.png" alt="" class="wp-image-1867" width="460" height="224" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-60.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-60-300x146.png 300w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">player_idleと相互遷移するplayer_runを追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets>Anime>player_run」をアニメーター右側にドラッグ＆ドロップ<br>②アニメーターの「player_idle」を右クリックし、「遷移を作成」をクリック<br>③アニメーターの「player_run」をクリック<br>④アニメーターの「player_run」を右クリックし、「遷移を作成」をクリック<br>⑤アニメーターの「player_idle」をクリック</p>
</div>
</div>



<p>移動速度を受け取る「Float」型のパラメーター「Speed」を作成します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-61.png" alt="" class="wp-image-1868" width="460" height="224" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-61.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-61-300x146.png 300w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">パラメーターを追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーター左上のタブ「パラメーター」をクリック<br>②アニメーター左上の「＋」をクリックし、「Float」をクリック<br>③「Speed」を入力してENTERキーを押す</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc4">▷遷移設定</span></h3>



<p>待機から走りへの遷移情報を設定します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-62.png" alt="" class="wp-image-1875" width="514" height="485" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-62.png 685w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-62-300x283.png 300w" sizes="(max-width: 514px) 100vw, 514px" /><figcaption class="wp-element-caption">player_idleからplayer_runへの遷移情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_idle」から「player_run」への遷移をクリック<br>②インスペクター中央辺り「終了時間あり」右のチェックをクリック<br>③インスペクター下部「Conditions」右下の「＋」をクリック<br>④「Conditions」内のドロップダウンをクリックし、「Speed」をクリック</p>
</div>
</div>



<p>走りから待機への遷移情報を設定します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-63.png" alt="" class="wp-image-1876" width="514" height="485" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-63.png 685w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-63-300x283.png 300w" sizes="(max-width: 514px) 100vw, 514px" /><figcaption class="wp-element-caption">player_runからplayer_idleへの遷移情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_run」から「player_idle」への遷移をクリック<br>②インスペクター中央辺り「終了時間あり」右のチェックをクリック<br>③インスペクター下部「Conditions」右下の「＋」をクリック<br>④「Conditions」内のドロップダウンをクリックし、「Speed」をクリック<br>⑤「Conditions>Speed」右のドロップダウンをクリックし、「Less」をクリック<br>⑥「Conditions>Speed」右端に「0.1」を入力</p>
</div>
</div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-64.png" alt="" class="wp-image-1877" width="460" height="523" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-64.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-64-264x300.png 264w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">Speedを0を超えた値にすると走り、0.1未満にすると止まる</figcaption></figure></div>


<h3 class="wp-block-heading"><span id="toc5">▷遷移制御</span></h3>



<p>Playerスクリプトを修正し、パラメーターを制御してキー操作出来るようにします。</p>



<p>水平方向の入力値を取得しています。<br>左キーを押し続けると-1まで減少し、右キーを押し続けると1まで増加します。<br>左右関係なく扱うため、絶対値をSpeedに設定しています。</p>



<p>ついでにスペースキーでジャンプするよう条件を修正してます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    Animator animator;      // アニメーターコンポーネントを入れる変数

    // Start is called before the first frame update
    void Start()
    {
        // 自分に割り当てられているアニメーターコンポーネントを取得
        animator = GetComponent&lt;Animator&gt;();
    }

    // Update is called once per frame
    void Update()
    {
        // ジャンプキーが押された場合
        if (Input.GetButtonDown(&quot;Jump&quot;) == true)
        {
            // トリガー「Jump」をONにする
            animator.SetTrigger(&quot;Jump&quot;);
        }

        // 水平方向の入力値を取得
        float axisH = Input.GetAxis(&quot;Horizontal&quot;);
        // Float「Speed」に「水平方向の入力値」の絶対値を設定
        animator.SetFloat(&quot;Speed&quot;, Mathf.Abs(axisH));
    }
}
</code></pre></div>



<h2 class="wp-block-heading"><span id="toc6">●走り中にジャンプ</span></h2>



<h3 class="wp-block-heading"><span id="toc7">▷遷移作成</span></h3>



<p>走りアニメーション中にジャンプ出来ない状態です。</p>



<p>なので走りからジャンプへ遷移を追加します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-65.png" alt="" class="wp-image-1878" width="460" height="224" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-65.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-65-300x146.png 300w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">player_runからplayer_jumpへの遷移を追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_run」を右クリックし、「遷移を作成」をクリック<br>②アニメーターの「player_jump」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc8">▷遷移情報</span></h3>



<p>遷移情報はトリガーがONになったら即ジャンプするように設定します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-66.png" alt="" class="wp-image-1879" width="514" height="554" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-66.png 685w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-66-278x300.png 278w" sizes="(max-width: 514px) 100vw, 514px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_run」から「player_jump」への遷移をクリック<br>②インスペクター中央部の「終了時間あり」にあるチェックをクリック<br>③インスペクター下部の「Conditions」右下にある「＋」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc9">▷動作確認</span></h3>



<p>走っている最中にスペースキーを押すと即ジャンプに遷移します。</p>



<h2 class="wp-block-heading"><span id="toc10">●左右方向に向く</span></h2>



<h3 class="wp-block-heading"><span id="toc11">▷スクリプト修正</span></h3>



<p>左右キーどちらを押していても右向きのままです。</p>



<p>スケールのXを-1にすると左向きにできます。<br>水平入力がマイナスの時は-1とし、左向きになるようスクリプトを修正します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    Animator animator;      // アニメーターコンポーネントを入れる変数

    // Start is called before the first frame update
    void Start()
    {
        // 自分に割り当てられているアニメーターコンポーネントを取得
        animator = GetComponent&lt;Animator&gt;();
    }

    // Update is called once per frame
    void Update()
    {
        // ジャンプキーが押された場合
        if (Input.GetButtonDown(&quot;Jump&quot;) == true)
        {
            // トリガー「Jump」をONにする
            animator.SetTrigger(&quot;Jump&quot;);
        }

        // 水平方向の入力値を取得
        float axisH = Input.GetAxis(&quot;Horizontal&quot;);
        // Float「Speed」に「水平方向の入力値」の絶対値を設定
        animator.SetFloat(&quot;Speed&quot;, Mathf.Abs(axisH));

        // 水平方向入力中の場合
        if (axisH != 0)
        {
            // 水平入力がマイナスの場合はXスケールを-1、それ以外は1とする
            float xScale = axisH &lt; 0 ? -1 : 1;
            // スケールを設定
            transform.localScale = new Vector3(xScale, 1, 1);
        }
    }
}
</code></pre></div>



<h3 class="wp-block-heading"><span id="toc12">▷動作確認</span></h3>



<p>左キー入力中は左、右キー入力中は右を向くようになりました。<br>停止してもそのままジャンプしても向きが継続されます。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-67.png" alt="" class="wp-image-1880" width="460" height="523" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-67.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-67-264x300.png 264w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">左向きに走る</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc13">●完成</span></h2>



<p>待機、ジャンプ、走りのアニメーションが制御できるようになりました。</p>



<p>弾を撃つアニメーション３パターンにやられも制御したかったですが、<br>土曜はボルダリング、日曜はDDR、RPGツクールも考えるとなると中々厳しいですね。</p>



<p>弾撃ちアニメーションもいいけど、ここまで来たらちゃんと移動してジャンプしてマップ内を動きたい。<br>ということで、次回の目標はマップ内を動けるようにする、です。</p>



<p>頑張ろう。</p>
<p>投稿 <a href="https://d9m.conohawing.com/func_animator2/">【2D機能】走りアニメーション制御【アニメーター】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/func_animator2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【2D機能】アニメーション切り替え【アニメーター】</title>
		<link>https://d9m.conohawing.com/func_animator1/</link>
					<comments>https://d9m.conohawing.com/func_animator1/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Tue, 22 Nov 2022 14:55:37 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[機能]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1815</guid>

					<description><![CDATA[<p>目次 ●はじめに●アニメーター基本▷アセット確認▷アニメータービュー▷ジャンプに切り替え●遷移条件▷パラメーター作成▷遷移条件▷遷移条件●パラメータ制御▷スクリプト準備▷スクリプト作成▷動作確認●完成 ●はじめに 2D横 [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/func_animator1/">【2D機能】アニメーション切り替え【アニメーター】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●アニメーター基本</a><ol><li><a href="#toc3" tabindex="0">▷アセット確認</a></li><li><a href="#toc4" tabindex="0">▷アニメータービュー</a></li><li><a href="#toc5" tabindex="0">▷ジャンプに切り替え</a></li></ol></li><li><a href="#toc6" tabindex="0">●遷移条件</a><ol><li><a href="#toc7" tabindex="0">▷パラメーター作成</a></li><li><a href="#toc8" tabindex="0">▷遷移条件</a></li><li><a href="#toc9" tabindex="0">▷遷移条件</a></li></ol></li><li><a href="#toc10" tabindex="0">●パラメータ制御</a><ol><li><a href="#toc11" tabindex="0">▷スクリプト準備</a></li><li><a href="#toc12" tabindex="0">▷スクリプト作成</a></li><li><a href="#toc13" tabindex="0">▷動作確認</a></li></ol></li><li><a href="#toc14" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールアクション作成を目指し、「アニメーターコントローラー」を使ってアニメーションを切り替えてみます。</p>



<p>アニメーターコントローラーは奥が深く、理解が追いついてない部分もあります。<br>それでもアニメーション切り替え程度のことは出来るのでやってみます。</p>



<p>アセットは無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」をお借りします。</p>



<iframe loading="lazy" src="/game/sideact3/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成します。</p>



<h2 class="wp-block-heading"><span id="toc2">●アニメーター基本</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷アセット確認</span></h3>



<p><a rel="noopener" href="http://d9m.one/func_anim/" data-type="URL" data-id="http://d9m.one/func_anim/" target="_blank">前回アニメーション</a>を作成しましたが、その時同時に作成されたアセットに「アニメーターコントローラー」があります。<br>２つの四角が線で繋がったアイコンがアニメーターコントローラー、<br>三角形が移動しているようなアイコンがアニメーションのアセットです。</p>



<p>このアニメーターコントローラーをアニメーターで使用します。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-33.png" alt="" class="wp-image-1817" width="384" height="293" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-33.png 384w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-33-300x229.png 300w" sizes="(max-width: 384px) 100vw, 384px" /><figcaption class="wp-element-caption">アニメーターコントローラー</figcaption></figure>



<h3 class="wp-block-heading"><span id="toc4">▷アニメータービュー</span></h3>



<p>アニメーターコントローラーをダブルクリックするとアニメータービューが表示されます。</p>



<p>アニメータービューの右側にスペースにアニメーションを配置し、<br>切り替えの条件を持っている線で繋ぎます。</p>



<p>現在は「Entry」と「player_idle」が繋がっていて、「Any State」は浮いた状態です。</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-34.png" alt="" class="wp-image-1819" width="528" height="266" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-34.png 704w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-34-300x151.png 300w" sizes="(max-width: 528px) 100vw, 528px" /></figure>



<p>Entryは開始時の状態で、開始時にすぐ次の状態に移動します。<br>ここでは開始時に状態「player_idle」に移動し、その状態に設定されたアニメーション「player_idle」が再生されます。</p>



<p>「Any State」は現在がどのような状態であっても移動元にできます。<br>条件が満たされた場合、状態に関係なくAny Stateの先の状態に移動します。</p>



<p>攻撃が終わったら待機、ジャンプが終了したら待機、やられが終了したら待機といった場合、<br>線がややこしいことになるし、条件を間違えたら全て直す必要があります。<br>Any Stateを使えば待機状態に線を繋ぎ、条件を１つ用意するだけで完成です。<br>（・・・多分こんな使い方だと思う）</p>



<p>もう１つデフォルトで用意されている状態「EXIT」があります。<br>状態が置かれた部分の背景部分を一度クリックし、「A」キーを押してみて下さい。<br>全ての状態が見えるように縮小表示してくれます。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-35.png" alt="" class="wp-image-1820" width="528" height="266" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-35.png 704w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-35-300x151.png 300w" sizes="(max-width: 528px) 100vw, 528px" /><figcaption class="wp-element-caption">全ての状態が見えるように縮小表示される</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメータービューの右側、何もないスペースをクリック<br>②「A」キーを押す</p>
</div>
</div>



<p>赤色の状態が「Exit」で、アニメーションの終了を指定します。<br>上手く扱うのが難しいので使いません。</p>



<p class="has-small-font-size">終了後、即Entryに移動するので、上手く画像がループ再生するようにしないと変になる。<br>結局は色んな状態に移動しまくるので、わざわざ終了させる必要はないかな。<br>※だから範囲外に置かれている、のかな？</p>



<p>状態をドラッグ＆ドロップで配置換えできます。<br>線は自動で繋がってくれます。<br>なんとなくExitも近くにいてほしいので整理しました。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-36.png" alt="" class="wp-image-1821" width="528" height="266" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-36.png 704w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-36-300x151.png 300w" sizes="(max-width: 528px) 100vw, 528px" /><figcaption class="wp-element-caption">アニメーターの基本操作①</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①状態のドラッグ＆ドロップで配置換え<br>②マウスホイールの前後で拡大縮小<br>③マウスホイールを押し下げ、ドラッグで並行移動</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc5">▷ジャンプに切り替え</span></h3>



<p>待機アニメーションが終了したらジャンプアニメーションが再生されるようにしましょう。</p>



<p>前回のプロジェクトを使っている場合、アニメーションが沢山置かれているので、一旦待機以外削除します。<br>また、プレイヤーとして扱うので名前も「Player」にします。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-37.png" alt="" class="wp-image-1822" width="160" height="178"/><figcaption class="wp-element-caption">「player-idle-1」だけにする</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①ヒエラルキーの「player-hurt-1」をクリック<br>②Shiftキーを押しながら「player-run-shot-1」をクリック<br>③Deleteキーを押す</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-39.png" alt="" class="wp-image-1824" width="160" height="178"/><figcaption class="wp-element-caption">名前を「Player」とする</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①ヒエラルキーの「player-idle-1」をクリック<br>②F2キーを押して「Player」と入力し、ENTER</p>
</div>
</div>



<p>ジャンプアニメーションをアニメータービューに配置します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-38.png" alt="" class="wp-image-1823" width="609" height="237" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-38.png 812w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-38-300x117.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-38-768x299.png 768w" sizes="(max-width: 609px) 100vw, 609px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets&gt;Anime&gt;player_jump」をアニメータービューの右側スペースにドラッグ＆ドロップ</p>
</div>
</div>



<p>「player_idle」と「player_jump」を繋ぎます。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-40.png" alt="" class="wp-image-1825" width="509" height="259" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-40.png 678w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-40-300x153.png 300w" sizes="(max-width: 509px) 100vw, 509px" /><figcaption class="wp-element-caption">アニメーション遷移作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_idle」を右クリック<br>②「遷移を作成」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-41.png" alt="" class="wp-image-1826" width="382" height="237" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-41.png 509w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-41-300x186.png 300w" sizes="(max-width: 382px) 100vw, 382px" /><figcaption class="wp-element-caption">アニメーション遷移完了</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_jump」をクリック</p>
</div>
</div>



<p>移動＝遷移する時の設定を行います。</p>



<p>デフォルトではアニメーションを滑らかにするためブレンドしていますが、<br>スプライトはブレンドできないので使わないように設定します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-42.png" alt="" class="wp-image-1827" width="484" height="488" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-42.png 645w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-42-297x300.png 297w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-42-150x150.png 150w" sizes="(max-width: 484px) 100vw, 484px" /><figcaption class="wp-element-caption">ブレンド時間をなしにする</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターで作成した遷移をクリック<br>②インスペクターの「Setting」左にある▶をクリック<br>③終了時間に「1」を入力<br>④遷移時間(s)に「0」を入力</p>
</div>
</div>



<p>このまま再生すると待機アニメーションがすぐ終わってしまってよくわからないので、<br>一旦Eixtに遷移を繋げて確認しやすくします。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-43.png" alt="" class="wp-image-1828" width="484" height="488" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-43.png 645w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-43-297x300.png 297w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-43-150x150.png 150w" sizes="(max-width: 484px) 100vw, 484px" /><figcaption class="wp-element-caption">Exitに遷移を追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_jump」を右クリック<br>②Exitをクリック<br>③「遷移を作成」をクリック<br>④player_jumpからExitへの遷移をクリック<br>⑤インスペクターの「Setting」左にある▶をクリック<br>⑥終了時間に「1」を入力<br>⑦遷移時間(s)に「0」を入力</p>
</div>
</div>



<p>待機アニメーションとジャンプアニメーションを１ループずつ繰り返すようになりました。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-44.png" alt="" class="wp-image-1829" width="460" height="523" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-44.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-44-264x300.png 264w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">待機とジャンプを繰り返す</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>プレビュー中にアニメーターを見ると現在どの状態が再生中かわかります。<br>青いバーが満タンになると次の状態に遷移します。</p>



<p>遷移状態が見えない場合はヒエラルキーの「Player」をクリックしてみて下さい。</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc6">●遷移条件</span></h2>



<h3 class="wp-block-heading"><span id="toc7">▷パラメーター作成</span></h3>



<p>マウス左ボタンが押されたらジャンプするようにしたいと思います。</p>



<p>アニメーターは「パラメーター」を監視し、値に応じて遷移を切り替えることができます。<br>パラメーターはスクリプトで値を制御しますが、後回し。</p>



<p>プレビュー中に直接切り替える形で一旦実装してみます。</p>



<p>まずはExitへの遷移を削除し、</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-45.png" alt="" class="wp-image-1830" width="460" height="212" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-45.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-45-300x138.png 300w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">「player_idle」と「Exit」を繋ぐ遷移を削除</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_idle」と「Exit」を繋ぐ遷移をクリック<br>②Deleteキーを押す</p>
</div>
</div>



<p>パラメータータブを開きます。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-46.png" alt="" class="wp-image-1831" width="460" height="212" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-46.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-46-300x138.png 300w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">パラメーター一覧を表示</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーター左上の「パラメーター」をクリック</p>
</div>
</div>



<p>「トリガー」のパラメーターを追加します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-47.png" alt="" class="wp-image-1832" width="460" height="212" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-47.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-47-300x138.png 300w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">トリガーの追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーター左上の「＋」をクリック<br>②「Trigger」をクリック</p>
</div>
</div>



<p>「Jump」と命名します。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-48.png" alt="" class="wp-image-1833" width="460" height="212" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-48.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-48-300x138.png 300w" sizes="(max-width: 460px) 100vw, 460px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①「Jump」と入力してENTERを押す</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc8">▷遷移条件</span></h3>



<p>遷移条件を設定しましょう。<br>条件はインスペクターで追加します。<br>「トリガーがONになったら遷移する」条件が追加できました。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-49.png" alt="" class="wp-image-1835" width="484" height="488" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-49.png 645w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-49-297x300.png 297w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-49-150x150.png 150w" sizes="(max-width: 484px) 100vw, 484px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_idle」と「player_jump」間の遷移をクリック<br>②インスペクターの「終了時間あり」にあるチェックをクリック<br>③インスペクターの「Conditions」にある右下の「＋」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc9">▷遷移条件</span></h3>



<p>プレビューすると待機アニメーションがループ再生されます。</p>



<p>アニメーターにあるパラメーター「Jump」の右側にあるラジオボタン、<br>これをクリックするとジャンプアニメーションがループ再生されます。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-50.png" alt="" class="wp-image-1837" width="460" height="523" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-50.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-50-264x300.png 264w" sizes="(max-width: 460px) 100vw, 460px" /><figcaption class="wp-element-caption">JumpトリガーONでplayer_jumpに遷移</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①Unity上部中央の「▶」をクリック<br>②アニメーターのパラメーター部分にある「Jump」のラジオボタンをクリック</p>
</div>
</div>



<p>アニメーションを配置して遷移で繋ぎ、条件で制御する、という手順になります。<br>トリガーはONになった後すぐにOFFに戻るため、プレビュー中はONになったように見えません。</p>



<h2 class="wp-block-heading"><span id="toc10">●パラメータ制御</span></h2>



<h3 class="wp-block-heading"><span id="toc11">▷スクリプト準備</span></h3>



<p>マウス左ボタンが押された時にトリガー「Jump」をONにしてジャンプアニメーションが再生されるようにします。</p>



<p>そのためにはスクリプトが必要になります。<br>アニメーターが持つパラメーターはコンポーネント「Animator」の機能を使います。<br>アニメーターはアニメーション作成時にゲームオブジェクトに割り当てられています。</p>



<p>つまり、ゲームオブジェクト「Player」にスクリプトを割り当て、<br>そのスクリプトで自分（Player）のAnimatorを取得、<br>Animatorのパラメーター設定機能を使ってJumpトリガーをONにする、という手順になります。</p>



<p>まずスクリプト「Player」を作成しましょう。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-51.png" alt="" class="wp-image-1842" width="539" height="488" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-51.png 718w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-51-300x272.png 300w" sizes="(max-width: 539px) 100vw, 539px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets」を右クリック<br>②「作成＞C#スクリプト」をクリック<br>③「Player」と入力してENTERを押す</p>
</div>
</div>



<p>ゲームオブジェクトの「Player」に割り当てます。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-52.png" alt="" class="wp-image-1843" width="410" height="380" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-52.png 547w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-52-300x278.png 300w" sizes="(max-width: 410px) 100vw, 410px" /><figcaption class="wp-element-caption">スクリプト「Player」の割り当て</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets&gt;Player」をヒエラルキーの「Player」にドラッグ＆ドロップ</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc12">▷スクリプト作成</span></h3>



<p>自分が持つアニメーターを取得し、マウス左ボタンが押された時にトリガーをONにするスクリプトを記述します。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    Animator animator;      // アニメーターコンポーネントを入れる変数

    // Start is called before the first frame update
    void Start()
    {
        // 自分に割り当てられているアニメーターコンポーネントを取得
        animator = GetComponent&lt;Animator&gt;();
    }

    // Update is called once per frame
    void Update()
    {
        // マウス左ボタンが押されている場合
        if (Input.GetMouseButtonDown(0) == true)
        {
            // トリガー「Jump」をONにする
            animator.SetTrigger(&quot;Jump&quot;);
        }
    }
}
</code></pre></div>



<h3 class="wp-block-heading"><span id="toc13">▷動作確認</span></h3>



<p>プレビューして動きを確認します。</p>



<p>その前に、何度も確認できるよう待機状態に戻るようにします。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="685" height="646" src="https://d9m.one/wp-content/uploads/2022/11/image-53.png" alt="" class="wp-image-1844" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-53.png 685w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-53-300x283.png 300w" sizes="(max-width: 685px) 100vw, 685px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーターの「player_jump」を右クリック<br>②「遷移を作成」をクリック<br>③アニメーターの「player_idle」をクリック<br>④player_jumpからplayer_idleへの遷移をクリック<br>⑤インスペクターの「Setting」左にある▶をクリック<br>⑥終了時間に「1」を入力<br>⑦遷移時間(s)に「0」を入力</p>
</div>
</div>



<p>ということでプレビュー。<br>最初は待機アニメーションが再生され、マウス左ボタンをクリックするとジャンプします。<br>その場で回転しているだけなのでジャンプには見えませんが…。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-54.png" alt="" class="wp-image-1845" width="460" height="523" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-54.png 613w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-54-264x300.png 264w" sizes="(max-width: 460px) 100vw, 460px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①Unity上部中央の「▶」をクリック</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc14">●完成</span></h2>



<p>待機アニメーションからジャンプアニメーションへ切り替わるようになりました。</p>



<p>状態を追加して遷移を追加、パラメーターを作成して条件を設定、スクリプトで制御、<br>これを繰り返していけばそれっぽくなる…はず。</p>



<p>アニメーションの数が増えれば遷移の矢印も増えて複雑になり、<br>その分条件も増えて頭が混乱してくると思います。</p>



<p>この辺の複雑さはアニメーター左上タブにある「レイヤー」の機能で緩和できます。</p>



<p>次回はアニメーターのレイヤー機能を使い、他のアニメーションも追加してみようと思います。</p>
<p>投稿 <a href="https://d9m.conohawing.com/func_animator1/">【2D機能】アニメーション切り替え【アニメーター】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/func_animator1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【2D機能】スプライトアニメーション【アニメーション】</title>
		<link>https://d9m.conohawing.com/func_anim/</link>
					<comments>https://d9m.conohawing.com/func_anim/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Tue, 15 Nov 2022 15:36:48 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[機能]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1752</guid>

					<description><![CDATA[<p>目次 ●はじめに●アニメーション作成▷アセット確認▷待機アニメーション作成▷アニメーション再生●アニメーション調整▷ビュー表示▷速度変更▷フレーム画像調整●アニメーション量産▷ダメージ、ジャンプ▷走り、走りながら弾発射、 [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/func_anim/">【2D機能】スプライトアニメーション【アニメーション】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●アニメーション作成</a><ol><li><a href="#toc3" tabindex="0">▷アセット確認</a></li><li><a href="#toc4" tabindex="0">▷待機アニメーション作成</a></li><li><a href="#toc5" tabindex="0">▷アニメーション再生</a></li></ol></li><li><a href="#toc6" tabindex="0">●アニメーション調整</a><ol><li><a href="#toc7" tabindex="0">▷ビュー表示</a></li><li><a href="#toc8" tabindex="0">▷速度変更</a></li><li><a href="#toc9" tabindex="0">▷フレーム画像調整</a></li></ol></li><li><a href="#toc10" tabindex="0">●アニメーション量産</a><ol><li><a href="#toc11" tabindex="0">▷ダメージ、ジャンプ</a></li><li><a href="#toc12" tabindex="0">▷走り、走りながら弾発射、立ち止まって弾発射</a></li><li><a href="#toc13" tabindex="0">▷動作確認</a></li></ol></li><li><a href="#toc14" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールアクション作成を目指し、「アニメーション」を使ってキャラクターを表示してみます。</p>



<p>アニメーションは結構色々できますが、とりあえず2Dでパラパラアニメを再生するまでの手順を書いていきます。</p>



<p>アセットは無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」をお借りします。</p>



<iframe loading="lazy" src="/game/sideact2/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成します。</p>



<h2 class="wp-block-heading"><span id="toc2">●アニメーション作成</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷アセット確認</span></h3>



<p>・解説</p>



<p>「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」のアセットを確認します。</p>



<p>プレイヤーのアニメーションは「Assets&gt;Warped Caves&gt;Artwork&gt;Sprites&gt;player」の中にあります。<br>playerフォルダ内にある各フォルダはアニメーションのパターンで、<br>その中にアニメーションの１コマに当たる画像が１枚１枚格納されています。</p>



<p>画像を分割する必要が無いので楽ができそうです。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/11/SideACT2_000.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/SideACT2_000.png" alt="" class="wp-image-1756" width="281" height="314" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_000.png 374w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_000-268x300.png 268w" sizes="(max-width: 281px) 100vw, 281px" /></a><figcaption class="wp-element-caption">画像が格納されたフォルダ</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets&gt;Warped Caves&gt;Artwork&gt;Sprites&gt;player」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/11/SideACT2_001.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/SideACT2_001.png" alt="" class="wp-image-1757" width="616" height="314" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_001.png 821w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_001-300x153.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_001-768x391.png 768w" sizes="(max-width: 616px) 100vw, 616px" /></a><figcaption class="wp-element-caption">「アイドル」アニメーションの画像一覧</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>②プロジェクトの「Assets&gt;Warped Caves&gt;Artwork&gt;Sprites&gt;player&gt;player_idle」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc4">▷待機アニメーション作成</span></h3>



<p>・解説</p>



<p>何も操作していない時に再生するアニメーション「アイドル」を作成します。</p>



<p>「player-idle-1～4」を全て選択し、「ユニット毎のピクセル数」を「16」に指定、<br>シーンビューかヒエラルキービューにドラッグ＆ドロップしてanimファイルを保存するだけで作成完了です。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/11/SideACT2_002.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/SideACT2_002.png" alt="" class="wp-image-1758" width="481" height="308" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_002.png 641w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_002-300x192.png 300w" sizes="(max-width: 481px) 100vw, 481px" /></a><figcaption class="wp-element-caption">アニメーションさせる画像を選択</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets&gt;Warped Caves&gt;Artwork&gt;Sprites&gt;player&gt;player_idle&gt;player-idle-1」をクリック<br>②Shiftキーを押しながらプロジェクトの「Assets&gt;Warped Caves&gt;Artwork&gt;Sprites&gt;player&gt;player_idle&gt;player-idle-4」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/11/SideACT2_003.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/SideACT2_003.png" alt="" class="wp-image-1759" width="335" height="524" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_003.png 446w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_003-191x300.png 191w" sizes="(max-width: 335px) 100vw, 335px" /></a><figcaption class="wp-element-caption">「ユニット毎のピクセル数」を「16」に指定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>③インスペクターにある「ユニット毎のピクセル数」に「16」を入力<br>④インスペクターの下の方にある「適用する」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/11/SideACT2_004.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/SideACT2_004.png" alt="" class="wp-image-1760" width="652" height="457" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_004.png 869w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_004-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_004-768x538.png 768w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_004-130x90.png 130w" sizes="(max-width: 652px) 100vw, 652px" /></a><figcaption class="wp-element-caption">animファイルの保存先を指定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑤プロジェクトで選択している４画像をシーンビューにドラッグ＆ドロップ<br>⑥playerの上にあるフォルダ「Assets」をクリック<br>⑦「新しいフォルダ」をクリック<br>⑧「Anime」と入力してENTERを押す<br>⑨作成したフォルダ「Anime」をダブルクリック<br>⑩ファイル名に「player_idle.anim」を入力してENTERを押す</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc5">▷アニメーション再生</span></h3>



<p>・解説</p>



<p>以上でアニメーションは完成です。<br>プレビューを開始するとキャラクターが肩で息をするようなアニメーションが再生されます。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/11/SideACT2_005.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/SideACT2_005.png" alt="" class="wp-image-1761" width="323" height="226" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_005.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_005-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/SideACT2_005-130x90.png 130w" sizes="(max-width: 323px) 100vw, 323px" /></a><figcaption class="wp-element-caption">待機アニメーションが再生される</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①Unity上部中央の「▶」をクリック</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc6">●アニメーション調整</span></h2>



<h3 class="wp-block-heading"><span id="toc7">▷ビュー表示</span></h3>



<p>・解説</p>



<p>アニメーションの速度がちょっと早いので「アニメーションビュー」で速度調整します。</p>



<p>アニメーションビューはanimファイルをダブルクリックすることで開くことができます。<br></p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/11/image.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image.png" alt="" class="wp-image-1755" width="489" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image.png 652w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-300x114.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></a><figcaption class="wp-element-caption">アニメーションビュー表示</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets>Anime>player_idle」をダブルクリック<br>②「Sprite」の左にある▶をクリック<br>※右側に各コマに設定された画像が表示される</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc8">▷速度変更</span></h3>



<p>・解説</p>



<p>アニメーションは「サンプル」という値を基準にして速度が決まります。<br>１秒で画像を何枚切り替えるかを表すのが「サンプル」になります。<br>この値を大きくすると速く、小さくすると遅くなります。</p>



<p>今回は遅くしたいので、サンプルを「6」にします。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-1.png" alt="" class="wp-image-1762" width="489" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-1.png 652w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-1-300x114.png 300w" sizes="(max-width: 489px) 100vw, 489px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーションビューのサンプルに「6」を入力してENTERを押す</p>
</div>
</div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-2.png" alt="" class="wp-image-1765" width="323" height="226" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-2.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-2-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-2-130x90.png 130w" sizes="(max-width: 323px) 100vw, 323px" /><figcaption class="wp-element-caption">遅めに再生される</figcaption></figure></div>


<h3 class="wp-block-heading"><span id="toc9">▷フレーム画像調整</span></h3>



<p>・解説</p>



<p>マウスホイールの操作でアニメーションビューの右側にあるタイムラインの拡大縮小しつつ調整します。<br>画像の左上にある◆をドラッグ＆ドロップで画像を配置するコマを移動したり、<br>画像を選択して再生範囲を広げたり縮めたりできます。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-3.png" alt="" class="wp-image-1768" width="452" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-3.png 603w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-3-300x123.png 300w" sizes="(max-width: 452px) 100vw, 452px" /><figcaption class="wp-element-caption">タイムライン拡大</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アニメーションビュー右側のタイムライン上でマウスホイールを前に回す</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-4.png" alt="" class="wp-image-1769" width="452" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-4.png 603w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-4-300x123.png 300w" sizes="(max-width: 452px) 100vw, 452px" /><figcaption class="wp-element-caption">タイムライン縮小</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>②アニメーションビュー右側のタイムライン上でマウスホイールを後ろに回す</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-5.png" alt="" class="wp-image-1770" width="452" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-5.png 603w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-5-300x123.png 300w" sizes="(max-width: 452px) 100vw, 452px" /><figcaption class="wp-element-caption">アニメーション調整</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>③１フレーム目の画像を７フレーム目に移動</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-6.png" alt="" class="wp-image-1771" width="323" height="226" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-6.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-6-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-6-130x90.png 130w" sizes="(max-width: 323px) 100vw, 323px" /><figcaption class="wp-element-caption">変化を確認</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>④Unity上部中央の「▶」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="603" height="248" src="https://d9m.one/wp-content/uploads/2022/11/image-7.png" alt="" class="wp-image-1772" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-7.png 603w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-7-300x123.png 300w" sizes="(max-width: 603px) 100vw, 603px" /><figcaption class="wp-element-caption">もとに戻す</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑤７フレーム目の画像を１フレーム目に移動</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="603" height="248" src="https://d9m.one/wp-content/uploads/2022/11/image-9.png" alt="" class="wp-image-1775" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-9.png 603w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-9-300x123.png 300w" sizes="(max-width: 603px) 100vw, 603px" /><figcaption class="wp-element-caption">画像を全て選択</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑥タイムラインの空欄をクリック<br>⑦CTRLキーを押しながらAキーを押す</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-10.png" alt="" class="wp-image-1776" width="448" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-10.png 597w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-10-300x125.png 300w" sizes="(max-width: 448px) 100vw, 448px" /><figcaption class="wp-element-caption">広げる</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑧出現した右側の青バーを９フレーム目にドラッグ＆ドロップ</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-11.png" alt="" class="wp-image-1777" width="323" height="226" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-11.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-11-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-11-130x90.png 130w" sizes="(max-width: 323px) 100vw, 323px" /><figcaption class="wp-element-caption">変化を確認</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑨Unity上部中央の「▶」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-12.png" alt="" class="wp-image-1778" width="448" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-12.png 597w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-12-300x125.png 300w" sizes="(max-width: 448px) 100vw, 448px" /><figcaption class="wp-element-caption">縮める</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑩右側の青バーを３フレーム目にドラッグ＆ドロップ</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc10">●アニメーション量産</span></h2>



<h3 class="wp-block-heading"><span id="toc11">▷ダメージ、ジャンプ</span></h3>



<p>・解説</p>



<p>ダメージを受けた時とジャンプした時のアニメーションを作成します。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-8.png" alt="" class="wp-image-1773" width="481" height="308" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-8.png 641w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-8-300x192.png 300w" sizes="(max-width: 481px) 100vw, 481px" /><figcaption class="wp-element-caption">ダメージ画像の「ユニット毎のピクセル数」を指定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets>Warped Caves>Artwork>Sprites>player>player_idle>player-hurt-1」をクリック<br>②CTRLキーを押しながらプロジェクトの「Assets>Warped Caves>Artwork>Sprites>player>player_idle>player-hurt-2」をクリック<br>③インスペクターにある「ユニット毎のピクセル数」に「16」を入力<br>④インスペクターの下の方にある「適用する」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-13.png" alt="" class="wp-image-1779" width="323" height="226" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-13.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-13-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-13-130x90.png 130w" sizes="(max-width: 323px) 100vw, 323px" /><figcaption class="wp-element-caption">ダメージアニメーション追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑤プロジェクトで選択している２画像をシーンビューにドラッグ＆ドロップ<br>⑥「新しいアニメーションの作成」でフォルダ「Anime」をクリック<br>⑦ファイル名に「player_hurt.anim」を入力してENTERを押す</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-16.png" alt="" class="wp-image-1782" width="448" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-16.png 597w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-16-300x125.png 300w" sizes="(max-width: 448px) 100vw, 448px" /><figcaption class="wp-element-caption">アニメーション速度を調整</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑧プロジェクトの「Assets>Anime>player_hurt」をダブルクリック<br>⑨アニメーションビューのサンプルに「6」を入力してENTERを押す</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-14.png" alt="" class="wp-image-1780" width="481" height="308" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-14.png 641w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-14-300x192.png 300w" sizes="(max-width: 481px) 100vw, 481px" /><figcaption class="wp-element-caption">ジャンプ画像の「ユニット毎のピクセル数」を指定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets>Warped Caves>Artwork>Sprites>player>player_idle>player-jump-1」をクリック<br>②CTRLキーを押しながらプロジェクトの「Assets>Warped Caves>Artwork>Sprites>player>player_idle>player-jump-6」をクリック<br>③インスペクターにある「ユニット毎のピクセル数」に「16」を入力<br>④インスペクターの下の方にある「適用する」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-15.png" alt="" class="wp-image-1781" width="323" height="226" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-15.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-15-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-15-130x90.png 130w" sizes="(max-width: 323px) 100vw, 323px" /><figcaption class="wp-element-caption">ジャンプアニメーション追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑤プロジェクトで選択している２画像をシーンビューにドラッグ＆ドロップ<br>⑥「新しいアニメーションの作成」でフォルダ「Anime」をクリック<br>⑦ファイル名に「player_jump.anim」を入力してENTERを押す</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-17.png" alt="" class="wp-image-1783" width="448" height="186" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-17.png 597w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-17-300x125.png 300w" sizes="(max-width: 448px) 100vw, 448px" /><figcaption class="wp-element-caption">アニメーション速度を調整</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>⑧プロジェクトの「Assets>Anime>player_jump」をダブルクリック<br>⑨アニメーションビューのサンプルに「6」を入力してENTERを押す</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc12">▷走り、走りながら弾発射、立ち止まって弾発射</span></h3>



<p>・解説</p>



<p>アニメーション画像のある残り３つも作成します。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="431" height="301" src="https://d9m.one/wp-content/uploads/2022/11/image-19.png" alt="" class="wp-image-1785" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-19.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-19-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-19-130x90.png 130w" sizes="(max-width: 431px) 100vw, 431px" /><figcaption class="wp-element-caption">アニメーション３パターン追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>同様にアニメーションフォルダの画像を使ってアニメーションを作成します。<br>走り：player-run-shot<br>走りながら弾発射：player-run-shot<br>立ち止まって弾発射：player-stand</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc13">▷動作確認</span></h3>



<p>・解説</p>



<p>プレビューしてアニメーションを確認します。</p>



<p>アニメーションビューからでも再生が確認できます。<br>アニメーションビューを開いてアニメーションを持ったゲームオブジェクトを選択、<br>ビューの左上にある▶をクリックします。</p>



<p>また、タイムライン上部のフレーム番号がかかれた場所をドラッグすると<br>どのフレームでどの画像が表示されるかよく分かります。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-18.png" alt="" class="wp-image-1787" width="323" height="226" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-18.png 431w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-18-300x210.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-18-130x90.png 130w" sizes="(max-width: 323px) 100vw, 323px" /><figcaption class="wp-element-caption">プレビューで確認</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①Unity上部中央の「▶」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-21.png" alt="" class="wp-image-1789" width="487" height="382" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-21.png 649w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-21-300x235.png 300w" sizes="(max-width: 487px) 100vw, 487px" /><figcaption class="wp-element-caption">指定したアニメーションだけ再生</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①ヒエラルキーの「player-run-shot-1」をクリック<br>②アニメーションの左側上部にある「▶」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/11/image-20.png" alt="" class="wp-image-1788" width="487" height="382" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/11/image-20.png 649w, https://d9m.conohawing.com/wp-content/uploads/2022/11/image-20-300x235.png 300w" sizes="(max-width: 487px) 100vw, 487px" /><figcaption class="wp-element-caption">フレームと画像の対応を確認</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①ヒエラルキーの「player-run-shot-1」をクリック<br>②アニメーションの右側上部にあるフレーム番号をドラッグ</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc14">●完成</span></h2>



<p>キャラクターのアニメーションを作成しました。<br>単なるスプライト切り替えのアニメーションであれば、<br>アニメーションさせる画像を全て選択してシーンにドラッグ＆ドロップするだけで完成します。</p>



<p>プロパティを追加することで位置や拡大縮小といったアニメーションも作ることができます。<br>この辺は3Dでも共通の機能で、いつかやるかも知れません。</p>



<p>次回はアニメーターを使ってキャラクターを制御しようと思います。</p>
<p>投稿 <a href="https://d9m.conohawing.com/func_anim/">【2D機能】スプライトアニメーション【アニメーション】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/func_anim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>タイルマップ【Unity-2D】</title>
		<link>https://d9m.conohawing.com/tilemap/</link>
					<comments>https://d9m.conohawing.com/tilemap/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Sat, 29 Oct 2022 12:45:36 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[機能]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1648</guid>

					<description><![CDATA[<p>目次 ●はじめに●プロジェクト準備▷プロジェクト作成▷マイアセット登録▷アセットインポート●タイルマップ準備▷スプライト調整▷パレット作成▷タイル作成●タイルマップ作成▷タイルマップ作成▷タイルマップ編集▷コライダー設定 [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/tilemap/">タイルマップ【Unity-2D】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●プロジェクト準備</a><ol><li><a href="#toc3" tabindex="0">▷プロジェクト作成</a></li><li><a href="#toc4" tabindex="0">▷マイアセット登録</a></li><li><a href="#toc5" tabindex="0">▷アセットインポート</a></li></ol></li><li><a href="#toc6" tabindex="0">●タイルマップ準備</a><ol><li><a href="#toc7" tabindex="0">▷スプライト調整</a></li><li><a href="#toc8" tabindex="0">▷パレット作成</a></li><li><a href="#toc9" tabindex="0">▷タイル作成</a></li></ol></li><li><a href="#toc10" tabindex="0">●タイルマップ作成</a><ol><li><a href="#toc11" tabindex="0">▷タイルマップ作成</a></li><li><a href="#toc12" tabindex="0">▷タイルマップ編集</a></li><li><a href="#toc13" tabindex="0">▷コライダー設定</a></li></ol></li><li><a href="#toc14" tabindex="0">●動作確認</a><ol><li><a href="#toc15" tabindex="0">▷球作成</a></li><li><a href="#toc16" tabindex="0">▷球設定</a></li><li><a href="#toc17" tabindex="0">▷動作確認</a></li></ol></li><li><a href="#toc18" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールアクション作成を目指し、「タイルマップ」を使ってマップ作成してみます。<br>「タイルマップの紹介」という形で投稿し、いつでも失踪できるようキリ良くいきます。</p>



<p>タイルマップは結構色々できますが、とりあえず編集開始できるまでの手順を書いていきます。</p>



<p>アセットは無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」をお借りします。</p>



<iframe loading="lazy" src="/game/sideact1/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成します。</p>



<h2 class="wp-block-heading"><span id="toc2">●プロジェクト準備</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷プロジェクト作成</span></h3>



<p>・解説</p>



<p>2Dテンプレートでプロジェクトを作成します。<br>2Dテンプレートにすることで、2D機能の１つ「タイルマップ」機能を使えるようにします。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_000.png" target="_blank"><img decoding="async" width="1024" height="600" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_000.png" alt="新しいプロジェクト" class="wp-image-1656" style="width:512px;height:300px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_000.png 1024w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_000-300x176.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_000-768x450.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">新しいプロジェクト</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①UnityHubを起動<br>②「新しいプロジェクト」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_001.png" target="_blank"><img decoding="async" width="1024" height="600" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_001.png" alt="プロジェクトを作成" class="wp-image-1657" style="width:512px;height:300px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_001.png 1024w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_001-300x176.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_001-768x450.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">プロジェクトを作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>③中央の一覧にある「2D」をクリック<br>④右下のプロジェクト名に「SideACT」を入力<br>⑤「プロジェクトを作成」をクリック</p>
</div>
</div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_002.png" target="_blank"><img decoding="async" width="877" height="585" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_002.png" alt="プロジェクト作成完了" class="wp-image-1659" style="width:658px;height:439px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_002.png 877w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_002-300x200.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_002-768x512.png 768w" sizes="(max-width: 877px) 100vw, 877px" /></a><figcaption class="wp-element-caption">プロジェクト作成完了</figcaption></figure></div>


<h3 class="wp-block-heading"><span id="toc4">▷マイアセット登録</span></h3>



<p>・解説</p>



<p>アセットストアから「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」をお借りします。<br>メト○イドっぽい。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_003.png" target="_blank"><img decoding="async" width="848" height="490" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_003.png" alt="マイアセット登録" class="wp-image-1661" style="width:424px;height:245px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_003.png 848w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_003-300x173.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_003-768x444.png 768w" sizes="(max-width: 848px) 100vw, 848px" /></a><figcaption class="wp-element-caption">マイアセット登録</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①アセットストアの「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」にアクセス<br>②「マイアセットに追加」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc5">▷アセットインポート</span></h3>



<p>・解説</p>



<p>「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Caves</a>」をプロジェクトにインポートし、ファイルを扱えるようにします。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_004.png" target="_blank"><img decoding="async" width="802" height="449" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_004.png" alt="アセットインポート" class="wp-image-1662" style="width:401px;height:225px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_004.png 802w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_004-300x168.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_004-768x430.png 768w" sizes="(max-width: 802px) 100vw, 802px" /></a><figcaption class="wp-element-caption">アセットインポート</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①Unityメニューの「ウィンドウ＞パッケージマネージャー」をクリック<br>②パッケージマネージャー左上の「パッケージ：＊＊＊＞マイアセット」をクリック<br>③パッケージマネージャー左側の一覧にある「Warped Caves」をクリック<br>④パッケージマネージャー右下の「ダウンロード」をクリック<br>⑤パッケージマネージャー右下の「インポート」をクリック<br>⑥Import Unity Package右下の「インポート」をクリック</p>
</div>
</div>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_005.png" target="_blank"><img decoding="async" width="391" height="588" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_005.png" alt="インポート完了" class="wp-image-1663" style="width:293px;height:441px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_005.png 391w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_005-199x300.png 199w" sizes="(max-width: 391px) 100vw, 391px" /></a><figcaption class="wp-element-caption">インポート完了</figcaption></figure></div>


<h2 class="wp-block-heading"><span id="toc6">●タイルマップ準備</span></h2>



<h3 class="wp-block-heading"><span id="toc7">▷スプライト調整</span></h3>



<p>・解説</p>



<p>１６ドットを１ユニットとして扱うようにします。<br>１６ドット✕１６ドットで出来ているタイルを１枚として配置できるようになります。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_006.png" target="_blank"><img decoding="async" width="459" height="676" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_006.png" alt="「ユニット毎のピクセル数」変更" class="wp-image-1664" style="width:344px;height:507px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_006.png 459w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_006-204x300.png 204w" sizes="(max-width: 459px) 100vw, 459px" /></a><figcaption class="wp-element-caption">「ユニット毎のピクセル数」変更</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets&gt;Warped Caves&gt;Artwork&gt;Environment&gt;tileset-sliced」をクリック<br>②インスペクターの「ユニット毎のピクセル数」に(16)を入力<br>③インスペクターの「適用する」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc8">▷パレット作成</span></h3>



<p>・解説</p>



<p>タイルマップで扱うアセット、「パレット」を作成します。<br>パレットは分割したスプライト「タイル」を管理するアセットです。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_007.png" target="_blank"><img decoding="async" width="330" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_007.png" alt="パレット作成" class="wp-image-1665" style="width:248px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_007.png 330w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_007-259x300.png 259w" sizes="(max-width: 330px) 100vw, 330px" /></a><figcaption class="wp-element-caption">パレット作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①プロジェクトの「Assets」を右クリック<br>②「作成＞2D＞タイルパレット＞矩形」をクリック<br>③&#8221;Palette&#8221;と入力し、ENTERキーを押す</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc9">▷タイル作成</span></h3>



<p>・解説</p>



<p>スプライトを１６ドット✕１６ドットのタイルとして分割します。<br>沢山作られるため、見失わないよう「Tiles」フォルダにまとめて配置します。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_008.png" target="_blank"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_008.png" alt="タイルパレット表示" class="wp-image-1666" style="width:408px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_008.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_008-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_008-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /></a><figcaption class="wp-element-caption">タイルパレット表示</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①Unityメニューの「ウィンドウ＞2D＞タイルパレット」をクリック</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_009.png" target="_blank"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_009.png" alt="タイル作成" class="wp-image-1667" style="width:408px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_009.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_009-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_009-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /></a><figcaption class="wp-element-caption">タイル作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>②プロジェクトの「Assets&gt;Warped Caves&gt;Artwork&gt;Environment&gt;tileset-sliced」をタイルパレットの中央部分にドラッグ＆ドロップ<br>③Generate tiles into folderで開かれている階層の３つ上のフォルダ、「***/SideACT/Assets」に移動<br>④左上の新しいフォルダー」をクリック<br>⑤「Tiles」を入力し、ENTERを押す<br>⑥右下の「フォルダーの選択」をクリック</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc10">●タイルマップ作成</span></h2>



<h3 class="wp-block-heading"><span id="toc11">▷タイルマップ作成</span></h3>



<p>・解説</p>



<p>タイルを表示するゲームオブジェクト、「タイルマップ」を作成します。<br>このタイルマップに対してタイルを配置していきます。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_010.png" target="_blank"><img decoding="async" width="523" height="234" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_010.png" alt="タイルマップ作成" class="wp-image-1668" style="width:392px;height:176px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_010.png 523w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_010-300x134.png 300w" sizes="(max-width: 523px) 100vw, 523px" /></a><figcaption class="wp-element-caption">タイルマップ作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①ヒエラルキー左上の「＋」をクリック<br>②「2Dオブジェクト＞タイルマップ＞矩形」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc12">▷タイルマップ編集</span></h3>



<p>・解説</p>



<p>タイルをクリックした位置に配置したり、箱状に配置、塗りつぶしたりしてマップを作成します。</p>



<p>・手順</p>



<p>シーン上にカーソルを持っていくと配置プレビューが見えるので、それを参考にしつつマップを作成しましょう。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_011.png" alt="マップ作成" class="wp-image-1669" style="width:408px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_011.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_011-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_011-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /><figcaption class="wp-element-caption">マップ作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①タイルパレット上部の筆アイコン「Paint with active brush (B)」をクリック<br>②タイルパレット中部のタイルをクリック　～　描画タイルの選択<br>③シーン上のタイル配置したい場所をクリック　～　タイルの配置<br>④タイルパレット中部のタイルをドラッグ　～　描画タイルの複数選択<br>⑤シーン上のタイル配置したい場所をクリック　～　タイルの配置</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc13">▷コライダー設定</span></h3>



<p>・解説</p>



<p>衝突機能を持ったコンポーネント、「Tilemap Collider 2D」を設定します。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_012.png" alt="コライダー設定" class="wp-image-1670" style="width:408px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_012.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_012-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_012-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /><figcaption class="wp-element-caption">コライダー設定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①ヒエラルキーの「Grid&gt;Tilemap」をクリック<br>②インスペクターの「コンポーネントを追加」をクリック<br>③「Tilemap&gt;Tilemap Collider 2D」をクリック</p>
</div>
</div>



<p>衝突判定の処理に時間がかかってしまうため、コライダーをまとめて扱ってくれるコンポーネントを設定します。<br>また、マップは物理的な影響を受けないよう「キネマティック」にします。</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_013.png" alt="コライダーのまとめ" class="wp-image-1672" style="width:408px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_013.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_013-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_013-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /><figcaption class="wp-element-caption">コライダーのまとめ</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①インスペクターの「コンポーネントを追加」をクリック<br>②「Physics 2D&gt;Composite Collider 2D」をクリック<br>③インスペクターの「Tilemap Collider 2D&gt;コンポジットで使用」をチェック<br>④インスペクターの「Rigidbody 2D&gt;ボディタイプ」を「キネマティック」に変更</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc14">●動作確認</span></h2>



<h3 class="wp-block-heading"><span id="toc15">▷球作成</span></h3>



<p>・解説</p>



<p>動作確認のため、球を作成します。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_014.png" alt="球作成" class="wp-image-1676" style="width:408px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_014.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_014-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_014-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /><figcaption class="wp-element-caption">球作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①ヒエラルキー左上の「＋」をクリック<br>②「2Dオブジェクト&gt;スプライト&gt;サークル」をクリック</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc16">▷球設定</span></h3>



<p>・解説</p>



<p>球が衝突、落下するようにコンポーネントを設定します。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_015.png" alt="コライダーとリジッドボディの設定" class="wp-image-1677" style="aspect-ratio:1.421602787456446;width:408px;height:auto" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_015.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_015-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_015-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /><figcaption class="wp-element-caption">コライダーとリジッドボディの設定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①インスペクターの「コンポーネントを追加」をクリック<br>②「Physics 2D&gt;Circle Collider 2D」をクリック<br>③インスペクターの「コンポーネントを追加」をクリック<br>④「Physics 2D&gt;Rigidbody 2D」をクリック<br>⑤Circleはタイルマップの内側に配置</p>
</div>
</div>



<h3 class="wp-block-heading"><span id="toc17">▷動作確認</span></h3>



<p>・解説</p>



<p>プレビューしながら球を好きな位置に動かし、凹凸に合わせて衝突することを確認します。</p>



<p>・手順</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="544" height="382" src="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_016.png" alt="衝突を確認" class="wp-image-1678" style="width:408px;height:287px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_016.png 544w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_016-300x211.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideACT_016-130x90.png 130w" sizes="(max-width: 544px) 100vw, 544px" /><figcaption class="wp-element-caption">衝突を確認</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<p>①Unity上部中央の「▶」をクリック<br>②ヒエラルキーの「Grid&gt;Circle」をクリック<br>③シーンの「ツール」にある「移動ツール」をクリック<br>④シーン上のCircleにある青四角をドラッグ＆ドロップ</p>
</div>
</div>



<h2 class="wp-block-heading"><span id="toc18">●完成</span></h2>



<p>矩形タイプのタイルマップを作成しました。<br>パレット、タイル、タイルマップ、グリッド、タイルマップコライダー…、<br>登場人物が多すぎて面倒かも知れないけど、これだけでも結構楽しい。</p>



<p>タイルごとの衝突設定、オートタイル、グリッド形状など、<br>タイルマップが持つ機能はまだまだありますが。</p>



<p>さて、やはり横スクロールアクションはキャラクターを動かさないと始まらない。<br>次回はキャラクターを動かそう。</p>
<p>投稿 <a href="https://d9m.conohawing.com/tilemap/">タイルマップ【Unity-2D】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/tilemap/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>紹介～横スクロールシューティング</title>
		<link>https://d9m.conohawing.com/sidestg/</link>
					<comments>https://d9m.conohawing.com/sidestg/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Wed, 12 Oct 2022 15:07:46 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[チュートリアル]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1639</guid>

					<description><![CDATA[<p>Unityを使った横スクロール型のシューティング完成までの操作手順を書いた記事の紹介です。 ここでは完成品を遊べます。 アセットストアで無料公開されている「Warped Space Shooter」をお借りして作成してい [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg/">紹介～横スクロールシューティング</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p><a href="https://unity.com/ja">Unity</a>を使った横スクロール型のシューティング完成までの操作手順を書いた記事の紹介です。 <br>ここでは完成品を遊べます。</p>


<div class="wp-block-image">
<figure data-wp-context="{&quot;imageId&quot;:&quot;68281019694aa&quot;}" data-wp-interactive="core/image" class="aligncenter size-medium wp-lightbox-container"><img decoding="async" width="300" height="212" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on-async--click="actions.showLightbox" data-wp-on-async--load="callbacks.setButtonStyles" data-wp-on-async-window--resize="callbacks.setButtonStyles" src="https://d9m.one/wp-content/uploads/2022/10/WarpedSpaceShooter-300x212.png" alt="Warped Space Shooter" class="wp-image-2038" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/WarpedSpaceShooter-300x212.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/WarpedSpaceShooter-768x542.png 768w, https://d9m.conohawing.com/wp-content/uploads/2022/10/WarpedSpaceShooter.png 819w" sizes="(max-width: 300px) 100vw, 300px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			aria-label="拡大する"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on-async--click="actions.showLightbox"
			data-wp-style--right="state.imageButtonRight"
			data-wp-style--top="state.imageButtonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption"><strong>Warped Space Shooter</strong></figcaption></figure></div>


<p>アセットストアで無料公開されている「Warped Space Shooter」をお借りして作成しています。<br>また、基本操作、スクリプト、UI、テキストメッシュプロ、サウンド、アニメーションといったあたりを練習できます。 </p>



<p>自機はマウスを追いかけるように移動し、弾は自動で発射されます。 <br>敵は５パターンのウェーブが繰り返す形で進行します。 <br>クリアはありません。</p>



<p> １本のゲームを作るまでの流れを体験してみてください。 </p>



<p>対象：初心者、Unityに初めて触る方<br>使用バージョン：2021.3</p>



<iframe loading="lazy" src="/game/sidestg/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>シューティング作成の関連記事です。</p>



<ul class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li><a href="http://d9m.one/sidestg/">横スクロールシューティング紹介</a></li>



<li><a href="http://d9m.one/sidestg1/">横スクロールシューティング①</a></li>



<li><a href="http://d9m.one/sidestg2/">横スクロールシューティング②</a></li>



<li><a href="http://d9m.one/sidestg3/">横スクロールシューティング③</a></li>



<li><a href="http://d9m.one/sidestg4/">横スクロールシューティング④</a></li>



<li><a href="http://d9m.one/sidestg5/">横スクロールシューティング⑤</a></li>



<li><a href="http://d9m.one/sidestg6/">横スクロールシューティング⑥</a></li>
</ul>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg/">紹介～横スクロールシューティング</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/sidestg/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スコア制御～横スクロールシューティング⑥</title>
		<link>https://d9m.conohawing.com/sidestg6/</link>
					<comments>https://d9m.conohawing.com/sidestg6/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Tue, 11 Oct 2022 13:41:34 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[チュートリアル]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1618</guid>

					<description><![CDATA[<p>目次 ●はじめに●テキスト作成▷テキストUI作成▷テキストUI設定●スコア制御▷スコア制御の準備▷テキストとして表示●スコア加算▷スコア加算機能追加▷加算するスコアを保存▷破壊時にスコア加算●完成 ●はじめに 2D横スク [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg6/">スコア制御～横スクロールシューティング⑥</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●テキスト作成</a><ol><li><a href="#toc3" tabindex="0">▷テキストUI作成</a></li><li><a href="#toc4" tabindex="0">▷テキストUI設定</a></li></ol></li><li><a href="#toc5" tabindex="0">●スコア制御</a><ol><li><a href="#toc6" tabindex="0">▷スコア制御の準備</a></li><li><a href="#toc7" tabindex="0">▷テキストとして表示</a></li></ol></li><li><a href="#toc8" tabindex="0">●スコア加算</a><ol><li><a href="#toc9" tabindex="0">▷スコア加算機能追加</a></li><li><a href="#toc10" tabindex="0">▷加算するスコアを保存</a></li><li><a href="#toc11" tabindex="0">▷破壊時にスコア加算</a></li></ol></li><li><a href="#toc12" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールシューティング作成の６回目、最終回になります。<br>アセットストアで無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Space Shooter</a>」をお借りして作成しています。</p>



<p>今回は「スコア制御」を追加し、一旦完成とします。</p>



<iframe loading="lazy" src="/game/sidestg6/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成します。</p>



<h2 class="wp-block-heading"><span id="toc2">●テキスト作成</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷テキストUI作成</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/10/SideSTG_056.png" target="_blank"><img decoding="async" width="298" height="514" src="https://d9m.one/wp-content/uploads/2022/10/SideSTG_056.png" alt="テキストUIの作成とTextMeshProのパッケージ追加" class="wp-image-1627" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_056.png 298w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_056-174x300.png 174w" sizes="(max-width: 298px) 100vw, 298px" /></a><figcaption class="wp-element-caption">テキストUIの作成とTextMeshProのパッケージ追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>スコアを表示するためのテキストUIを作成します。</p>



<p>・手順</p>



<p>「テキスト &#8211; TextMeshPro」を作成し、TextMeshProのパッケージをインポートします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの右上にある「＋」をクリック</li>



<li>「UI&gt;テキスト &#8211; TextMeshPro」をクリック</li>



<li>TMP Importerの「Import TMP Essentials」をクリック</li>



<li>TMP Importerの右上にある「✕」をクリック</li>
</ol>



<h3 class="wp-block-heading"><span id="toc4">▷テキストUI設定</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/10/SideSTG_057.png" target="_blank"><img decoding="async" width="632" height="491" src="https://d9m.one/wp-content/uploads/2022/10/SideSTG_057.png" alt="テキストUI設定" class="wp-image-1628" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_057.png 632w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_057-300x233.png 300w" sizes="(max-width: 632px) 100vw, 632px" /></a><figcaption class="wp-element-caption">テキストUI設定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>画面の右上に寄せてテキストを表示します。</p>



<p>・手順</p>



<p>キャンバスをスクリーン範囲で表示するようにします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「Canvas」をクリック</li>



<li>インスペクターの「Canvas&gt;レンダーモード」を「スクリーンスペース &#8211; カメラ」に変更</li>



<li>ヒエラルキーの「Main Camera」をインスペクターの「レンダーカメラ」にドラッグ＆ドロップ</li>
</ol>



<p>テキストUIのアンカーを右上に指定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「Canvas&gt;Text (TMP)」をクリック</li>



<li>インスペクターの「Rect Transform」にある左上アイコンをクリック</li>



<li>SHIFTとALTを押しながらアンカープリセットの「top &#8211; right」をクリック</li>
</ol>



<p>テキスト整列を右上に配置し、TextMeshProを設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>インスペクターの「Rect Transform&gt;位置X」に(-10)を入力</li>



<li>インスペクターの「Rect Transform&gt;幅」に(200)を入力</li>



<li>インスペクターの「Rect Transform&gt;高さ」に(50)を入力</li>



<li>インスペクターの「TextMeshPro &#8211; Text&gt;Text Input」のテキスト入力に「1234567890」を入力</li>



<li>インスペクターの「TextMeshPro &#8211; Text&gt;Main Settings&gt;Font Style&gt;B」をクリック</li>



<li>インスペクターの「TextMeshPro &#8211; Text&gt;Main Settings&gt;Font Size」に(16)を入力</li>



<li>インスペクターの「TextMeshPro &#8211; Text&gt;Main Settings&gt;Alignment&gt;Right」をクリック</li>



<li>インスペクターの「TextMeshPro &#8211; Text&gt;Main Settings&gt;Alignment&gt;Top」をクリック</li>
</ol>



<h2 class="wp-block-heading"><span id="toc5">●スコア制御</span></h2>



<h3 class="wp-block-heading"><span id="toc6">▷スコア制御の準備</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="281" height="359" src="https://d9m.one/wp-content/uploads/2022/10/SideSTG_058.png" alt="自機のインスペクター情報" class="wp-image-1630" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_058.png 281w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_058-235x300.png 235w" sizes="(max-width: 281px) 100vw, 281px" /><figcaption class="wp-element-caption">自機のインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>スコアそのものと、表示先とするテキストを保持するための変数を作成します。</p>



<p>・手順</p>



<p>テキストUIを使用するためTMProのusingを追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Player」をダブルクリック</li>



<li>using最後の行に以下のusingを追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>using TMPro;
</code></pre></div>



<p>スコア値、テキストUIを保持する変数を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「ゲーム管理オブジェクト」の下に以下の変数定義を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>    public TextMeshProUGUI scoreText;   // スコアテキスト
    int score;                          // スコア
</code></pre></div>



<p>スクリプトを保存してビルドします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<h3 class="wp-block-heading"><span id="toc7">▷テキストとして表示</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="281" height="359" src="https://d9m.one/wp-content/uploads/2022/10/SideSTG_059.png" alt="自機のインスペクター情報" class="wp-image-1631" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_059.png 281w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_059-235x300.png 235w" sizes="(max-width: 281px) 100vw, 281px" /><figcaption class="wp-element-caption">自機のインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>スコアとして保持している値を画面に表示します。</p>



<p>・手順</p>



<p>スコア表示処理を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Player」をダブルクリック</li>



<li>Update関数内に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>        // スコア表示
        scoreText.text = score.ToString();
</code></pre></div>



<p>スクリプトを保存してビルドします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>テキストUIをPlayerスクリプトに割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「Player1」をクリック</li>



<li>インスペクターの「Player (スクリプト）&gt;Score Text」にあるボックスにヒエラルキーの「Canvas&gt;Text (TMP)」をドラッグ＆ドロップ</li>
</ol>



<h2 class="wp-block-heading"><span id="toc8">●スコア加算</span></h2>



<h3 class="wp-block-heading"><span id="toc9">▷スコア加算機能追加</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="820" height="425" src="https://d9m.one/wp-content/uploads/2022/10/SideSTG_060.png" alt="Playerスクリプトの最後にスコア加算機能を追加" class="wp-image-1632" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_060.png 820w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_060-300x155.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_060-768x398.png 768w" sizes="(max-width: 820px) 100vw, 820px" /><figcaption class="wp-element-caption">Playerスクリプトの最後にスコア加算機能を追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>スコアを加算できるようにします。</p>



<p>・手順</p>



<p>スコアを加算する処理を追加し、他のスクリプトから使えるようにします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Player」をダブルクリック</li>



<li>Update関数の次に以下の関数を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>    // スコア加算
    public void AddScore(int value) 
    {
        score += value;
    }
</code></pre></div>



<p>スクリプトを保存してビルドします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<h3 class="wp-block-heading"><span id="toc10">▷加算するスコアを保存</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="820" height="425" src="https://d9m.one/wp-content/uploads/2022/10/SideSTG_061.png" alt="Enemyスクリプトにスコア変数を追加" class="wp-image-1633" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_061.png 820w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_061-300x155.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_061-768x398.png 768w" sizes="(max-width: 820px) 100vw, 820px" /><figcaption class="wp-element-caption">Enemyスクリプトにスコア変数を追加</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>加算するスコアをEnemyスクリプトに持たせます。</p>



<p>・手順</p>



<p>Enemyスクリプトにint型の公開変数を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Enemy」をダブルクリック</li>



<li>Start関数のに以下の関数を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>    public int score = 100;         // スコア
</code></pre></div>



<h3 class="wp-block-heading"><span id="toc11">▷破壊時にスコア加算</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/10/SideSTG_062.png" alt="敵を倒すとスコアが加算される" class="wp-image-1634" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_062.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_062-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/10/SideSTG_062-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /><figcaption class="wp-element-caption">敵を倒すとスコアが加算される</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>破壊されたら持っているスコアを自機が持つスコアに加算します。</p>



<p>・手順</p>



<p>破壊された時にPlayerスクリプトのスコア加算処理を呼び出します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>FixedUpdate関数の次に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>    // オブジェクト削除時に処理
    void OnDestroy()
    {
        // 自機取得
        GameObject obj = GameObject.FindGameObjectWithTag(&quot;Player&quot;);
        Player player = obj.GetComponent&lt;Player&gt;();
        // 自機が取得できた場合
        if (player != null)
        {
            // スコア加算
            player.AddScore(score);
        }
    }
</code></pre></div>



<p>スクリプトを保存してビルドします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>プロジェクトを保存して動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>敵を倒すとスコアが増えていくことを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h2 class="wp-block-heading"><span id="toc12">●完成</span></h2>



<p>スコア制御を追加し、最低限シューティングと呼べそうな形になりました。</p>



<p>次は横スクロールアクション作ろうかな。</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg6/">スコア制御～横スクロールシューティング⑥</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/sidestg6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>敵ウェーブ～横スクロールシューティング⑤</title>
		<link>https://d9m.conohawing.com/sidestg5/</link>
					<comments>https://d9m.conohawing.com/sidestg5/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Wed, 21 Sep 2022 14:39:57 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[チュートリアル]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1526</guid>

					<description><![CDATA[<p>目次 ●はじめに●敵ウェーブ作成▷ウェーブ作成準備▷前進する敵５機▷浮遊する隕石３つ▷前進する敵５機②▷カーブ前進する敵と大きな敵●ウェーブ制御▷キャラクターが動ける範囲の作成▷動ける範囲を出たら削除▷敵ウェーブ配置●完 [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg5/">敵ウェーブ～横スクロールシューティング⑤</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●敵ウェーブ作成</a><ol><li><a href="#toc3" tabindex="0">▷ウェーブ作成準備</a></li><li><a href="#toc4" tabindex="0">▷前進する敵５機</a></li><li><a href="#toc5" tabindex="0">▷浮遊する隕石３つ</a></li><li><a href="#toc6" tabindex="0">▷前進する敵５機②</a></li><li><a href="#toc7" tabindex="0">▷カーブ前進する敵と大きな敵</a></li></ol></li><li><a href="#toc8" tabindex="0">●ウェーブ制御</a><ol><li><a href="#toc9" tabindex="0">▷キャラクターが動ける範囲の作成</a></li><li><a href="#toc10" tabindex="0">▷動ける範囲を出たら削除</a></li><li><a href="#toc11" tabindex="0">▷敵ウェーブ配置</a></li></ol></li><li><a href="#toc12" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールシューティング作成の５回目になります。<br>アセットストアで無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Space Shooter</a>」をお借りして作成しています。</p>



<p>今回は「敵ウェーブ」を作成し、遊べる形にします。</p>



<iframe loading="lazy" src="/game/sidestg5/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成します。</p>



<h2 class="wp-block-heading"><span id="toc2">●敵ウェーブ作成</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷ウェーブ作成準備</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_043.png" target="_blank"><img decoding="async" width="353" height="566" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_043.png" alt="敵ウェーブ作成の準備完了" class="wp-image-1549" style="width:265px;height:425px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_043.png 353w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_043-187x300.png 187w" sizes="(max-width: 353px) 100vw, 353px" /></a><figcaption class="wp-element-caption">敵ウェーブ作成の準備完了</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>ウェーブを作成するための準備を行います。</p>



<p>・手順</p>



<p>敵をプレハブ化し、隕石をヒエラルキーから削除します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「enemy1」をプロジェクトの「Assets」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「enemy1」をクリック</li>



<li>Deleteキーを押す</li>



<li>ヒエラルキーの「asteroid-small」をクリック</li>



<li>Deleteキーを押す</li>



<li>ヒエラルキーの「asteroid」をクリック</li>



<li>Deleteキーを押す</li>
</ol>



<h3 class="wp-block-heading"><span id="toc4">▷前進する敵５機</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_044.png" target="_blank"><img decoding="async" width="353" height="566" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_044.png" alt="敵ウェーブA作成" class="wp-image-1551" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_044.png 353w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_044-187x300.png 187w" sizes="(max-width: 353px) 100vw, 353px" /></a><figcaption class="wp-element-caption">敵ウェーブA作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_045.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_045.png" alt="前進する敵５機" class="wp-image-1552" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_045.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_045-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_045-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">前進する敵５機</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>前進のみ行う敵を横に５機、上側に並べたウェーブ「waveA」を作成します。</p>



<p>・手順</p>



<p>空オブジェクトの子として敵プレハブを５機、上の方に配置します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの左上にある「＋」をクリックし、「空のオブジェクトを作成」をクリック</li>



<li>「waveA」と入力してENTERを押す</li>



<li>インスペクターの「Transform&gt;位置」に(0, 0, 0)を入力</li>



<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveA」にドラッグ＆ドロップ</li>



<li>CTRLを押しながらDキーを押す</li>



<li>CTRLを押しながらDキーを押す</li>



<li>CTRLを押しながらDキーを押す</li>



<li>CTRLを押しながらDキーを押す</li>



<li>SHIFTを押しながらヒエラルキーの「waveA&gt;enemy1」をクリック</li>



<li>インスペクターの「Transform&gt;位置&gt;Y」に(3)を入力</li>



<li>インスペクターの「Transform&gt;位置&gt;X」に(#*-3+24)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Cycle Count」に(0)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Curve Length」に(0)を入力</li>
</ol>



<p>weveAをプレハブ化し、ヒエラルキーから削除します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「waveA」をプロジェクトの「Assets」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「waveA」をクリック</li>



<li>DELETEキーを押す</li>
</ol>



<h3 class="wp-block-heading"><span id="toc5">▷浮遊する隕石３つ</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_046.png" target="_blank"><img decoding="async" width="353" height="566" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_046.png" alt="敵ウェーブB作成" class="wp-image-1553" style="width:265px;height:425px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_046.png 353w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_046-187x300.png 187w" sizes="(max-width: 353px) 100vw, 353px" /></a><figcaption class="wp-element-caption">敵ウェーブB作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_047.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_047.png" alt="浮遊する隕石３つ" class="wp-image-1554" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_047.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_047-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_047-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">浮遊する隕石３つ</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>上端、下端から画面内に向かって進む隕石を３つ配置します。</p>



<p>・手順</p>



<p>空オブジェクトを作成し、敵プレハブを配置してインスペクターを設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの左上にある「＋」をクリックし、「空のオブジェクトを作成」をクリック</li>



<li>「waveB」と入力してENTERを押す</li>



<li>インスペクターの「Transform&gt;位置」に(0, 0, 0)を入力</li>



<li>プロジェクトの「Assets&gt;asteroid」をヒエラルキーの「waveB」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置&gt;X」に(-1)を入力</li>



<li>インスペクターの「Transform&gt;位置&gt;Y」に(5)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Random Min Dir」に(45)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Random Max Dir」に(90)を入力</li>
</ol>



<p>waveB内のasteroidを複製・調整します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「waveB&gt;asteroid」をクリック</li>



<li>CTRLを押しながらDキーを押す</li>



<li>インスペクターの「Transform&gt;位置&gt;X」に(3)を入力</li>



<li>インスペクターの「Transform&gt;位置&gt;Y」に(-5.5)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Random Min Dir」に(270)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Random Max Dir」に(315)を入力</li>



<li>ヒエラルキーの「waveB&gt;asteroid (1)」をクリック</li>



<li>CTRLを押しながらDキーを押す</li>



<li>インスペクターの「Transform&gt;位置&gt;X」に(7)を入力</li>



<li>インスペクターの「Transform&gt;位置&gt;Y」に(6)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Random Min Dir」に(45)を入力</li>



<li>インスペクターの「Enemy(スクリプト)&gt;Random Max Dir」に(90)を入力</li>
</ol>



<p>weveBをプレハブ化し、ヒエラルキーから削除します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「waveB」をプロジェクトの「Assets」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「waveB」をクリック</li>



<li>DELETEキーを押す</li>
</ol>



<h3 class="wp-block-heading"><span id="toc6">▷前進する敵５機②</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_048.png" target="_blank"><img decoding="async" width="353" height="566" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_048.png" alt="敵ウェーブC作成" class="wp-image-1555" style="width:265px;height:425px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_048.png 353w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_048-187x300.png 187w" sizes="(max-width: 353px) 100vw, 353px" /></a><figcaption class="wp-element-caption">敵ウェーブC作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_049.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_049.png" alt="前進する敵５機②" class="wp-image-1556" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_049.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_049-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_049-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">前進する敵５機②</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>前進のみ行う敵を横に５機、下側に並べたウェーブ「waveC」を作成します。</p>



<p>・手順</p>



<p>waveAを複製し、敵５機を下側へ移動させます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;waveA」をクリック</li>



<li>CTRLを押しながらDキーを押す</li>



<li>F2キーを押し、「waveC」と入力してENTERを押す</li>



<li>プロジェクトの「Assets&gt;waveC」をダブルクリック</li>



<li>ヒエラルキーの「waveC&gt;enemy1」をクリック</li>



<li>SHIFTキーを押しながらヒエラルキーの「waveC&gt;enemy1 (4)」をクリック</li>



<li>インスペクターの「Transform&gt;位置&gt;Y」に(-3)を入力</li>



<li>ヒエラルキー左上の「&lt;」をクリック</li>
</ol>



<h3 class="wp-block-heading"><span id="toc7">▷カーブ前進する敵と大きな敵</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_050.png" target="_blank"><img decoding="async" width="353" height="566" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_050.png" alt="敵ウェーブD作成" class="wp-image-1557" style="width:265px;height:425px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_050.png 353w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_050-187x300.png 187w" sizes="(max-width: 353px) 100vw, 353px" /></a><figcaption class="wp-element-caption">敵ウェーブD作成</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_051.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_051.png" alt="カーブ前進する敵と大きな敵" class="wp-image-1558" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_051.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_051-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_051-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">カーブ前進する敵と大きな敵</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>カーブする敵６機と、前進する大きな敵を配置したウェーブ「waveD」を作成します。</p>



<p>・手順</p>



<p>空オブジェクトを作成して敵プレハブを配置、大きな敵として設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの左上にある「＋」をクリックし、「空のオブジェクトを作成」をクリック</li>



<li>「waveD」と入力してENTERを押す</li>



<li>インスペクターの「Transform&gt;位置」に(0, 0, 0)を入力</li>



<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveD」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置」に(24, 0, 0)を入力</li>



<li>インスペクターの「Transform&gt;スケール」に(12, 12, 1)を入力</li>



<li>インスペクターの「Enemy (スクリプト)&gt;Cycle Count」に(0)を入力</li>



<li>インスペクターの「Enemy (スクリプト)&gt;Curve Length」に(0)を入力</li>



<li>インスペクターの「Hit (スクリプト)&gt;Energy」に(30)を入力</li>
</ol>



<p>カーブする敵を配置します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveD」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置」に(14, 0.5, 0)を入力</li>



<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveD」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置」に(15, -0.5, 0)を入力</li>



<li>インスペクターの「Enemy (スクリプト)&gt;Curve Length」に(-2)を入力</li>



<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveD」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置」に(17, -1.5, 0)を入力</li>



<li>インスペクターの「Enemy (スクリプト)&gt;Curve Length」に(-2.5)を入力</li>



<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveD」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置」に(18, 1.5, 0)を入力</li>



<li>インスペクターの「Enemy (スクリプト)&gt;Curve Length」に(2.5)を入力</li>



<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveD」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置」に(21, 2, 0)を入力</li>



<li>インスペクターの「Enemy (スクリプト)&gt;Curve Length」に(3)を入力</li>



<li>プロジェクトの「Assets&gt;enemy1」をヒエラルキーの「waveD」にドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;位置」に(22, -2, 0)を入力</li>



<li>インスペクターの「Enemy (スクリプト)&gt;Curve Length」に(-3)を入力</li>
</ol>



<p>weveDをプレハブ化し、ヒエラルキーから削除します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「waveD」をプロジェクトの「Assets」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「waveD」をクリック</li>



<li>DELETEキーを押す</li>
</ol>



<h2 class="wp-block-heading"><span id="toc8">●ウェーブ制御</span></h2>



<h3 class="wp-block-heading"><span id="toc9">▷キャラクターが動ける範囲の作成</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="346" height="574" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_052.png" alt="敵ウェーブ管理のインスペクター情報" class="wp-image-1562" style="width:260px;height:424px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_052.png 346w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_052-181x300.png 181w" sizes="(max-width: 346px) 100vw, 346px" /><figcaption class="wp-element-caption">敵ウェーブ管理のインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_053.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_053.png" alt="キャラクターが動ける範囲" class="wp-image-1560" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_053.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_053-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_053-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">キャラクターが動ける範囲</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>ウェーブ管理スクリプト用に空のオブジェクトを作成し、<br>BoxColliderを使って画面外に出たキャラクターを判断できるようにします。</p>



<p>最初は動ける範囲内に既にいるため、スクリプト「Hit」で衝突してしまいます。<br>スクリプト「Hit」での竈突はタグを使って回避します。</p>



<p>・手順</p>



<p>空ゲームオブジェクトして位置を調整、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキー左上にある「＋」をクリックし、「空のオブジェクトを作成」をクリックします。</li>



<li>「WaveController」と入力し、ENTERを押す</li>



<li>インスペクターの「Transform&gt;位置」に(0, 0, 0)を入力</li>
</ol>



<p>BoxCollider2Dを割り当て、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>インスペクター下部にある「コンポーネントを追加」をクリック</li>



<li>「Physics 2D&gt;Box Collider 2D」をクリック</li>
</ol>



<p>BoxCollider2Dを設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>インスペクターの「Box Collider 2D&gt;トリガーにする」のチェックを入れる</li>



<li>インスペクターの「Box Collider 2D&gt;サイズ」に(18, 10)を入力</li>
</ol>



<p>タグ「WaveController」を作成、設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>インスペクター上部のタグドロップダウンをクリック</li>



<li>「タグを追加…」をクリック</li>



<li>インスペクターのタグ欄右下にある「＋」をクリック</li>



<li>「WaveController」と入力してENTERを押す</li>



<li>ヒエラルキーの「WaveController」をクリック</li>



<li>インスペクター上部のタグドロップダウンをクリック</li>



<li>「WaveController」をクリック</li>
</ol>



<p>スクリプト「Hit」の衝突処理でウェーブ管理と衝突しないようにします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Hit」をダブルクリック</li>



<li>OnTriggerEnter2D関数内の最初に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>        // ウェーブ管理とは衝突させない
        if (collider.gameObject.tag == &quot;WaveController&quot;)
        {
            return;
        }
</code></pre></div>



<h3 class="wp-block-heading"><span id="toc10">▷動ける範囲を出たら削除</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_054.png" alt="弾が緑枠外に出ると消える" class="wp-image-1561" style="width:314px;height:214px"/><figcaption class="wp-element-caption">弾が緑枠外に出ると消える</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>画面外に出たら敵や弾を削除するスクリプトを作成します。</p>



<p>・手順</p>



<p>敵ウェーブを管理する変数を作成します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets」を右クリックし、「作成＞C# スクリプト」をクリック</li>



<li>「WaveController」と入力してENTERを押す</li>



<li>プロジェクトの「Assets&gt;WaveController」をヒエラルキーの「WaveController」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;WaveController」をダブルクリック</li>



<li>Start関数の前に以下の変数を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="WaveController.cs" data-lang="C#"><code>    public List&lt;GameObject&gt; waves;              // ウェーブ一覧

    int nextWaveIndex = 0;                      // 次のウェーブ位置
    GameObject currentWave;                     // 現在のウェーブ
    Vector3 hidePos;                            // カメラの後ろ位置
</code></pre></div>



<p>弾をカメラの後ろ位置へ移動するため、Startでカメラ後ろ位置を計算しておきます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数内に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="WaveController.cs" data-lang="C#"><code>        // カメラの後ろ位置
        hidePos = Camera.main.transform.position - Camera.main.transform.forward;
</code></pre></div>



<p>敵が居なくなったら次のウェーブを作成する処理を作成します。<br>最後のウェーブだった場合、敵ウェーブ総数で割った余りを次に作成するウェーブ番号とします。<br>結果、敵ウェーブを永久に繰り返すようになります。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Update関数内に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="WaveController.cs" data-lang="C#"><code>        // ウェーブが無い、もしくは敵が居なくなった場合
        if (currentWave == null || currentWave.transform.childCount == 0)
        {
            // ウェーブ作成
            currentWave = Instantiate(waves[nextWaveIndex]);
            // 次のウェーブ位置を計算
            nextWaveIndex++;
            // ウェーブ総数以上になったら繰り返すように余りを求める
            nextWaveIndex %= waves.Count;
        }
</code></pre></div>



<p>動ける範囲の外に出たオブジェクトを削除する処理を追加します。<br>弾は削除すると発射されなくなるので、カメラの後ろに隠すようにします。<br>弾かどうかはHitスクリプトが有るか無いかで判断しています。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Update関数の次に以下の関数を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="WaveController.cs" data-lang="C#"><code>    // トリガーの外に出たら処理
    void OnTriggerExit2D(Collider2D obj)
    {
        // Hitスクリプトを持っていなかったら弾と判断
        Hit hit = obj.gameObject.GetComponent&lt;Hit&gt;();
        if (hit == null)
        {
            // カメラの後ろに隠す
            obj.gameObject.transform.position = hidePos;
        }
        else
        {
            // 削除
            Destroy(obj.gameObject);
        }
    }
</code></pre></div>



<p>スクリプトを保存してビルドします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<h3 class="wp-block-heading"><span id="toc11">▷敵ウェーブ配置</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_055.png" alt="敵ウェーブが繰り返し出現する" class="wp-image-1567" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_055.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_055-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_055-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /><figcaption class="wp-element-caption">敵ウェーブが繰り返し出現する</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow"></div>
</div>



<p>・解説</p>



<p>敵ウェーブが順に表示されるように設定します。</p>



<p>・手順</p>



<p>WaveControllerのWavesに敵ウェーブをABCDの順で登録します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「WaveController」をクリック</li>



<li>プロジェクトの「Assets&gt;waveA」をインスペクターの「Wave Controller (スクリプト)&gt;Waves」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;waveB」をインスペクターの「Wave Controller (スクリプト)&gt;Waves」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;waveC」をインスペクターの「Wave Controller (スクリプト)&gt;Waves」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;waveD」をインスペクターの「Wave Controller (スクリプト)&gt;Waves」にドラッグ＆ドロップ</li>
</ol>



<p>プロジェクトを保存して動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>各種ウェーブが順番に登場することを確認</li>



<li>waveDが終了したらwaveAに戻ってループすることを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h2 class="wp-block-heading"><span id="toc12">●完成</span></h2>



<p>シューティングとして遊べる形になりました。</p>



<p>次回はスコア制御を作って完成とします。<br>ゲームオーバーやタイトル、クリア等は気が向いたら作ります。</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg5/">敵ウェーブ～横スクロールシューティング⑤</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/sidestg5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>隕石と背景～横スクロールシューティング④</title>
		<link>https://d9m.conohawing.com/sidestg4/</link>
					<comments>https://d9m.conohawing.com/sidestg4/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Fri, 09 Sep 2022 10:48:20 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[チュートリアル]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1411</guid>

					<description><![CDATA[<p>目次 ●はじめに●隕石作成▷隕石の作成▷隕石をランダムに動かす▷隕石大を破壊したら隕石小にする●背景▷背景表示▷背景スクロール●不具合修正▷現象確認▷衝突条件修正▷エフェクトが表示されない不具合 ●はじめに 2D横スクロ [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg4/">隕石と背景～横スクロールシューティング④</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●隕石作成</a><ol><li><a href="#toc3" tabindex="0">▷隕石の作成</a></li><li><a href="#toc4" tabindex="0">▷隕石をランダムに動かす</a></li><li><a href="#toc5" tabindex="0">▷隕石大を破壊したら隕石小にする</a></li></ol></li><li><a href="#toc6" tabindex="0">●背景</a><ol><li><a href="#toc7" tabindex="0">▷背景表示</a></li><li><a href="#toc8" tabindex="0">▷背景スクロール</a></li></ol></li><li><a href="#toc9" tabindex="0">●不具合修正</a><ol><li><a href="#toc10" tabindex="0">▷現象確認</a></li><li><a href="#toc11" tabindex="0">▷衝突条件修正</a></li><li><a href="#toc12" tabindex="0">▷エフェクトが表示されない不具合</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールシューティング作成の４回目になります。<br>アセットストアで無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Space Shooter</a>」をお借りして作成しています。</p>



<p>今回は「分裂する隕石と背景」を作成します。<br>手順が長くなったのと、作成ペースが上がらないのでスコア、敵ウェーブはさらに後回しにします。</p>



<iframe loading="lazy" src="/game/sidestg4/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成します。</p>



<h2 class="wp-block-heading"><span id="toc2">●隕石作成</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷隕石の作成</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_032.png" alt="" class="wp-image-1421" width="521" height="629" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_032.png 695w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_032-249x300.png 249w" sizes="(max-width: 521px) 100vw, 521px" /><figcaption>隕石のインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_031.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_031.png" alt="" class="wp-image-1420" width="314" height="214" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_031.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_031-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_031-130x90.png 130w" sizes="(max-width: 314px) 100vw, 314px" /></a><figcaption>隕石を制御</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>隕石の画像２枚をそれぞれ配置し、それぞれを敵として作成してプレハブ化します。<br>衝突させるためHitスクリプトを割り当て、小さい方をEnergy(1)、大きい方をEnergy(5)とします。<br>Rigidbody2Dを割り当てて重力スケールを(0)、衝突判定を(連続的)とし、CircleCollider2Dを割り当ててトリガーとします。</p>



<p>・隕石小の手順</p>



<p>隕石画像小を配置します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;asteroids&gt;asteroid-small」をシーンにドラッグ＆ドロップ</li><li>インスペクターの「Transform&gt;スケール」に(4, 4, 0)を入力</li></ol>



<p>Hitスクリプトを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>Hit」をヒエラルキーの「asteroid-small」にドラッグ＆ドロップ</li><li>インスペクターの「Hit (スクリプト)>Energy」に(1)を入力</li></ol>



<p>Rigidbody 2Dを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>インスペクターの「コンポーネントを追加」をクリック</li><li>「Physics 2D&gt;Rigidbody 2D」をクリック</li><li>インスペクターの「Rigidbody 2D&gt;重力スケール」に(0)を入力</li><li>インスペクターの「Rigidbody 2D&gt;衝突判定」を(連続的)に変更</li></ol>



<p>Circle Collider 2Dを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>インスペクターの「コンポーネントを追加」をクリック</li><li>「Physics 2D&gt;Circle Collider 2D」をクリック</li><li>インスペクターの「Circle Collider 2D&gt;トリガーにする」をチェック</li></ol>



<p>Enemyスクリプトを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>Enemy」をヒエラルキーの「asteroid-small」にドラッグ＆ドロップ</li><li>インスペクターの「Enemy (スクリプト)>速度」に(1)を入力</li><li>インスペクターの「Enemy (スクリプト)>Cycle Count」に(0)を入力</li><li>インスペクターの「Enemy (スクリプト)>Curve Length」に(0)を入力</li></ol>



<p>プレハブ化します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>ヒエラルキーの「asteroid-small」をプロジェクトの「Assets」にドラッグ＆ドロップ</li></ol>



<p>・隕石大の手順</p>



<p>隕石画像大を配置します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;asteroids&gt;asteroid」をシーンにドラッグ＆ドロップ</li><li>インスペクターの「Transform&gt;スケール」に(4, 4, 0)を入力</li></ol>



<p>Hitスクリプトを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>Hit」をヒエラルキーの「asteroid」にドラッグ＆ドロップ</li><li>インスペクターの「Hit (スクリプト)>Energy」に(5)を入力</li></ol>



<p>Rigidbody 2Dを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>インスペクターの「コンポーネントを追加」をクリック</li><li>「Physics 2D&gt;Rigidbody 2D」をクリック</li><li>インスペクターの「Rigidbody 2D&gt;重力スケール」に(0)を入力</li><li>インスペクターの「Rigidbody 2D&gt;衝突判定」を(連続的)に変更</li></ol>



<p>Circle Collider 2Dを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>インスペクターの「コンポーネントを追加」をクリック</li><li>「Physics 2D&gt;Circle Collider 2D」をクリック</li><li>インスペクターの「Circle Collider 2D&gt;トリガーにする」をチェック</li></ol>



<p>Enemyスクリプトを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>「Assets&gt;Enemy」をヒエラルキーの「asteroid」にドラッグ＆ドロップ</li><li>インスペクターの「Enemy (スクリプト)&gt;速度」に(1)を入力</li><li>インスペクターの「Enemy (スクリプト)&gt;Cycle Count」に(0)を入力</li><li>インスペクターの「Enemy (スクリプト)&gt;Curve Length」に(0)を入力</li></ol>



<p>プレハブ化します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>ヒエラルキーの「asteroid」をプロジェクトの「Assets」にドラッグ＆ドロップ</li></ol>



<p>・動作確認</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li><li>隕石が画面左に向かって移動してくることを確認</li><li>隕石が破壊できることを確認</li><li>隕石に体当たりするとやられることを確認</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li></ol>



<h3 class="wp-block-heading"><span id="toc4">▷隕石をランダムに動かす</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_040.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_040.png" alt="" class="wp-image-1528" width="314" height="214" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_040.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_040-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_040-130x90.png 130w" sizes="(max-width: 314px) 100vw, 314px" /></a><figcaption>プレビューごとに隕石の進む方向が変わる</figcaption></figure>



<p>・解説</p>



<p>隕石をランダムな方向に動かすために変数を追加し、開始時の角度をランダムに設定します。</p>



<p>・手順</p>



<p>ランダム範囲を指定する変数を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets&gt;Enemy」をダブルクリック</li><li>「１秒間に進む距離」の下に以下の変数を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>    public float randomMinDir = 0;  // ランダム方向の最小値
    public float randomMaxDir = 0;  // ランダム方向の最大値
</code></pre></div>



<p>ランダム値を設定する処理を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Start関数内の最後に以下の処理を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>        // ランダム範囲が指定されている場合
        if (randomMinDir != randomMaxDir)
        {
            // ランダム方向を設定
            float rotZ = Random.Range(randomMinDir, randomMaxDir);
            transform.rotation = Quaternion.Euler(0, 0, rotZ);
        }
</code></pre></div>



<p>スクリプトを保存してビルドします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>CTRLを押しながらSキーを押してスクリプト保存</li><li>Unityエディタをクリックしてビルド</li></ol>



<p>隕石大のランダム方向を指定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets&gt;asteroid-small」をダブルクリック</li><li>インスペクターの「Enemy (スクリプト)&gt;Random Max Dir」に(360)を入力</li><li>ヒエラルキーの左上にある「&lt;」をクリック</li><li>プロジェクトの「Assets&gt;asteroid」をダブルクリック</li><li>インスペクターの「Enemy (スクリプト)&gt;Random Max Dir」に(360)を入力</li><li>ヒエラルキーの左上にある「&lt;」をクリック</li></ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li><li>プレビューを繰り返し、隕石がランダムな方向に動くことを確認</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li></ol>



<h3 class="wp-block-heading"><span id="toc5">▷隕石大を破壊したら隕石小にする</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_033.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_033.png" alt="" class="wp-image-1423" width="275" height="461" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_033.png 367w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_033-179x300.png 179w" sizes="(max-width: 275px) 100vw, 275px" /></a><figcaption>隕石大のインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_034.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_034.png" alt="" class="wp-image-1424" width="314" height="214" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_034.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_034-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_034-130x90.png 130w" sizes="(max-width: 314px) 100vw, 314px" /></a><figcaption>隕石大を破壊したら隕石小になる</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>爆発後に作成するプレハブを指定できるよう、Enemyスクリプトを修正します。</p>



<p>・手順</p>



<p>爆発後に作成するプレハブ一覧を保存するため、変数を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets&gt;Hit」をダブルクリック</li><li>Start関数の前に以下の変数を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>    // 爆発後に作成するプレハブの一覧
    public List&lt;GameObject&gt; leavePrefabs;
    // 爆発後に作成したゲームオブジェクトの相対位置
    public List&lt;Vector3&gt; leavePostions;
</code></pre></div>



<p>爆発時にプレハブを残す処理を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>OnTriggerEnter2D内の「自分を削除」する処理の前に以下の処理を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>            // プレハブを残す
            Vector3 pos = transform.position;
            for (int i = 0; i &lt; leavePrefabs.Count; i++)
            {
                Instantiate(leavePrefabs[i], pos + leavePostions[i], Quaternion.identity);
            }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>CTRLを押しながらSキーを押してスクリプト保存</li><li>Unityエディタをクリックしてビルド</li></ol>



<p>爆発時に作成するプレハブを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>ヒエラルキーの「asteroid」をクリック</li><li>プロジェクトの「Assets&gt;asteroid-small」をインスペクターの「Hit (スクリプト)&gt;Leave Prefabs」にドラッグ＆ドロップ</li><li>プロジェクトの「Assets&gt;asteroid-small」をインスペクターの「Hit (スクリプト)&gt;Leave Prefabs」にドラッグ＆ドロップ</li><li>プロジェクトの「Assets&gt;asteroid-small」をインスペクターの「Hit (スクリプト)&gt;Leave Prefabs」にドラッグ＆ドロップ</li></ol>



<p>爆発時に作成したプレハブの相対位置を設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>インスペクターの「Hit (スクリプト)>Leave Positions」右に(3)を入力</li><li>インスペクターの「Hit (スクリプト)>Leave Positions」左にある▶をクリックして展開</li><li>インスペクターの「Hit (スクリプト)>Leave Positions>要素0>Y」に(0.5)を入力</li><li>インスペクターの「Hit (スクリプト)>Leave Positions>要素1」に(-0.3, -0.3, 0)を入力</li><li>インスペクターの「Hit (スクリプト)>Leave Positions>要素1」に(0.3, -0.3, 0)を入力</li></ol>



<p>隕石大の変更をプレハブに反映します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>インスペクターの右上にある「オーバーライド」をクリックし、「すべてを適用する」をクリック</li></ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>CTRLを押しながらSキーを押してプロジェクト保存</li></ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li><li>隕石大を破壊したら隕石小が３つ出現することを確認</li><li>残された隕石小を破壊できることを確認</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li></ol>



<h2 class="wp-block-heading"><span id="toc6">●背景</span></h2>



<h3 class="wp-block-heading"><span id="toc7">▷背景表示</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_035.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_035.png" alt="" class="wp-image-1519" width="184" height="310" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_035.png 245w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_035-178x300.png 178w" sizes="(max-width: 184px) 100vw, 184px" /></a><figcaption>ヒエラルキーの状態</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_036.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_036.png" alt="" class="wp-image-1520" width="314" height="214" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_036.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_036-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_036-130x90.png 130w" sizes="(max-width: 314px) 100vw, 314px" /></a><figcaption>BGMのインスペクター情報</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>背景スクロールを作成します。</p>



<p>前後関係と多重スクロールを制御しやすいように空オブジェクトで整理し、<br>空オブジェクトの中に背景画像を配置していきます。</p>



<p>・手順</p>



<p>背景画像を配置するための空オブジェクトを作成します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>ヒエラルキーの左上にある「＋」をクリックし、「空のオブジェクトを作成」をクリック</li><li>「background」と入力してENTERを押す</li><li>インスペクターの「Transform>位置」に(0, 0, 0)を入力</li><li>ヒエラルキーの「background」を右クリックし、「空のオブジェクトを作成」をクリック</li><li>「back」と入力してENTERを押す</li><li>インスペクターの「Transform>スケール」に(6.6, 6.6, 1)を入力</li><li>ヒエラルキーの「background」を右クリックし、「空のオブジェクトを作成」をクリック</li><li>「stars」と入力してENTERを押す</li><li>インスペクターの「Transform>スケール」に(6.6, 6.6, 1)を入力</li><li>ヒエラルキーの「background」を右クリックし、「空のオブジェクトを作成」をクリック</li><li>「planet」と入力してENTERを押す</li><li>インスペクターの「Transform>スケール」に(6.6, 6.6, 1)を入力</li></ol>



<p>最も奥の背景画像を表示します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>Space Shooter Assets>Artwork>background>bg-back」をヒエラルキーの「background>back」にドラッグ＆ドロップ</li><li>インスペクターの「Transform>スケール」に(1, 1, 1)を入力</li><li>インスペクターの「Sprite Renderer>追加設定>レイヤーの順序」に(-100)を入力</li><li>ヒエラルキーの「background>back>bg-stars」をクリック</li><li>CTRLを押しながらDキーを押す</li><li>インスペクターの「Transform>位置>X」に(2.72)を入力</li><li>ヒエラルキーの「background>back>bg-back (1)」をクリック</li><li>CTRLを押しながらDキーを押す</li><li>インスペクターの「Transform>位置>X」に(5.44)を入力</li></ol>



<p>中央の背景画像を表示します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>Space Shooter Assets>Artwork>background>bg-stars」をヒエラルキーの「background>stars」にドラッグ＆ドロップ</li><li>インスペクターの「Transform>スケール」に(1, 1, 1)を入力</li><li>インスペクターの「Sprite Renderer>追加設定>レイヤーの順序」に(-60)を入力</li><li>ヒエラルキーの「background>stars>bg-stars」をクリック</li><li>CTRLを押しながらDキーを押す</li><li>インスペクターの「Transform>位置>X」に(2.72)を入力</li><li>インスペクターの「Sprite Renderer>反転>Y」にチェックを入れる</li><li>ヒエラルキーの「background>back>bg-stars (1)」をクリック</li><li>CTRLを押しながらDキーを押す</li><li>インスペクターの「Transform>位置>X」に(5.44)を入力</li><li>インスペクターの「Sprite Renderer>反転>Y」のチェックを外す</li></ol>



<p>手前の背景画像を表示します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>Space Shooter Assets>Artwork>background>bg-planet」をヒエラルキーの「background>planet」にドラッグ＆ドロップ</li><li>インスペクターの「Transform>スケール」に(1, 1, 1)を入力</li><li>インスペクターの「Sprite Renderer>追加設定>レイヤーの順序」に(-20)を入力</li><li>ヒエラルキーの「background>back>bg-planet」をクリック</li><li>CTRLを押しながらDキーを押す</li><li>インスペクターの「Transform>位置>X」に(2.72)を入力</li><li>インスペクターの「Sprite Renderer>反転>Y」にチェックを入れる</li><li>ヒエラルキーの「background>back>bg-planet(1)」をクリック</li><li>CTRLを押しながらDキーを押す</li><li>インスペクターの「Transform>位置>X」に(5.44)を入力</li><li>インスペクターの「Sprite Renderer>反転>Y」のチェックを外す</li></ol>



<h3 class="wp-block-heading"><span id="toc8">▷背景スクロール</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_037.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_037.png" alt="" class="wp-image-1521" width="314" height="214" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_037.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_037-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_037-130x90.png 130w" sizes="(max-width: 314px) 100vw, 314px" /></a><figcaption>背景が多重スクロールする</figcaption></figure>



<p>・解説</p>



<p>背景をスクロールさせるためのスクリプトを作成します。</p>



<p>・手順</p>



<p>スクリプト「Background」を作成します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets」を右クリックし、「作成>C# スクリプト」をクリック</li><li>「Background」と入力してENTERを押す</li><li>プロジェクトの「Assets>Background」をダブルクリック</li><li>Start関数の前にスクロール制御する変数を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Background.cs" data-lang="C#"><code>    public float speed = 0.01f;             // １フレームに動く距離
    public float scrollWidth = 5.44f;       // ループ幅
</code></pre></div>



<p>自分のスケールに合わせて「ループの幅」を計算する処理を記述します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Start関数に以下の処理を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Background.cs" data-lang="C#"><code>        // 自分のスケールに合わせて「ループの幅」を計算
        scrollWidth *= transform.localScale.x;
</code></pre></div>



<p>ループしてスクロールし続けるように処理を記述します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Update関数の次に以下の関数を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Background.cs" data-lang="C#"><code>    // 物理更新時に処理
    void FixedUpdate()
    {
        // スクロール
        Vector3 pos = transform.position;
        pos.x -= speed;
        // ループ幅を超えて移動した場合
        if (-scrollWidth &gt; pos.x)
        {
            // ループ幅分戻す
            pos.x += scrollWidth;
        }
        transform.position = pos;
    }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>CTRLを押しながらSキーを押してスクリプト保存</li><li>Unityエディタをクリックしてビルド</li></ol>



<p>スクリプトを各背景ゲームオブジェクトに割り当て、速度を設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>ヒエラルキーの「background>back」にプロジェクトの「Assets>Background」をドラッグ＆ドロップ</li><li>ヒエラルキーの「background>back」をクリック</li><li>インスペクターの「Background (スクリプト)>速度」に(0.005)を入力</li><li>ヒエラルキーの「background>stars」にプロジェクトの「Assets>Background」をドラッグ＆ドロップ</li><li>ヒエラルキーの「background>planet」にプロジェクトの「Assets>Background」をドラッグ＆ドロップ</li><li>ヒエラルキーの「background>planet」をクリック</li><li>インスペクターの「Background (スクリプト)>速度」に(0.02)を入力</li></ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>CTRLを押しながらSキーを押してプロジェクト保存</li></ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li><li>背景画像の３つが多重スクロールすることを確認</li><li>背景画像がループしてスクロールすることを確認</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li></ol>



<h2 class="wp-block-heading"><span id="toc9">●不具合修正</span></h2>



<h3 class="wp-block-heading"><span id="toc10">▷現象確認</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_038.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_038.png" alt="" class="wp-image-1523" width="314" height="214" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_038.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_038-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_038-130x90.png 130w" sizes="(max-width: 314px) 100vw, 314px" /></a><figcaption>開始後にすぐ破壊される不具合</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_039.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_039.png" alt="" class="wp-image-1524" width="314" height="214" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_039.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_039-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_039-130x90.png 130w" sizes="(max-width: 314px) 100vw, 314px" /></a><figcaption>修正後、弾が当たるまで破壊されなくなる</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>弾が見えない状態でも敵に命中していましたので修正します。</p>



<p>・手順</p>



<p>修正後に現象が発生しなくなる事を確認するため、一旦不具合を確認します。<br>自機の前方に隕石大を配置します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>ヒエラルキーの「asteroid」をクリック</li><li>インスペクターの「Transform>位置」に(6, 0, 0)を入力</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li><li>弾が当たる前に隕石大が破壊されることを確認</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li></ol>



<h3 class="wp-block-heading"><span id="toc11">▷衝突条件修正</span></h3>



<p>・解説</p>



<p>Debug.Logで隕石に衝突したオブジェクトの位置を確認したところ、見えないZ位置にある弾が衝突していました。<br>特に深く考えてませんでしたが、2Dの衝突チェックなんだから無視されて当然でした。</p>



<p>・手順</p>



<p>Z位置が0以外の場合、衝突しないようにします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>Hit」をダブルクリック</li><li>OnTriggerEnter2Dの「タグが同じ場合は衝突させない」処理の次に以下の処理を追加</li></ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Background.cs" data-lang="C#"><code>        // Z軸が0以外の場合は衝突させない
        if (collider.gameObject.transform.position.z != 0)
        {
            return;
        }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>CTRLを押しながらSキーを押してスクリプト保存</li><li>Unityエディタをクリックしてビルド</li></ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>CTRLを押しながらSキーを押してプロジェクト保存</li></ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li><li>弾が隕石台に命中してから破壊されることを確認</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li></ol>



<h3 class="wp-block-heading"><span id="toc12">▷エフェクトが表示されない不具合</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_041.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_041.png" alt="" class="wp-image-1530" width="221" height="277" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_041.png 294w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_041-239x300.png 239w" sizes="(max-width: 221px) 100vw, 221px" /></a><figcaption>命中エフェクトのインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_042.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_042.png" alt="" class="wp-image-1531" width="221" height="277" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_042.png 294w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_042-239x300.png 239w" sizes="(max-width: 221px) 100vw, 221px" /></a><figcaption>爆発エフェクトのインスペクター情報</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>プレビューすると表示されない時がありました。<br>１００％の発生ではないので確認が難しいですが…。<br>恐らくエフェクトとキャラクターの表示順が同じために発生しているので、はっきり表示順を指定します。</p>



<p>・手順</p>



<p>命中エフェクトの「レイヤーの順序」を大きくして手前に出します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>hit1」をダブルクリック</li><li>インスペクターの「Sprite Renderer>追加設定>レイヤーの順序」に(10)を入力</li><li>ヒエラルキーの左上にある「＜」をクリック</li></ol>



<p>同じように、爆発エフェクトの「レイヤーの順序」を大きくして手前に出します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>プロジェクトの「Assets>explosion1」をダブルクリック</li><li>インスペクターの「Sprite Renderer>追加設定>レイヤーの順序」に(10)を入力</li><li>ヒエラルキーの左上にある「＜」をクリック</li></ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list"><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li><li>プレビューし、エフェクトが手前に表示されることを確認</li><li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li></ol>



<p><strong>●完成</strong></p>



<p>隕石と背景を追加し、遊べそうな雰囲気が出てきました。</p>



<p>次回はいくつか敵ウェーブを作成したいと思います。<br>敵グループを順番に出現させ、ループさせて遊べる形にします。</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg4/">隕石と背景～横スクロールシューティング④</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/sidestg4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>オーディオ～横スクロールシューティング③</title>
		<link>https://d9m.conohawing.com/sidestg3/</link>
					<comments>https://d9m.conohawing.com/sidestg3/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Fri, 02 Sep 2022 15:58:19 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[チュートリアル]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1350</guid>

					<description><![CDATA[<p>目次 ●はじめに●自機のやられ▷自機の衝突設定▷弾を加速度で動かす▷タグで衝突を制御●オーディオ制御▷BGM設定▷効果音再生制御●完成 ●はじめに 今回のメインはオーディオです。 2D横スクロールシューティング作成の３回 [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg3/">オーディオ～横スクロールシューティング③</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●自機のやられ</a><ol><li><a href="#toc3" tabindex="0">▷自機の衝突設定</a></li><li><a href="#toc4" tabindex="0">▷弾を加速度で動かす</a></li><li><a href="#toc5" tabindex="0">▷タグで衝突を制御</a></li></ol></li><li><a href="#toc6" tabindex="0">●オーディオ制御</a><ol><li><a href="#toc7" tabindex="0">▷BGM設定</a></li><li><a href="#toc8" tabindex="0">▷効果音再生制御</a></li></ol></li><li><a href="#toc9" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>今回のメインはオーディオです。</p>



<p>2D横スクロールシューティング作成の３回目になります。<br>アセットストアで無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Space Shooter</a>」をお借りして作成しています。</p>



<p>「自機のやられ、BGM再生、効果音再生」を作成し、シューティングっぽくなるようにします。</p>



<iframe loading="lazy" src="/game/sidestg3/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑これが完成する。</p>



<h2 class="wp-block-heading"><span id="toc2">●自機のやられ</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷自機の衝突設定</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="277" height="709" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_024.png" alt="player1のインスペクター情報" class="wp-image-1394" style="width:208px;height:532px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_024.png 277w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_024-117x300.png 117w" sizes="(max-width: 277px) 100vw, 277px" /><figcaption class="wp-element-caption">player1のインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_021.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_021.png" alt="体当たりで自機が消える、そしてバグ" class="wp-image-1391" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_021.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_021-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_021-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">体当たりで自機が消える、そしてバグ</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>Hitスクリプトを設定し、１撃でやられるようEnergyに(1)を設定します。<br>Rigidbody2Dを割り当てて重力スケールを(0)、衝突判定を(連続的)とし、<br>CircleCollider2Dを割り当ててオフセットXを(0.05)、半径を(0.05)とします。</p>



<p>・手順</p>



<p>スクリプトを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「Assets&gt;Hit」をヒエラルキーの「Player1」にドラッグ＆ドロップ</li>



<li>インスペクターの「Hit (スクリプト)&gt;Energy」に(1)を入力</li>
</ol>



<p>Rigidbody 2Dを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>インスペクターの「コンポーネントを追加」をクリック</li>



<li>「Physics 2D&gt;Rigidbody 2D」をクリック</li>



<li>インスペクターの「Rigidbody 2D&gt;重力スケール」に(0)を入力</li>



<li>インスペクターの「Rigidbody 2D&gt;衝突判定」を(連続的)に変更</li>
</ol>



<p>Circle Collider 2Dを割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>インスペクターの「コンポーネントを追加」をクリック</li>



<li>「Physics 2D&gt;Circle Collider 2D」をクリック</li>



<li>インスペクターの「Circle Collider 2D&gt;トリガーにする」をチェック</li>



<li>インスペクターの「Circle Collider 2D&gt;オフセット&gt;X」に(0.05)を入力</li>



<li>インスペクターの「Circle Collider 2D&gt;半径」を(0.05)に変更</li>
</ol>



<p>・動作確認</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>敵に体当たりしたら自機が爆発することを確認</li>



<li>自機が爆発したら自機の弾が停止するバグが発生することを確認…</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h3 class="wp-block-heading"><span id="toc4">▷弾を加速度で動かす</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="277" height="639" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_025.png" alt="shoot1プレハブのインスペクター情報" class="wp-image-1396" style="width:208px;height:479px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_025.png 277w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_025-130x300.png 130w" sizes="(max-width: 277px) 100vw, 277px" /><figcaption class="wp-element-caption">shoot1プレハブのインスペクター情報</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_022.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_022.png" alt="自機がやられても弾が止まらない" class="wp-image-1392" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_022.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_022-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_022-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">自機がやられても弾が止まらない</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>弾が停止しないよう弾にRigidbody2Dを割り当てて加速度を与え、自分で動くようにします。</p>



<p>・手順</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Player」をダブルクリック</li>



<li>Start関数の繰り返し処理内にある「プレハブから弾を作成」の処理の後に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>            // リジッドボディの加速度を指定
            Rigidbody2D rb = shotList[i].GetComponent&lt;Rigidbody2D&gt;();
            rb.velocity = transform.right * shotSpeed;
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>FixedUpdateの最後にある「弾移動（どうせ見えないので全部動かす）」処理を削除</li>
</ol>



<p>スクリプトを保存してビルドします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>弾にRigidbody 2Dを設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;shoot1」をダブルクリック</li>



<li>インスペクターの「コンポーネントを追加」をクリック</li>



<li>「Physics 2D&gt;Rigidbody 2D」をクリック</li>



<li>インスペクターの「Rigidbody 2D&gt;重力スケール」に(0)を入力</li>



<li>インスペクターの「Rigidbody 2D&gt;衝突判定」を(連続的)に変更</li>



<li>ヒエラルキー左上の「&lt;」をクリックしてプレハブ編集を終了</li>
</ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>敵に体当たりして爆発しても弾が停止しないことを確認</li>



<li>自機の弾に体当たりしても爆発することを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h3 class="wp-block-heading"><span id="toc5">▷タグで衝突を制御</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_026.png" target="_blank"><img decoding="async" width="277" height="355" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_026.png" alt="自機の弾に当たっても爆発しない" class="wp-image-1397" style="width:208px;height:266px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_026.png 277w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_026-234x300.png 234w" sizes="(max-width: 277px) 100vw, 277px" /></a><figcaption class="wp-element-caption">自機の弾に当たっても爆発しない</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_023.png" target="_blank"><img decoding="async" width="418" height="285" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_023.png" alt="自機の弾に当たっても爆発しない" class="wp-image-1393" style="width:314px;height:214px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_023.png 418w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_023-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_023-130x90.png 130w" sizes="(max-width: 418px) 100vw, 418px" /></a><figcaption class="wp-element-caption">自機の弾に当たっても爆発しない</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>自機の弾は誰と衝突しても破壊できる状態です。<br>自機と自機の弾にPlayerタグを割り当て、自分と同じタグの場合は衝突しないようスクリプトを修正します。</p>



<p>・手順</p>



<p>自機のタグを「Player」にします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「Player1」をクリック</li>



<li>インスペクターのタグを「Player」に変更</li>
</ol>



<p>自機の弾のタグを「Player」にします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;shoot1」をダブルクリック</li>



<li>インスペクターのタグを「Player」に変更</li>



<li>ヒエラルキー左上の「&lt;」をクリックしてプレハブ編集を終了</li>
</ol>



<p>タグが同じ場合は衝突しないように条件を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Hit」をダブルクリック</li>



<li>OnTriggerEnter2D関数の先頭に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>        // タグが同じ場合は衝突させない
        if (tag == collider.gameObject.tag) {
            return;
        }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>
</ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>敵に弾を当てて倒せることを確認</li>



<li>自分の弾に当たっても爆発しないことを確認</li>



<li>再度プレビューし、敵への体当たりで爆発することを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h2 class="wp-block-heading"><span id="toc6">●オーディオ制御</span></h2>



<h3 class="wp-block-heading"><span id="toc7">▷BGM設定</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_028.png" target="_blank"><img decoding="async" width="294" height="491" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_028.png" alt="オーディオインポート設定" class="wp-image-1400" style="width:221px;height:368px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_028.png 294w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_028-180x300.png 180w" sizes="(max-width: 294px) 100vw, 294px" /></a><figcaption class="wp-element-caption">オーディオのインポート設定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_027.png" target="_blank"><img decoding="async" width="294" height="544" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_027.png" alt="BGMのインスペクター情報" class="wp-image-1399" style="width:221px;height:408px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_027.png 294w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_027-162x300.png 162w" sizes="(max-width: 294px) 100vw, 294px" /></a><figcaption class="wp-element-caption">BGMのインスペクター情報</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>オーディオ機能を使ってBGMを鳴らします。</p>



<p>・手順</p>



<p>BGMに合ったインポート設定に調整します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Space Shooter Assets&gt;Artwork&gt;music&gt;space-asteroids.ogg」をクリック</li>



<li>インスペクターの「バックグラウンドで実行」をチェック</li>



<li>インスペクターの「デフォルト＞ロードタイプ」を「ストリーミング」に変更</li>



<li>インスペクターの「適用する」をクリック</li>
</ol>



<p>ヒエラルキーに配置してBGM再生します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Space Shooter Assets&gt;Artwork&gt;music&gt;space-asteroids.ogg」をヒエラルキーにドラッグ＆ドロップ</li>



<li>F2キーを押して「BGM」と入力し、ENTERを押す</li>



<li>インスペクターの「Audio Source&gt;ループ」にチェックを入れる</li>
</ol>



<p>・動作確認</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>BGMが再生されることを確認</li>



<li>BGMがループすることを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h3 class="wp-block-heading"><span id="toc8">▷効果音再生制御</span></h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_029.png" target="_blank"><img decoding="async" width="294" height="499" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_029.png" alt="オーディオインポート設定" class="wp-image-1402" style="width:221px;height:374px" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_029.png 294w, https://d9m.conohawing.com/wp-content/uploads/2022/09/SideSTG_029-177x300.png 177w" sizes="(max-width: 294px) 100vw, 294px" /></a><figcaption class="wp-element-caption">オーディオのインポート設定</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/09/SideSTG_030.png" target="_blank"><img decoding="async" src="https://d9m.one/wp-content/uploads/2022/09/SideSTG_030.png" alt="効果音ゲームオブジェクト３つのインスペクター情報" class="wp-image-1403" style="width:392px;height:374px"/></a><figcaption class="wp-element-caption">効果音ゲームオブジェクト３つのインスペクター情報</figcaption></figure>
</div>
</div>



<p>・解説</p>



<p>効果音を再生するためのスクリプトを作成します。<br>効果音再生にはオーディオ機能だけでなく、スクリプトも必要になります。</p>



<p>・手順</p>



<p>効果音を３つ、効果音に合ったインポート設定に調整します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Space Shooter Assets&gt;Artwork&gt;Sound FX&gt;explosion」をクリック</li>



<li>SHIFTを押しながらプロジェクトの「Assets&gt;Space Shooter Assets&gt;Artwork&gt;Sound FX&gt;shot 1」をクリック</li>



<li>インスペクターの「Mono に強制」をチェック</li>



<li>インスペクターの「適用する」をクリック</li>
</ol>



<p>ヒエラルキーに効果音を配置し、開始時に再生しないように設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Space Shooter Assets&gt;Artwork&gt;Sound FX&gt;explosion」をクリック</li>



<li>SHIFTを押しながらプロジェクトの「Assets&gt;Space Shooter Assets&gt;Artwork&gt;Sound FX&gt;shot 1」をクリック</li>



<li>プロジェクトで選択中のアセットをヒエラルキーの「Sample Scene」にドラッグ＆ドロップ</li>



<li>インスペクターの「Audio Source&gt;ゲーム開始時に再生」にあるチェックを外す</li>



<li>インスペクターの「Audio Source&gt;ボリューム」を(0.5)に設定</li>



<li>ヒエラルキーで選択中のゲームオブジェクトをヒエラルキーの「GameController」にドラッグ＆ドロップ</li>
</ol>



<p>ゲーム管理にオーディオソースを管理させます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;GameController」をダブルクリック</li>



<li>Start関数の前に以下の変数を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="GameController.cs" data-lang="C#"><code>    // オーディオソース一覧
    public List&lt;AudioSource&gt; audioSrcList = new List&lt;AudioSource&gt;();
</code></pre></div>



<p>ゲーム管理に効果音再生の機能を追加します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>playEffect関数の次に以下の関数を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="GameController.cs" data-lang="C#"><code>    // 効果音再生
    public void playSE(string clipName)
    {
        // オーディオクリップ一覧から指定されたと一致するオーディオクリップを取得
        AudioSource audioSrc = audioSrcList.Find(item =&gt; item.clip.name == clipName);
        // オーディオクリップが見つかった場合
        if (audioSrc != null)
        {
            // オーディオ再生
            audioSrc.Play();
        }
    }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>命中した時に効果音を再生します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Hit」をダブルクリック</li>



<li>命中エフェクト再生の前に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>            // 命中音再生
            gameController.playSE(&quot;hit&quot;);
</code></pre></div>



<p>爆発した時に効果音を再生します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>爆発エフェクト再生の前に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>            // 爆発音再生
            gameController.playSE(&quot;explosion&quot;);
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>弾を発射した時に効果音を再生するため、Playerスクリプトを修正します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Player」をダブルクリック</li>



<li>Start関数の前に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>    GameController gameController;      // ゲーム管理オブジェクト
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数の最後の処理として以下を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>        // ゲーム管理オブジェクトを取得
        GameObject[] gameObjects = GameObject.FindGameObjectsWithTag(&quot;GameController&quot;);
        gameController = gameObjects[0].GetComponent&lt;GameController&gt;();
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>FixedUpdate関数内の「発射効果を表示」の前に以下の処理を追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Player.cs" data-lang="C#"><code>            // 発射音再生
            gameController.playSE(&quot;shot 1&quot;);
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>
</ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>弾発射のタイミングで発射音が再生されることを確認</li>



<li>弾が敵に命中した時に命中音が再生されることを確認</li>



<li>弾が爆発した時に爆発音が再生されることを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h2 class="wp-block-heading"><span id="toc9">●完成</span></h2>



<p>敵にやられ、BGMと効果音も再生されるようになりました。<br>スコアは表示できませんでしたが、だいぶシューティングっぽくなったかな？</p>



<p>次回は「スコア表示、アステロイド作成」を実施しようと思います。</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg3/">オーディオ～横スクロールシューティング③</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/sidestg3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>敵作成～横スクロールシューティング②【2D】</title>
		<link>https://d9m.conohawing.com/sidestg2/</link>
					<comments>https://d9m.conohawing.com/sidestg2/#respond</comments>
		
		<dc:creator><![CDATA[だくまた]]></dc:creator>
		<pubDate>Sun, 21 Aug 2022 03:39:17 +0000</pubDate>
				<category><![CDATA[Unity]]></category>
		<category><![CDATA[チュートリアル]]></category>
		<guid isPermaLink="false">http://d9m.one/?p=1228</guid>

					<description><![CDATA[<p>目次 ●はじめに●敵作成▷敵アニメーション▷直進する敵▷上下にカーブしながら直進する敵●衝突処理作成▷衝突設定▷やられ制御●やられエフェクト▷やられアニメーション▷やられアニメーター▷やられエフェクト制御●完成 ●はじめ [&#8230;]</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg2/">敵作成～横スクロールシューティング②【2D】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-20" checked><label class="toc-title" for="toc-checkbox-20">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">●はじめに</a></li><li><a href="#toc2" tabindex="0">●敵作成</a><ol><li><a href="#toc3" tabindex="0">▷敵アニメーション</a></li><li><a href="#toc4" tabindex="0">▷直進する敵</a></li><li><a href="#toc5" tabindex="0">▷上下にカーブしながら直進する敵</a></li></ol></li><li><a href="#toc6" tabindex="0">●衝突処理作成</a><ol><li><a href="#toc7" tabindex="0">▷衝突設定</a></li><li><a href="#toc8" tabindex="0">▷やられ制御</a></li></ol></li><li><a href="#toc9" tabindex="0">●やられエフェクト</a><ol><li><a href="#toc10" tabindex="0">▷やられアニメーション</a></li><li><a href="#toc11" tabindex="0">▷やられアニメーター</a></li><li><a href="#toc12" tabindex="0">▷やられエフェクト制御</a></li></ol></li><li><a href="#toc13" tabindex="0">●完成</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">●はじめに</span></h2>



<p>2D横スクロールシューティング作成の２回目になります。<br>アセットストアで無料公開されている「<a rel="noopener" href="https://assetstore.unity.com/packages/2d/characters/warped-space-shooter-181590#content" target="_blank">Warped Space Shooter</a>」をお借りして作成しています。</p>



<p>今回は「敵キャラクターを２パターン」を作成し、倒せるようになるまで進めます。</p>



<iframe loading="lazy" src="/game/sidestg2/index.html" width="780" height="465" scrolling="no" frameborder="0"></iframe>



<p>　↑このような形になります。</p>



<h2 class="wp-block-heading"><span id="toc2">●敵作成</span></h2>



<h3 class="wp-block-heading"><span id="toc3">▷敵アニメーション</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_009.png" target="_blank"><img decoding="async" width="460" height="325" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_009.png" alt="アニメーションする敵を表示" class="wp-image-1234" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_009.png 460w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_009-300x212.png 300w" sizes="(max-width: 460px) 100vw, 460px" /></a><figcaption class="wp-element-caption">アニメーションする敵を表示</figcaption></figure>



<p>・解説</p>



<p>アニメーション１枚目のスプライトをシーンに配置し、敵オブジェクトを作成します。<br>敵オブジェクトにコントローラーを割り当てて敵アニメーションと関連付けることで、アニメーションが再生されます。</p>



<p>・手順</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;enemy&gt;enemy1.png」をシーンにドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;スケール」に(4, 4, 1)を入力</li>



<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;enemy&gt;enemy1.controller」をヒエラルキーの「enemy1」にドラッグ＆ドロップ</li>
</ol>



<h3 class="wp-block-heading"><span id="toc4">▷直進する敵</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_010.png" target="_blank"><img decoding="async" width="571" height="377" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_010.png" alt="敵がアニメーションしながら左に進む" class="wp-image-1242" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_010.png 571w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_010-300x198.png 300w" sizes="(max-width: 571px) 100vw, 571px" /></a><figcaption class="wp-element-caption">敵がアニメーションしながら左に進む</figcaption></figure>



<p>・解説</p>



<p>自分の進行方向に向かって前進するだけのAIを作成します。<br>「１秒間に進む距離」を公開変数で持たせ、Unityで編集できるようにします。<br>物理更新処理で進行方向に経過時間を掛け、それを現在位置に足していくことで移動させます。</p>



<p>・手順</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets」を右クリックし、「作成＞C# スクリプト」をクリック</li>



<li>Enemyと入力し、ENTERを押す</li>



<li>プロジェクトの「Assets&gt;Enemy」をヒエラルキーの「enemy1」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;Enemy」をダブルクリック</li>



<li>Start関数の前に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>    public float speed = 3;         // １秒間に進む距離
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Update関数の後に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>    // 物理更新時に処理
    void FixedUpdate()
    {
        // 現在の座標を取得
        Vector3 pos = transform.position;

        // 進行方向に向かって直進
        pos += -transform.right * speed * Time.fixedDeltaTime;

        // 新しい座標に変更
        transform.position = pos;
    }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>
</ol>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>敵機が左に向かって移動することを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h3 class="wp-block-heading"><span id="toc5">▷上下にカーブしながら直進する敵</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_011.png" target="_blank"><img decoding="async" width="571" height="377" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_011.png" alt="敵が上下にカーブしながら進む" class="wp-image-1243" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_011.png 571w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_011-300x198.png 300w" sizes="(max-width: 571px) 100vw, 571px" /></a><figcaption class="wp-element-caption">敵が上下にカーブしながら進む</figcaption></figure>



<p>・解説</p>



<p>動きを表す変数「タイプ」を用意し、その値に応じて「直進のみ」「上下カーブあり」の動きを切り替えます。<br>タイプは公開変数としてUnity上で編集可能とします。<br>カーブは「サインカーブ」を使います。<br>物理更新された回数を記録しておき、その値をサインに渡します。<br>直進で得た移動量に掛け合わせることで、「上下にカーブしながら直進」する移動量となります。<br>これを現在位置に足すことで、「上下にカーブしながら直進」が実現できます。</p>



<p>・手順</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Enemy」をダブルクリック</li>



<li>変数「１秒間に進む距離」の前に以下のスクリプトを追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>    // 動きの種類
    public enum ENEMY_TYPE {
        LINE,                       // まっすぐ進む
        CURVE                       // 上下にカーブ
    }

    // 動きの種類
    public ENEMY_TYPE type = ENEMY_TYPE.CURVE;
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数の前に以下のスクリプトを追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>    public float cycleCount = 1;    // １秒間に往復する回数
    public float curveLength = 2;   // カーブの最大距離
    float cycleRadian = 0;          // サインに渡す値
    float centerY;                  // Y座標の中心
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数に以下のスクリプトを追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>        // 初期Y座標を「Y座標の中心」として保存
        centerY = transform.position.y;
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>FixedUpdate関数内にある「新しい座標に変更」処理の前に以下のスクリプトを追加</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Enemy.cs" data-lang="C#"><code>        // 上下にカーブ
        if (type == ENEMY_TYPE.CURVE)
        {
            if (cycleCount &gt; 0)
            {
                cycleRadian += (cycleCount * 2 * Mathf.PI) / 50;
                pos.y = Mathf.Sin(cycleRadian) * curveLength + centerY;
            }
        }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>
</ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>敵機が上下しながら左に向かって移動することを確認</li>



<li>１秒間に往復する回数「Cycle Count」を変えて動作確認</li>



<li>カーブの最大距離「Curve Length」を変えて動作確認</li>



<li>確認しずらかったら敵のSpeedを0にして確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h2 class="wp-block-heading"><span id="toc6">●衝突処理作成</span></h2>



<h3 class="wp-block-heading"><span id="toc7">▷衝突設定</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_012.png" target="_blank"><img decoding="async" width="567" height="660" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_012.png" alt="インスペクター設定" class="wp-image-1264" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_012.png 567w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_012-258x300.png 258w" sizes="(max-width: 567px) 100vw, 567px" /></a><figcaption class="wp-element-caption">インスペクター設定</figcaption></figure>



<p>・解説</p>



<p>衝突するようにするため、「Circle Collider 2D」と「Rigidbody 2D」を割り当てます。<br>敵機には両方、自機の弾には「Circle Collider 2D」のみを割り当てます。</p>



<p>2Dで作成しているので、「2D」と付いたコンポーネントを選ぶようにしてください。</p>



<p>・手順</p>



<p>敵機に「Circle Collider 2D」と「Rigidbody 2D」を割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「enemy1」をクリック</li>



<li>インスペクターの「コンポーネントを追加」をクリック</li>



<li>「Physics 2D&gt;Circle Collider 2D」をクリック</li>



<li>インスペクターの「Circle Collider 2D&gt;トリガーにする」にチェックを入れる</li>



<li>インスペクターの「Circle Collider 2D&gt;半径」に(0.15)を入力</li>



<li>インスペクターの「コンポーネントを追加」をクリック</li>



<li>「Physics 2D&gt;Rigidbody 2D」をクリック</li>



<li>インスペクターの「Rigidbody 2D&gt;重力スケール」に(0)を入力</li>



<li>インスペクターの「Rigidbody 2D&gt;衝突判定」を(連続的)に変更</li>
</ol>



<p>自機の弾にコンポーネント「Circle Collider 2D」を割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;shoot1」をダブルクリック</li>



<li>インスペクターの「コンポーネントを追加」をクリック</li>



<li>「Physics 2D&gt;Circle Collider 2D」をクリック</li>



<li>インスペクターの「Circle Collider 2D&gt;トリガーにする」にチェックを入れる</li>



<li>インスペクターの「Circle Collider 2D&gt;オフセット&gt;X」に(0.05)を入力</li>



<li>インスペクターの「Circle Collider 2D&gt;半径」に(0.05)を入力</li>
</ol>



<p>弾が小さいままでした。。。スケールを４倍にします。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>インスペクターの「Transform&gt;スケール」に(4, 4, 1)を入力</li>



<li>ヒエラルキー左上の「＜」をクリック</li>
</ol>



<h3 class="wp-block-heading"><span id="toc8">▷やられ制御</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_013.png" target="_blank"><img decoding="async" width="460" height="315" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_013.png" alt="弾を当てたら敵が消える" class="wp-image-1265" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_013.png 460w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_013-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_013-130x90.png 130w" sizes="(max-width: 460px) 100vw, 460px" /></a><figcaption class="wp-element-caption">弾を当てたら敵が消える</figcaption></figure>



<p>・解説</p>



<p>「体力が失くなったら爆発して消える」というスクリプトを作成し、自機と敵、それぞれに割り当てます。<br>コライダーを割り当てて衝突範囲を調整することで敵を倒せるようになります。</p>



<p>・手順</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets」を右クリックし、「作成＞C# スクリプト」をクリック</li>



<li>Hitと入力し、ENTERを押す</li>



<li>プロジェクトの「Assets&gt;Hit」をヒエラルキーの「enemy1」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;Hit」をダブルクリック</li>



<li>Start関数の前に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>    public int energy = 3;              // 残り体力
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Update関数の後に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>    // 衝突時の処理（トリガー）
    void OnTriggerEnter2D(Collider2D collider)
    {
        // 体力を減らす
        energy--;
        // 体力が無くなった場合
        if (energy &lt;= 0)
        {
            // 自分を削除
            Destroy(gameObject);
        }
    }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>
</ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>弾を当てたら敵が消えることを確認</li>



<li>※体力を１にしても消えない場合は手順を見直してください</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h2 class="wp-block-heading"><span id="toc9">●やられエフェクト</span></h2>



<h3 class="wp-block-heading"><span id="toc10">▷やられアニメーション</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_014.png" target="_blank"><img decoding="async" width="460" height="315" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_014.png" alt="命中した時（右下）と爆発した時（左下）のアニメーション、一時的にプレハブを置いての確認" class="wp-image-1266" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_014.png 460w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_014-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_014-130x90.png 130w" sizes="(max-width: 460px) 100vw, 460px" /></a><figcaption class="wp-element-caption">命中した時（右下）と爆発した時（左下）のアニメーション、一時的にプレハブを置いての確認</figcaption></figure>



<p>・解説</p>



<p>スッと消えてよくわからないのでエフェクトでリアクションしてもらいます。</p>



<p>エフェクトの１フレーム目のスプライトをシーンに配置してゲームオブジェクト化し、スケールを４倍にしてアニメーションを割り当て。<br>プレハブ化してヒエラルキーから削除、これを「Hit」と「explosion」のエフェクトに対して行います。</p>



<p>・手順</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;hit&gt;hit1.png」をシーンにドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;スケール」に(4, 4, 1)を入力</li>



<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;hit&gt;hit1.controller」をヒエラルキーの「hit1」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「hit1」をプロジェクトの「Assets」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「hit1」をクリックし、Deleteキーを押す</li>
</ol>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;explosion&gt;explosion1.png」をシーンにドラッグ＆ドロップ</li>



<li>インスペクターの「Transform&gt;スケール」に(4, 4, 1)を入力</li>



<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;explosion&gt;explosion1.controller」をヒエラルキーの「explosion1」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「explosion1」をプロジェクトの「Assets」にドラッグ＆ドロップ</li>



<li>ヒエラルキーの「explosion1」をクリックし、Deleteキーを押す</li>
</ol>



<h3 class="wp-block-heading"><span id="toc11">▷やられアニメーター</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_015.png" target="_blank"><img decoding="async" width="460" height="315" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_015.png" alt="指示があった時に初めてアニメーション再生するよう修正" class="wp-image-1267" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_015.png 460w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_015-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_015-130x90.png 130w" sizes="(max-width: 460px) 100vw, 460px" /></a><figcaption class="wp-element-caption">指示があった時に初めてアニメーション再生するよう修正</figcaption></figure>



<figure class="wp-block-image size-full"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_017.png" target="_blank"><img decoding="async" width="742" height="256" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_017.png" alt="アニメーションに「画面上で見えなくするため」のフレームを追加" class="wp-image-1285" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_017.png 742w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_017-300x104.png 300w" sizes="(max-width: 742px) 100vw, 742px" /></a><figcaption class="wp-element-caption">アニメーションに「画面上で見えなくするため」のフレームを追加</figcaption></figure>



<p>・解説</p>



<p>Hitとexplosionのフォルダにあるアニメーションを修正し、終了時に見えなくなるよう最終フレームのスケールを０にします。<br>また、アニメーション再生のタイミングを指定するためアニメーターコントローラーに空ステートを開始時のステートとして指定、<br>プロパティ「play」を追加してメインのアニメーションを呼び出すためのトリガーとします。</p>



<p>開始時は何も表示されず、スクリプトでplayトリガーを起動するとアニメーションが再生されるようになります。<br>この手順はそのための準備になります。</p>



<p>・手順</p>



<p>トリガー「play」がONになった時にはじめてアニメーションが再生されるように設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;hit&gt;hit1.controller」をダブルクリック</li>



<li>アニメータービューの右側背景を右クリック</li>



<li>「ステートの作成＞空」をクリック</li>



<li>「New State」を右クリックし、「レイヤーデフォルトステートとして設定する」をクリック</li>



<li>「Any State」を右クリックして「遷移を作成」をクリック、そのまま「Hit-Animation」をクリックして矢印を繋げる</li>



<li>インスペクターのチェック「時間をループ」を外し、ループしないように設定</li>
</ol>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>アニメータービューのタブ「パラメーター」をクリック</li>



<li>アニメータービューの左側上部にある「＋」をクリックし、「Trigger」をクリック</li>



<li>「play」と入力してENTERを押す</li>



<li>「Any State」と「Hit-Animation」の間にある矢印をクリック</li>



<li>インスペクターの「Conditions」右下にある「＋」をクリック</li>
</ol>



<p>スケール０になるフレームを最終フレームに配置し、アニメーション終了時にスプライトが消えるように設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;hit1」をダブルクリック</li>



<li>Unityメニューの「ウィンドウ＞アニメーション＞アニメーション」をクリック</li>



<li>アニメーションビューの「プロパティを追加」をクリック</li>



<li>「Transform」の左にある「▶」をクリック</li>



<li>「Transform&gt;スケール」の右にある「＋」をクリック</li>



<li>アニメーションビューのタイムライン部、上部にあるフレーム行の「３」をクリック</li>



<li>アニメーションビューのプロパティ部、右上にある「◆＋」をクリック</li>



<li>アニメーションビューのタイムライン部、上部にあるフレーム行の「４」をクリックし、４フレーム目に白い縦線を配置して操作対象とする</li>



<li>アニメーションビューのプロパティ部、右上にある「◆＋」をクリック</li>



<li>アニメーションビューのプロパティ部、スケールの左にある「▶」をクリック</li>



<li>アニメーションビューのタイムライン部、「スケール.x」の行にある「４フレーム目の◆」をクリック</li>



<li>アニメーションビューのプロパティ部、スケールのx, y, zに(0, 0, 0)を入力</li>
</ol>



<p>爆発エフェクトのアニメーターコントローラーを設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「Assets&gt;Space Shooter Assets&gt;Artwork&gt;explosion&gt;explosion1.controller」をダブルクリック</li>



<li>アニメータービューの右側背景を右クリック</li>



<li>「ステートの作成＞空」をクリック</li>



<li>「New State」を右クリックし、「レイヤーデフォルトステートとして設定する」をクリック</li>



<li>「Any State」を右クリックして「遷移を作成」をクリック、そのまま「explosion-Animation」をクリックして矢印を繋げる</li>



<li>「explosion&#8211;Animation」をダブルクリック</li>



<li>インスペクターのチェック「時間をループ」を外し、ループしないように設定</li>
</ol>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>アニメータービューのタブ「パラメーター」をクリック</li>



<li>アニメータービューの左側上部にある「＋」をクリックし、「Trigger」をクリック</li>



<li>「play」と入力してENTERを押す</li>



<li>「Any State」と「explosion-animation」の間にある矢印をクリック</li>



<li>インスペクターの「Conditions」右下にある「＋」をクリック</li>
</ol>



<p>爆発エフェクトのアニメーションを設定します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;explosion1」をダブルクリック</li>



<li>Unityメニューの「ウィンドウ＞アニメーション＞アニメーション」をクリック</li>



<li>アニメーションビューの「プロパティを追加」をクリック</li>



<li>「Transform」の左にある「▶」をクリック</li>



<li>「Transform&gt;スケール」の右にある「＋」をクリック</li>



<li>アニメーションビューのタイムライン部、上部にあるフレーム行の「４」をクリック</li>



<li>アニメーションビューのプロパティ部、右上にある「◆＋」をクリック</li>



<li>アニメーションビューのタイムライン部、上部にあるフレーム行の「５」をクリックし、５フレーム目に白い縦線を配置して操作対象とする</li>



<li>アニメーションビューのタイムライン部、「スケール.x」の行にある「５フレーム目の◆」をクリック</li>



<li>アニメーションビューのプロパティ部、右上にある「◆＋」をクリック</li>



<li>アニメーションビューのプロパティ部、スケールの左にある「▶」をクリック</li>



<li>アニメーションビューのプロパティ部、スケールのx, y, zに(0, 0, 0)を入力</li>



<li>ヒエラルキー左上の「&lt;」をクリックしてプレハブ編集を終了</li>
</ol>



<h3 class="wp-block-heading"><span id="toc12">▷やられエフェクト制御</span></h3>



<figure class="wp-block-image size-full is-resized"><a rel="noopener" href="http://d9m.one/wp-content/uploads/2022/08/SideSTG_016.png" target="_blank"><img decoding="async" width="460" height="315" src="https://d9m.one/wp-content/uploads/2022/08/SideSTG_016.png" alt="命中した時、爆発した時にアニメーション再生" class="wp-image-1268" srcset="https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_016.png 460w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_016-300x205.png 300w, https://d9m.conohawing.com/wp-content/uploads/2022/08/SideSTG_016-130x90.png 130w" sizes="(max-width: 460px) 100vw, 460px" /></a><figcaption class="wp-element-caption">命中した時、爆発した時にアニメーション再生</figcaption></figure>



<p>・解説</p>



<p>命中と爆発を管理するスクリプトを作成し、このスクリプトを呼び出すことでエフェクトが再生されるようにします。</p>



<p>・手順</p>



<p>ゲーム管理スクリプトを作成し、命中エフェクトを管理するための変数を定義します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets」を右クリックし、「作成＞C# スクリプト」をクリック</li>



<li>GameControllerと入力し、ENTERを押す</li>



<li>ヒエラルキー左上の「＋」をクリック</li>



<li>「空のオブジェクトを作成」をクリック</li>



<li>「GameController」と入力してENTERを押す</li>



<li>プロジェクトの「Assets&gt;GameController」をヒエラルキーの「GameController」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;GameController」をダブルクリック</li>



<li>Start関数の前に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="GameController.cs" data-lang="C#"><code>    public GameObject hitEffectPrefab;              // 命中エフェクトプレハブ
    public int MAX_HIT_EFFECT = 100;                // 命中エフェクト最大数
    List&lt;GameObject&gt; hitEffects;                    // 命中エフェクト一覧
    int hitIndex = 0;                               // 次に使う命中エフェクトの位置
</code></pre></div>



<p>事前に命中エフェクトを作成して隠しておきます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="GameController.cs" data-lang="C#"><code>        // カメラの後ろ位置
        Vector3 hidePos = Camera.main.transform.position - Camera.main.transform.forward;

        // 命中エフェクト事前作成
        hitEffects = new List&lt;GameObject&gt;();
        for (int i = 0; i &lt; MAX_HIT_EFFECT; i++)
        {
            hitEffects.Add(Instantiate(hitEffectPrefab));
            hitEffects[i].transform.position = hidePos;
        }
</code></pre></div>



<p>爆発エフェクトを管理するための変数を定義します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数の前に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="GameController.cs" data-lang="C#"><code>    public GameObject explosionEffectPrefab;        // 爆発エフェクトプレハブ
    public int MAX_EXPLOSION_EFFECT = 100;          // 爆発エフェクト最大数
    List&lt;GameObject&gt; explosionEffects;              // 爆発エフェクト一覧
    int explosionIndex = 0;                         // 次に使う爆発エフェクトの位置
</code></pre></div>



<p>事前に爆発エフェクトを作成して隠しておきます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数内の最後に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="GameController.cs" data-lang="C#"><code>        // 爆発エフェクト事前作成
        explosionEffects = new List&lt;GameObject&gt;();
        for (int i = 0; i &lt; MAX_EXPLOSION_EFFECT; i++)
        {
            explosionEffects.Add(Instantiate(explosionEffectPrefab));
            explosionEffects[i].transform.position = hidePos;
        }
</code></pre></div>



<p>エフェクトを作成する処理を記述します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Update関数の次に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="GameController.cs" data-lang="C#"><code>    // エフェクト再生
    public void playEffect(string id, Vector3 pos)
    {
        GameObject effect = null;
        switch (id)
        {
            // 命中エフェクト
            case &quot;hit&quot;:
                effect = hitEffects[hitIndex];
                break;
            // 爆発エフェクト
            case &quot;explosion&quot;:
                effect = explosionEffects[explosionIndex];
                break;
        }

        if (effect != null)
        {
            // 位置設定
            effect.transform.position = pos;
            // アニメーション再生
            Animator animator = effect.GetComponent&lt;Animator&gt;();
            animator.SetTrigger(&quot;play&quot;);
        }
    }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>Hitスクリプト側にエフェクトを呼び出す処理を記述します。<br>まずはGameControllerにアクセスするため、それを保持する変数を作成します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Hit」をダブルクリック</li>



<li>Start関数の前に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>    GameController gameController;      // ゲーム管理オブジェクト
</code></pre></div>



<p>タグを使ってGameControllerを取得します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Start関数に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>        // ゲーム管理オブジェクトを取得
        GameObject[] gameObjects = GameObject.FindGameObjectsWithTag(&quot;GameController&quot;);
        gameController = gameObjects[0].GetComponent&lt;GameController&gt;();
</code></pre></div>



<p>体力が無くなったら自分の位置で爆発エフェクトを作成し、エフェクトを再生します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>「自分を削除」する処理の前に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>            // 爆発エフェクト再生
            gameController.playEffect(&quot;explosion&quot;, gameObject.transform.position);
</code></pre></div>



<p>体力が残っていたら自分の位置に命中エフェクトを作成し、エフェクトを再生します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>条件「体力が無くなった場合」の後に以下のスクリプトを記述</li>
</ol>



<div class="hcb_wrap"><pre class="prism line-numbers lang-csharp" data-file="Hit.cs" data-lang="C#"><code>        // 体力が残っている場合
        else
        {
            // 命中エフェクト再生
            gameController.playEffect(&quot;hit&quot;, gameObject.transform.position);
        }
</code></pre></div>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してスクリプト保存</li>



<li>Unityエディタをクリックしてビルド</li>
</ol>



<p>GameControllerを持ったゲームオブジェクトを検索できるようにタグを割り当てます。</p>



<p>最初から用意されている「GameController」を使います。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>ヒエラルキーの「GameController」をクリック</li>



<li>インスペクターの上部、左上にあるタグを「GameController」に変更</li>
</ol>



<p>命中エフェクト、爆発エフェクトとして扱うプレハブをGameControllerに割り当てます。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>プロジェクトの「Assets&gt;Hit1」をインスペクターの「Game Controller(スクリプト)&gt;Hit Effect Prefab」にドラッグ＆ドロップ</li>



<li>プロジェクトの「Assets&gt;explosion1」をインスペクターの「Game Controller(スクリプト)&gt;Explosion Effect Prefab」にドラッグ＆ドロップ</li>
</ol>



<p>プロジェクトを保存して、</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>CTRLを押しながらSキーを押してプロジェクト保存</li>
</ol>



<p>動作を確認します。</p>



<ol class="has-very-light-gray-to-cyan-bluish-gray-gradient-background has-background wp-block-list">
<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー開始</li>



<li>弾を当てたら命中エフェクトが再生されることを確認</li>



<li>体力が無くなったら爆発エフェクトが再生されることを確認</li>



<li>Unityエディタ上部中央のPlayボタンをクリックしてプレビュー終了</li>
</ol>



<h2 class="wp-block-heading"><span id="toc13">●完成</span></h2>



<p>敵が上下移動しながら左に進み、弾を当てると爆発します。</p>



<p>シューティングの「敵作成」完了です。<br>敵を増やしたり、体力を増やしたり、種類を変えたりして試してみてください。</p>



<p>次回は「自機のやられ、BGM、効果音、スコア」といった辺りを進めようと思います。</p>
<p>投稿 <a href="https://d9m.conohawing.com/sidestg2/">敵作成～横スクロールシューティング②【2D】</a> は <a href="https://d9m.conohawing.com">だくまたゲーム制作ブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://d9m.conohawing.com/sidestg2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
