バッテラのハローワールド研究室

エンジニア、プログラミングに関する情報を掲載中!

【Blender3.0】ポリゴンを細かくする(細分化)

はじめに

こんにちは、バッテラです。

ポリゴンを分割したくなった時にみるやつです

細分化する方法

<編集モードに切り替え>

面を選択

右クリック → 細分化 をクリック

f:id:m2game:20220126220449p:plain

左下に表示されているメニューを開く

f:id:m2game:20220126220507p:plain

分割数を増やすと細かくできます

f:id:m2game:20220126220514p:plain

おわりに

それでは、また。

読者登録・Twitterのフォローをしていただけると、ハッピーになります。

<編集モードに切り替え>

面を選択

右クリック → 細分化 をクリック

左下に表示されているメニューを開く

分割数を増やすと細かくできます

【Blender3.0】Unity用にFBXで出力する

はじめに

こんにちは、バッテラです。

Blenderで作った3DモデルをUnityにもっていくとなんか回転情報がおかしいぞ。。。

それはおいていて、

Blenderにおける出力設定を共有したいと思います。

環境

  • MacOS BigSur (11.4)
  • Blender (v3.0.0) ※言語設定を日本語にしています

FBXで出力する

ファイル → エクスポート → FBX と進みます

下図のように設定にする

f:id:m2game:20220126192325p:plain

あとはFBXファイルをUnityで読み込めばOK

おわりに

それでは、また。

読者登録・Twitterのフォローをしていただけると、ハッピーになります。

TextMeshProでテキスト表示する (デザイン編)

はじめに

こんにちは、バッテラです。

基本編でFontAssetを作って日本語表示するまでをやりました。

www.m2game.net

今回はTextMeshProでのデザインについて調べたことを共有したいと思います。

環境

  • MacOS BigSur (11.4)
  • Unity (2020.3.14f1)
  • TextMeshPro (3.0.6)

【エフェクト】アウトラインをつける

アウトラインは文字の外側に輪郭をつけることをいいます

TextMeshProでは輪郭の太さや色を設定することができます。

単色のテキストよりアウトラインを使った2色にするとより見た目がリッチになります

アウトラインをつけるには、Textオブジェクトをクリックして

Inspectorビューの一番下にスクロールしていくと Shader の項目があると思います。

その中の Outline の箇所をいじっていきます。

f:id:m2game:20220126154452p:plain

Color : 色
Tickness: 太さ
Texture: 未調査

アウトラインをつけるとこんな感じのテキストができます

f:id:m2game:20220126154341p:plain:w600

Shaderいじると他のテキストにも反映される?

アウトラインなどの【エフェクト】はマテリアル単位で共有されるものになっているようです。

仮に2つTextゲームオブジェクトがあり同じマテリアルを使っているとした場合、

片方のアウトラインを変えたつもりでももう片方も同時に変わっちゃいます。

f:id:m2game:20220126154940p:plain

ただしフォントサイズやフォントカラーはマテリアルではなくTextコンポーネントが持つ独立したパラメータであるため、影響は受けません。

アウトラインのデザインをゲームオブジェクトごとで変えたいという場合は、

マテリアルを量産するかしかないと思います。

マテリアルを作る方法

TextMeshProのマテリアルは普通のマテリアルとは作り方が違います。

FontAssetを作った段階でマテリアルが1個できてます。

そのマテリアルから複製するようなことができます。

下図参考にマテリアルを選択した状態で、インスペクタービュー上のアイコンを右クリックするとメニューが表示されます

f:id:m2game:20220126154904p:plain

その中の Create Material Preset をクリックします

FontAssetと同じディレクトリに マテリアルが複製されています。

そうするとTextゲームオブジェクトの Material Preset のプルダウンの項目が増えています

f:id:m2game:20220126154919p:plain

これでゲームオブジェクトごとにマテリアル(デザイン)を変えられます。

複製した分増プルダウンの選択肢が増えていきます。

複製したらついでにマテリアルの名前を変えたいと思うのですが、

注意点ありまして、

フォント名が頭についていないとプルダウンの項目として表示されませんでした。

なので、

フォント名 + 好きな文字列

という名前になるようにリネームしましょう。

おわりに

とりあえずアウトラインだけですが、今後追加していきます。

それでは、また。

