facebook twitter hatena line email

「Unity/おすすめアセット/HeroEditor4D」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(jsonデータ読み込み)
 
(同じ利用者による、間の3版が非表示)
行1: 行1:
==HeroEditor4D==
+
[[Unity/おすすめアセット/HeroEditor4D/基本]]
https://assetstore.unity.com/packages/2d/characters/fantasy-heroes-4-directional-character-editor-147364/reviews?locale=ja-JP
+
  
==エディタの使い方と作成したキャラの配置==
+
[[Unity/おすすめアセット/HeroEditor4D/2024年頃]]
#HeroEditor4Dをインストールする
+
#Assets/HeroEditor4D/FantasyHeroes/CharacterEditor [FH]を開き、"Save/Prefab"を押し、Humanという名前でファイルを保存する。
+
#シーンを新たに作り、以下をオブジェクトを、作ったシーンに、コピーし、Humanもシーン内に移動する。
+
<pre>
+
CharacterControls
+
CharacterEquipment
+
CharacterAppearance
+
</pre>
+
#実行すれば、キャラが動く。
+
  
==顔を色を変更==
+
[[Unity/おすすめアセット/HeroEditor4D/2022年頃]]
<pre>
+
using Assets.HeroEditor4D.Common.CharacterScripts;
+
 
+
Character4D character4D = GameObject.Find("Human").GetComponent<Character4D>();
+
character4D.BodyColor = new Color(0f, 0.46f, 0.17f); // ゾンビ系
+
character4D.BodyColor = new Color(1f, 0.784f, 0.470f); // 肌色
+
character4D.OnValidate();
+
</pre>
+
 
+
==jsonデータ読み込み==
+
<pre>
+
string json = @"
+
{'Body':'Basic/HumanPants#FFC878FF','Ears':'Basic/Human#FFC878FF','Hair':'Basic/Default','Beard':null,'Helmet':'Basic/AlchemistClothes','Armor':'Basic/TemplarArmor','PrimaryWeapon':'Basic/BlackSteelAxe','SecondaryWeapon':null,'Cape':null,'Back':null,'Shield':'Basic/Bloodmoon','Bow':null,'Crossbow':'Basic/BlackSteelAxe','WeaponType':'Melee1H','Expression':'Default','HideEars':'True','CropHair':'False','Makeup':null,'Mask':null,'Earrings':null,'Expression.Default.Eyebrows':'Basic/Eyebrows7','Expression.Default.Eyes':'Emoji/AngryEyes1#00C8FFFF','Expression.Default.Mouth':'Basic/Default','Expression.Angry.Eyebrows':'Emoji/AngryEyebrowns','Expression.Angry.Eyes':'Emoji/AngryEyes3#00C8FFFF','Expression.Angry.Mouth':'Emoji/AngryMouth1','Expression.Dead.Eyebrows':'Emoji/DeadEyebrowns1','Expression.Dead.Eyes':'Emoji/DeadEyes3#00C8FFFF','Expression.Dead.Mouth':'Emoji/DeadMouth1','Expression.Happy.Eyebrows':'Emoji/DeadEyebrowns1','Expression.Happy.Eyes':'Emoji/HappyEyes#00C8FFFF','Expression.Happy.Mouth':'Basic/Smirk'}
+
";
+
character4D.LoadFromJson(json, silent: false);
+
</pre>
+
 
+
==文字から装備を設定==
+
<pre>
+
  character4D.EquipArmorName("Basic/WallKeeperArmor");
+
  character4D.EquipHelmetName("Basic/WallKeeperArmor");
+
  character4D.EquipWeaponName("Basic/EvilHammer");
+
  character4D.EquipShieldName("Basic/RustyGuardianShield");
+
 
+
    // 文字列の名前を渡して鎧設定
+
    public void EquipArmorName(string fullName) {
+
        foreach (SpriteGroupEntry entry in this.SpriteCollection.Armor) {
+
            if (entry.FullName.Equals(fullName)) {
+
                this.EquipArmor(entry);
+
            }
+
        }
+
    }
