Unityでゲーム作るぞ

Unityでゲーム制作できるようになるまでのリアルドキュメント

三十六日目ーゴブリンが亡くなった後…まるで彼の存在意義のように…一枚の布きれが落ちていた…


ゴブリンにHP設定、0になった時に死亡モーションを。
ついでとばかり、透明度をじょじょに減らそうとしたら…これが難航した!
GameObjectの透明度を減らす、って事はできないらしく、減らすのはテクスチャのcolorらしい。

https://gist.github.com/Buravo46/8366967
基本はここにある通り、a値を減らしていけばいいのだけど、一向に反応しなかった。
renderer.material.color = Color(1.0, 0.0, 0.0, 0.0);
にしてみたら、赤色にはなる…

結局、テクスチャのシェーダーの方法がDiffuseでa値を考慮しないのがいけなかった。Transparent/Diffuseにしたら行けるように。

こうして肌は消えたものの、なぜか彼のパンツだけが残される、という事態に。多分ゴブリンは肌とパンツ部分で違うテクスチャを使っているので、肌しか消せてないのだろう

あとじょじょに透明にするのも、コルーチン(StartCoroutineーyield)を使ったのだけど、これはオブジェクトごとじゃなく共通なのか、複数を一遍に倒すと、上手く機能してない感じ。うーんせっかく便利なのに…

三十五日目ー遂に手や足が出始めたゴブリン達


歩行で近づくっぽい事をしてみる。
スタミナを設けて、一歩歩く度に消費、攻撃距離内でスタミナが一定以上なら攻撃(ランダム2種)と…

そして"説得力あるモーションを追求すればする程、細かい所が違和感でニッチもサッチも行かなくなる問題"に片足突っ込んだ感があるね…
今の時点で、片足で進んだら次は、違う側の足で進んで欲しいです、距離に従って歩幅変えて欲しいとか、噴出しつつあるし。
足を動かさず並行移動した方が"そういうモノなのか"で納得されるという不思議、あるいはそういう適度なウソの付き方、を学ばねばならないのか。
とりあえず当プロジェクトは、モーションにこだわる方面でいってみようか…

定期的に湧くゴブリンは、実はカメラにドラッグでGameObject登録してたのだけど、設定直す度に再登録で面倒臭いので、http://qiita.com/2dgames_jp/items/8a28fd9cf625681faf87
ここを参考に、プレハブから生成する事にした。

prefab = Resources.Load ("Prefabs/Shot") as GameObject;
// プレハブからインスタンスを生成
Instantiate (prefab, position, Quaternion.identity);

これが基本形だが、Resourcesってのがフォルダ名であると同時に、固定のクラス名…? つまり、Resources配下にしか召還できるプレハブファイルは配置できない?

三十四日目ーある一定の距離をつかず離れず近づいてくるキャッチ


ゴブリンが女騎士の方向を向いて、近づいてくるように。また近づきすぎてめりこまないように。今回はやや詰まりで進めた。

LookAtという、指定のオブジェクトを向くメソッドに型を渡さなかったら
"Ambiguous"と言われてエラー。これは、LookAtはVector3 とTransformにそれぞれメソッドがあって、どちらかか判断できない、と。
なので、
function TargetOn(p_f : Transform ){ LookAt ... }
TargetOn(player.transform);
とするか
function TargetOn(p_f : Vector3 ){ LookAt ... }
TargetOn(player.transform.position);
で、型をしっかり明記して解決。

初歩的だけど、OnTriggerEnterとOnCollisionEnterを間違えて使ってて、あれいっつもfalseが返ってくる…ってなるのも辛い。
当たり判定のisTriggerにチェックが入ってて、後者を使ってるなら、警告出してくれてもいいのに。