「Unity/おすすめアセット/HeroEditor4D」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→文字から装備を設定) |
|||
行1: | 行1: | ||
+ | |||
==HeroEditor4D== | ==HeroEditor4D== | ||
− | https://assetstore.unity.com/packages/2d/characters/fantasy-heroes-4-directional-character-editor-147364/ | + | https://assetstore.unity.com/packages/2d/characters/fantasy-heroes-4-directional-character-editor-147364/ |
==エディタの使い方と作成したキャラの配置== | ==エディタの使い方と作成したキャラの配置== |
2024年5月21日 (火) 18:17時点における版
目次
HeroEditor4D
エディタの使い方と作成したキャラの配置
- HeroEditor4Dをインストールする
- Assets/HeroEditor4D/FantasyHeroes/CharacterEditor [FH]を開き、"Save/Prefab"を押し、Humanという名前でファイルを保存する。
- シーンを新たに作り、以下をオブジェクトを、作ったシーンに、コピーし、Humanもシーン内に移動する。
CharacterControls CharacterEquipment CharacterAppearance
- 実行すれば、キャラが動く。
顔を色を変更
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();
jsonデータ読み込み
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);
文字から装備を設定
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); return; } } } // 文字列の名前を渡して甲設定 public void EquipHelmetName(string fullName) { foreach (SpriteGroupEntry entry in this.SpriteCollection.Armor) { if (entry.FullName.Equals(fullName)) { this.EquipHelmet(entry); return; } } } // 文字列の名前を渡して盾設定 public void EquipShieldName(string fullName) { foreach (SpriteGroupEntry entry in this.SpriteCollection.Shield) { if (entry.FullName.Equals(fullName)) { this.EquipShield(entry); return; } } } // 文字列の名前を渡して武器設定 public void EquipWeaponName(string fullName) { foreach (SpriteGroupEntry entry in this.SpriteCollection.MeleeWeapon1H) { if (entry.FullName.Equals(fullName)) { this.EquipMeleeWeapon1H(entry); return; } } }
キャラクタの向き
Character4D humanCharacter4D = GameObject.Find("Human").GetComponent<Character4D>(); humanCharacter4D.SetDirection(Vector2.up); // 上 humanCharacter4D.SetDirection(Vector2.down); // 下 humanCharacter4D.SetDirection(Vector2.left); // 左 humanCharacter4D.SetDirection(Vector2.right); // 右
アクション
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)
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などへ置換すれば良い。