+
    // 文字列の名前を渡して甲設定
+
    public void EquipHelmetName(string fullName)
+
    {
+
        foreach (SpriteGroupEntry entry in this.SpriteCollection.Armor)
+
        {
+
            if (entry.FullName.Equals(fullName))
+
            {
+
                this.EquipHelmet(entry);
+
            }
+
        }
+
    }
+
    // 文字列の名前を渡して盾設定
+
    public void EquipShieldName(string fullName)
+
    {
+
        foreach (SpriteGroupEntry entry in this.SpriteCollection.Shield)
+
        {
+
            if (entry.FullName.Equals(fullName))
+
            {
+
                this.EquipShield(entry);
+
            }
+
        }
+
    }
+
    // 文字列の名前を渡して武器設定
+
    public void EquipWeaponName(string fullName)
+
    {
+
        foreach (SpriteGroupEntry entry in this.SpriteCollection.MeleeWeapon1H)
+
        {
+
            if (entry.FullName.Equals(fullName))
+
            {
+
                this.EquipMeleeWeapon1H(entry);
+
            }
+
        }
+
    }
+
</pre>
+
 
+
==キャラクタの向き==
+
<pre>
+
Character4D humanCharacter4D = GameObject.Find("Human").GetComponent<Character4D>();
+
humanCharacter4D.SetDirection(Vector2.up); // 上
+
humanCharacter4D.SetDirection(Vector2.down); // 下
+
humanCharacter4D.SetDirection(Vector2.left); // 左
+
humanCharacter4D.SetDirection(Vector2.right); // 右
+
</pre>
+
 
+
==アクション==
+
<pre>
+
humanCharacter4D.AnimationManager.Attack(); // 攻撃(A)
+
humanCharacter4D.AnimationManager.SecondaryShot(); // (F) 上向き下向きだと機能しない?
+
humanCharacter4D.AnimationManager.SetState(CharacterState.Idle); // アイドル状態(I)
+
humanCharacter4D.AnimationManager.SetState(CharacterState.Ready); // 準備(E)
+
humanCharacter4D.AnimationManager.SetState(CharacterState.Walk); // 歩く(W)
+
humanCharacter4D.AnimationManager.SetState(CharacterState.Run); // 走る(R)
+
humanCharacter4D.AnimationManager.SetState(CharacterState.Jump); // 飛ぶ(J)
+
humanCharacter4D.AnimationManager.SetState(CharacterState.Climb); // しゃがむ?(C)
+
humanCharacter4D.AnimationManager.Die(); // 倒れる(D)
+
humanCharacter4D.AnimationManager.Hit(); // ダメージ(H)
+
</pre>
+
 
+
==iOSビルド時==
+
以下エラーが発生するが、
+
Assets/HeroEditor4D/FantasyInventory/Scripts/Data/Property.cs(6,7): error CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)
+
 
+
Newtonsoft.Json.dllを、Pluginsの下に移動すると直る。
+
 
+
mv HeroEditor4D/Common/Newtonsoft/Newtonsoft.Json.dll ./Plugins
+
 
+
==CharacterStateの型エラーが起こるとき==
+
以下エラーが起こる
+
Assets/Scripts/SampleScene.cs(206,52): error CS1503: Argument 1: cannot convert from 'CharacterState' to 'Assets.HeroEditor4D.Common.CharacterScripts.CharacterState'
+
 
+
namespaceがなく、CharacterStateが他のlibrary(PhotonUnityNetwork)とかぶってるので、
+
CharacterState.Idleなどを
+
Assets.HeroEditor4D.Common.CharacterScripts.CharacterState.Idleなどへ置換すれば良い。
+

2024年5月21日 (火) 18:19時点における最新版

Unity/おすすめアセット/HeroEditor4D/基本

Unity/おすすめアセット/HeroEditor4D/2024年頃

Unity/おすすめアセット/HeroEditor4D/2022年頃