チュートリアル
- なし
成果物
作業のながれ
- 面の向きが反対になっているとUnityで透明になってしまうので確かめる

- このように赤くなっている部分は面の向きが逆なので修正する
- メッシュを選択して、編集モード
- alt + N(ormal) -> Flip
- OK!

- ミラーなどのモデをすべて適用
- 目、体、羽、尾ヒレをすべて選択してCTRL + Jで結合
エクスポート
- Unityの座標系に変換してエクスポート

- テクスチャもalt+sで保存しておく
インポート
fbxとテクスチャ画像をドラッグ&ドロップで配置する
- シーンに配置された
- 小さすぎきてカメラに映らない。->スケールを100にすると映る
- z軸の向きがおかしい

blender
- Unityでz軸を向けたい方向にblender上で向ける

- apply transformにチェックを入れる

- いざUnityで確認
- いい感じだが、傾いている

- blender
- set originで3Dカーソル(またはジオメトリ)
- 大きさをUnityのユニットに合わせるようにやく1mに
- ctrl + a で scale と rotation
いざエクスポート&Unity

rotationを適用するのでblender上では前を向かせていてOKのようだ。
- blender
- 正面に向けて、Rotationとtransformを適用 エクスポート
- Unityへ

キターーーーーー!!
せっかくなのでスクリプト作成して動かした。
using UnityEngine;
public class FloatingSwim : MonoBehaviour
{
public float forwardSpeed = 2f; // 前進速度
public float waveAmplitude = 0.5f; // 上下の揺れの幅
public float waveFrequency = 2f; // 上下の揺れの速さ
private float time;
private Vector3 startPosition;
void Start()
{
// 初期位置を記録(基準Y座標)
startPosition = transform.position;
}
void Update()
{
time += Time.deltaTime;
// 上下に揺れるYオフセット
float yOffset = Mathf.Sin(time * waveFrequency) * waveAmplitude;
// 現在の高さを上書き(Yだけ変化)
Vector3 newPosition = startPosition + transform.forward * forwardSpeed * time;
newPosition.y += yOffset;
transform.position = newPosition;
}
}
作成を終えた感想
- Blenderで作成したものをUnityに適切にインポートするのは想像以上にしんどかった!
- 面の向きチェック
- 適切サイズにして、原点に配置し、原点の設定、アプライトランスフォーム
- ただ、Unityに取り込めるようになったのは大きい!


コメント