三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

モデリング続き

ひたすらモデリング作業。

メッシュを綺麗にしていくとき、四角形のほうが扱いやすい?
こんな三角形を
screen_268.jpg

こうしたほうがいいっぽい。
screen_268b.jpg

そしたらループカットとか色んな操作が扱いやすくなるっぽい。
最初大量の三角形ができていて、ある程度まで四角形になるように直しました。
まだ三角形が残っているけど、このくらいでいいのかな?
そのあたりはまだ分かりません。
とりあえずいいことにします。


テクスチャも貼ってみたよ。
screen_267.jpg


スポンサーサイト

モデリング

前回のあらすじ。
Unityでゲームを作り始めた!

前回からのできごと。
パソコンが壊れた!


悲しい。
いい加減寿命なのかもしれない。

スイッチを入れてファンも回らなくなったので、電源故障かMB故障か。
電源を変えてみてダメだったら新しく組み立てよう・・・

アマゾンで電源ユニットを買って交換しました。
電源ユニットの寿命はそんなに長くないし、故障の原因としてはありえる話だゾ。

スイッチを押しました。
MBへの通電無し。LED付いてない・・・

半ば諦めかけて一応最小構成のメモリ、CPUのみでスイッチオン。
動いた!

結局原因はグラボだったんですが、
見切り発車せずに最初からセオリーどおり最小構成を試せってことですね。





バトルシステムでも作ろうかなと思って、色々作っていたんですが、
とうとうキャラのテスト素材が必要になってきました。

さて困った。
ツクールなら適当な素材がありますが、Unityではそうもいきません。
ゆにてぃちゃんみたいな素材もあるにはありますが・・・基本は有料です。

自分のスキルアップも兼ねて3Dでモデリングしてみることにしました。
ちゃんとキャラ作るの初めてだなー

こんな感じで素体を作ってます。
screen_265.jpg

基本的なモデリングの方法は大体分かってきたのでペースは上がりそうです。
体に面を張って、髪、服を作ってテクスチャを描いて・・・
まだまだやることいっぱいだぞー


アニメーションどうしよう・・・

急に

やっぱりRPGを作りたいよね
RPG作りたいなーとか思いつつ Unityで色々探ってます。
ツクールでいうところのデータベースっぽいものを作ることはできました。

パーティキャラクターのデータ管理です。
戦闘シーンとかを最初に作ってみよう→
HUD必要だよね→
HUDに表示するデータをどうしよう
じゃあとりあえずパーティメンバーのデータ構造から作りますか。

要求仕様として「ゲームを開始してから各メンバーの各値は保持される」というのがあります。
パーティから外れてもそのデータは生かしておかないといけません。
なのでゲーム中どこかに保存しておく必要がありますが、
Unityのゲームオブジェクトにそのデータを持たせると、シーンを作るたびにゲームオブジェクトを設置しないといけない上に、
他スクリプトからのアクセスが面倒です。

そこでスクリプトからのみアクセスできる管理用シングルトンを作りました。
ついでにシングルトンをクラス化しておきました。
public class Singleton<T> where T:Singleton<T>,new(){
	static T sInstance;

	public static T Instance{
		get {
			if(sInstance == null) {
				sInstance = new T();
			}
			return sInstance;
		}
	}
}
public class PlayerStatics :Singleton<PlayerStatics>{
    List<HeroInstance> Heros;
};
これでスクリプトのどこからでもPlayerStatics.Instanceでアクセスで切るようになりました。
あ、HeroInstanceってのはHeroDataを参照するオブジェクトです。
HeroDataはレベル曲線とかの不変データでHeroInstanceは現在の経験値とかの可変データを持っています。

そんで、肝心のパーティメンバーのデータ構造です。
ぐぐってみるとScriptableObjectが便利だということで使ってみることにします。
public class HeroData : ScriptableObject {
	[Range(0,999)]
	public int Attack = 100;

    [MenuItem("Assets/Create/CreateHeroData")]
    public static void CreateAsset()
    {
        HeroData item = ScriptableObject.CreateInstance < HeroData > ();

        //アセットを保存するパス
        string path = AssetDatabase.GenerateUniqueAssetPath("Assets/Data/Resources/Heros/" + typeof(HeroData) + ".asset");

        AssetDatabase.CreateAsset(item, path);
        AssetDatabase.SaveAssets();
		AssetDatabase.Refresh();

        EditorUtility.FocusProjectWindow();
        Selection.activeObject = item;
    }
}
おお、確かにインスペクタで簡単にメンバーデータを編集できるようになりました。
HeroDataを追加していけばどんどん主人公データを増やしていけます

・・・が、要求仕様の「ゲームを開始してから各メンバーの各値は保持される」をクリアしないといけないので作ったHeroDataはPlayerStatics のHerosに追加しないといけません

ScriptableObjectはインスペクタで中身を編集できて便利だけど、 スクリプトからのアクセスには、Resourcesに入れて文字列でないとアクセスできないようでした。
新しいHeroDataを作成するたびにそれをResources.LoadしてHerosにAddするのも面倒です。

なんかいい方法ないかな、と色々みてたらResources.LoadAllなんて便利なものがあるじゃないですか。
PlayerStaticsを初期化する場所に次のコードを書いたらうまくできました。
    HeroData[] heros = Resources.LoadAll<HeroData>();
	foreach(HeroData hero in heros) {
		Heros.Add(new HeroInstance(hero));
	}
これでHeroDataを追加したら全自動で管理クラスPlayerStaticsに追加されるようになりました。
便利便利。

新年明けましておめでとうございます。

まさかこんな正月になるとは思いませんでした。
30日から体調を崩して熱が出て吐いて、
ちょっと遠い休日診療所までがんばって行って帰って
それからずっと寝ていました。

丸一日何も食べずに急に餅のように消化の悪いものを食べるっていうね・・・


あ、とてもお久しぶりでございます。
生きてます。


今年の年賀状はこんなのでした。

d_illust_406.jpg

本年もよろしくお願いいたします。

ハロウィン

すごく久しぶりに絵を描いた気がします。

d_illust_405.jpg

ハロウィンっていつから日本で市民権を得たのでしょう

もともとはヨーロッパでの豊穣祭か何かでキリスト教とは別物だそうです。
日本では神輿を担いで町内を回ったりする祭が、豊穣祭、収穫祭が起源となっているところも多いのではないのでしょうか。
そうすると神輿を担ぐ祭、イコール、ハロウィンという図式が成り立って、
みんなかぼちゃを被って魔女のコスプレをして神輿を担ぐわけですね!(暴論)


もっとも現代のハロウィンは本来の意味からかけ離れているわけですが。
次のページ

FC2Ad