スキップしてメイン コンテンツに移動

投稿

2018の投稿を表示しています

noriko 1.6.0にバージョンアップ

先程norikoのバージョンを久々にアップしました。 Bitbucket: https://bitbucket.org/arlez80/noriko Haxelib: https://lib.haxe.org/p/noriko/1.6.0 主な追加はnoriko.str.HTML.toPathValueの追加です。これは、HTMLテキストを{path:"/path/to", value:"value"}の配列に変換する関数です。 タグ閉じ忘れの文章でも解析できるようになっています。 以前はタグを切り出す関数がありましたが、全てdeprecatedにしました。(消すつもりはありませんが、機能追加はもうありません)

Godot Engineでローカライゼーション

Godot Engineでローカライゼーションする方法について。 ドキュメント にはスクリプトを使う方法とタイトルを変更する方法、リソースを変える方法は乗っているんですが、スクリプトを使わずにGUIノードのローカライズをする方法が乗っていなかったのでDiscordで聞いてきました。 テキストの準備 UTF8エンコーディングのcsvを用意します。下記のような感じで書いていきます。 ,jaJP,en KEY_HELLO,こんにちは,hello 読み込んでおく Project > Project Setting > ローカライズタブ > 追加...でCSVのフォルダにある*.translationを追加する。 ここで、*.csvを指定すると上手く動きません。ちょっとハマりました。 適応する スクリプトを使う方法 下記コードでOKです。 tr("KEY_HELLO") GUIの文字列に対してスクリプト使わない方法 今回の本題。実はなにもしなくても、デフォルトで変換されます。 GUIノードのTextプロパティにキー(上のCSVの場合は、KEY_HELLO)をそのまま指定するだけで大丈夫でした。 どうやら当初言語指定が間違っていたみたいで(Fallbackの指定がja_JPなのに、csv上はjaとしか書いていなかった)、動いていなかったようです。 タイトルを変える方法 こちらも、キーのみを記述すればタイトルが変わります。

Godot 溶岩シェーダー

Godot Engineで溶岩シェーダーを書きました。 https://bitbucket.org/arlez80/godot-magma-shader/src ぐるんぐるんの炎魔法用なので、ホントは溶岩ではないのですが、たぶん溶岩用に使うのが一番使いやすいと思います。 (動いているものはツイートしてます。 こちらで確認 できます。) 溶岩自体の色は赤で固定ではありません。シェーダーの引数にcolorというのがあって、それにGradientTextureを指定すると良い感じで色を変更できます。

Godot Maze Generator公開しました

ぐるんぐるんするゲーム、ぐるんぐるん(仮)を作っています。 そこで、自動で3Dダンジョンを生成するプログラムを作ったのですが、それだけを切り離して公開しました。 https://bitbucket.org/arlez80/godot-maze-generator 部屋を分離してダンジョンを生成します。あとはGridMapなんかを使ってダンジョンを3Dモデル化して使います。 生成したマップのサンプル: こんな感じになります。

Godot MIDI Player作りました

GodotでMIDIファイルを再生できる Godot MIDI Playerを作りました。 https://bitbucket.org/arlez80/godot-midi-player なにこれ Godot Engine 3 向けのライブラリです。SoundFontとMIDI fileがあれば再生できるライブラリです。 ゲームに組み込んで使う目的で開発しました。 仕組み 全て、GDScriptのみで書かれており、C++は使ってません。波形の合成はしていません。 MIDIのシーケンスデータを解釈しながらAudioStreamPlayerで再生します。 AudioStreamPlayerにはmix_rateというのがあり、元のmix_rateから変更すると音階(再生速度)が変わるので、それを利用しています。 再生可能ファイル Standard MIDI File(*.mid) format 0 format 1 format 2には対応していません。 2019-02-10追記、format 1と同じようなように読めるので一応対応という扱いにしておきました。保証はしません。 再生可能ファイル(予定) MOD (*.mod) perserは既に書いています。MOD.gd MIDIのシーケンスデータに変換 + 波形データをMIDIで使えるようにしてこのプレイヤーで再生できるようにします IT (*.it) 仕様は知らないのでこれから調べます ほかにシーケンスデータがあったら対応します。 副産物 SMF.gdというStandard MIDI Fileを読み込むプログラム、SoundFont.gdというSoundFontを読み込むプログラムががついてますので、それだけ切り出してなにかに利用することができます。 ライセンス MITライセンスです。

AnimationTreePlayerのメモ

最近Godot EngineでTPSを作っています。先日の八耐もコレを作っていました。 AnimationTreePlayerを使って、3Dモデルのアニメーション制御をしたのでそのメモ。

Rigidbodyのメモ

先月からGodot Engineを初めました。 練習がてらに3Dの戦車ゲームを作っていますが、サクっと作れてなかなか楽しいです。 戦車本体をRigidbodyで作っていたのですが、いろいろ躓いたのでメモ。 物理エンジンの更新間隔での処理は_physics_processに書く 1フレーム単位は_processに書きます。 そして、この中でapply_impulseを用いて制御します。 linear_velocityやangular_velocityをいじる場合は_integrate_forcesに書く _physics_process中に書くと、重力回転その他が処理されなくなります。 _integrate_forcesを使うには self.custom_integrator = true; を_readyに書くと、_integrate_forcesが呼ばれるようになります。 Godot Engine、エディタ内でヘルプが参照できるのでこれのメソッドなにがあったっけ、というときもエディタ上だけで調べられるようになっているのは便利だと思いました。 今度の八耐にこのゲームを持っていきます。