読者登録・Twitterのフォローをしていただけると、ハッピーになります。

【C#】DateTimeで未来の日付を取得するには

はじめに

こんにちは、バッテラです。

有効期限などで未来の日付を作りたいときありませんかね?

DateTime型に標準でそういう機能があったので共有したいと思います。

環境

  • MacOS BigSur (11.4)
  • Unity (2020.3.14f1)

X日後を作るには

・現在からX日後のコード例

int x = 30;
var dt = DateTime.Now; // 例として現実時刻
dt = dt.AddDays(x);

おわりに

とりあえず一番使いそうなX日後だけ作ってます。今後追記していきます。

それでは、また。

読者登録・Twitterのフォローをしていただけると、ハッピーになります。

【Unity】DateTimeをシリアライズする方法 (Json.Utitily)

はじめに

こんにちは、バッテラです。

Json.UtitilyでDateTime型の変数を保存しようとしてもなぜかできませんでした。

調べた結果 DateTime がシリアライズすることができないということが分かりました。

なんとか日付を保存する方法はないかと模索したところ、

DateTimeが持つToBinaryとFromBinary を使うことで保存・復元できたので、

その方法について共有したいと思います。

環境

  • MacOS BigSur (11.4)
  • Unity (2020.3.14f1)

DateTime型をToBinaryで変換

DateTime型の変数は保存できないので、 代わりにlong型の変数を用意します。

long型の変数に対して、DateTime型変数をToBinaryで変換したものをセットします。

long binValue = DateTime.Now.ToBinary();

long型であればシリアライズ可能でした。

long型をFormBinaryで復元

次は復元です。

json文字列からデシリアライズした段階ではまだlong型の変数であるため、

このlong型の変数から FromBinary でDateTime型に変換して戻します。

 DateTime date = DateTime.FromBinary(binValue);

おわりに

今回はDateTimeをシリアライズする方法でしたー。

それでは、また。

読者登録・Twitterのフォローをしていただけると、ハッピーになります。

【Blender3.0】オブジェクトをくり抜きたい

f:id:m2game:20220124162148p:plain:w300

を額縁のような感じにくり抜く!

f:id:m2game:20220124162203p:plain:w300

はじめに

こんにちは、バッテラです。

タイトルの通りですが、くり抜く方法を探していて、

ネットでモディファイアーを使った方法がよくあったのですが、

なぜか自分がやってもうまくいかなかったので他の方法を探していました。

色々試していて自分にとっては思い通りの結果になるのがありましたので、

その方法を共有したいと思います。

環境

  • MacOS BigSur (11.4)
  • Blender (v3.0.0) ※言語設定を日本語にしています

手順

今回やる方法というのは、

2つのオブジェクトが重なった部分を消してしまうというものです。

ということで、

前提としては、
くり抜かれる側とくり抜く側の2つのオブジェクトが必要になります。

<オブジェクトモードにする>

2つオブジェクトを作る

くり抜く側のオブジェクトのサイズと位置を調整して重ねる。

後から調整できないので慎重にやりましょう。

2つのオブジェクトを選択し、右クリック→ 統合 します

f:id:m2game:20220124162617p:plain

<編集モードにする>

選択モードを「面選択」に切り替えます

f:id:m2game:20220124162628p:plain

クリ抜くオブジェクトの面にカーソルを当て Lキー を押します

そうすると、くり抜くオブジェクトだけが選択されている状態になります

上部メニューにある「面」→「交差(ブーリアン)」とクリックします

f:id:m2game:20220124162643p:plain

これでくり抜きされた状態になります。

これで終わりです

おわりに

もっとスマートな方法もあるかもしれません。

見つけたら共有します。

それでは、また。

読者登録・Twitterのフォローをしていただけると、ハッピーになります。

【Blender3.0】チートシート(編集モード) 自分用

選択

内容 コマンド 詳細
独立したメッシュの選択 そのメッシュにカーソル当てて Lキー

変形

内容 コマンド 詳細
辺を挿入(ループカット) Command + R → 辺の箇所を決める → クリック → クリック カーソルを動かすと編を挿入できそうな見た目になる
面を押し出し E → ドラッグもしくは値打ち込み 選択状態は「面」にしておく

生成

内容 コマンド 詳細
オブジェクトをコピー shift + D → 移動