むずかしいことはわかりません

いろいろ書いてるみたいな

Esenthel Engineを試してみてるんですけども。 - MMDファイルを読み込んで表示する

新年早々、更新してみます。今年もよろしくお願いします。

 

さて、UnityではMMD4Mecanimというツールが存在しまして、MMD関係のデータを読み書きできるので、結構いろんなモデルを表示できる環境ができてます。

PMD2FBXという単語を読んで、そんなツールがあるのか!とたどり着いたのがこちら

→Stereoarts Homepage( http://stereoarts.jp/) Noraさん(@stereoarts)のサイト

まずは、UnityにMMD4Mecanimをインストールして試してみたところ、どうもうまく動かず。ダメだなーとtwitterにてぼやいていたところ、いろいろと教えてもらったうえにPMX2FBXにマテリアルのテクスチャを反映してもらったバージョンもいただきました。

本当にありがとうございます。

続きを読む

Esenthel Engineを試してみてるんですけども。 - レジストしたついでにレジスト方法を書いておきますね

EsenthelEngineをダウンロードする場合も送金する場合も同じとこからやるので、説明は大体一緒です。まず、EsenthelのサイトからSTOREに行き、右上の「Log In/Register」を押します。

f:id:sato_c:20131227163428p:plain

 

続きを読む

Esenthel Engineを試してみてるんですけども。 - パーティクルエンジン

モデルのほうは、一旦置いておいてどんなことをできるかをみてます。

 

UnityにはShurikenというパーティクルエンジンがありますが、EsenthelEngineにもParticle Objectというのがありました。

Unityのほうは、オブジェクトを置くとパラメータを操作しながら、どんな画面になるかを確認できました。

EEでは、Objectでパラメータを設定していてもそのままでは確認できません。

f:id:sato_c:20131227132152p:plain

 

Worldを1つ設定して、そこにParticleObjectを置いてからパラメータを操作すれば、動作している環境を見られます。こんなかんじ。

f:id:sato_c:20131227132310p:plain

パーティクルの元になるイメージファイルを指定しないとなんにも飛びませんけど。

1個1個のパラメータは、まだ詳細調べてないですが、加速度や生存期間といった他と同じような指定があるので、最初初期位置でもやもやしたあと飛んでいくような設定とかいろいろやれそうです。

デフォルトで入ってた炎のパラメータがよくわからなくなったけど、泣かない。

ハッシュキーの検索

連想配列を使っていると、キーが存在するかチェックしないとダメっていうことがたびたびおきまして、言語ごとに違いがあるのでそれがまた覚えるのが大変。

 

Ruby : 配列.key?(キー名)

js : キー名 in 配列

php : array_key_exists(キー名, 配列)

 

なんだそんなことって言われそうなことだけど、メモ。

 

「うお!動かねえ。javascript…」ってなったときには、

key in arraynameなのか

key in array_nameなのか

ちゃんと確認したほうがいいよっていうのを自分への伝言として。

BLAST CITY コンパネのコネクタを探してみた

事の発端は、会社の片隅にひっそり置かれていたアーケード筐体風PCデスク「XAC-1」

f:id:sato_c:20131217194651j:plain

これ、BLAST CITYのコンパネ買って装着してあるんですけど、まだ結線されてません。

ほんとは、これをUSBでPCにつないで使えるようにしようぜ!っていう壮大な計画があるんですが、やはりふつーの会社ですから、なかなか進みません。

 

で、年末はゲーム大会やるでしょ?ってことで、1chipMSX用にメガドラパッドつながるようにケーブル加工してきたんですが、どうせだからコンパネも動くほうがいいんじゃない?ってことになりました。

ケーブル加工しようかなーとは前々から思っていたけども、結局そのまま数か月経ってたのは内緒。

 

BLAST CITYのコンパネは、ケーブルの先にこんな感じのコネクタがついてます。

f:id:sato_c:20131217190515j:plain

12Pだけど、ちょっと特殊形状。(AMP12Pで通じるみたいです)

で、こちらがメスです。今回必要なのはオス側になります。

 

twitterで写真付きで聞いてみたところ、Y-WORKs(@yworks2000)さんが、「ターミナルボード」なるものにさすためのコネクタだと教えてくれました。

山手線沿線の基板屋さん数軒にメールして聞いてみるも筐体側はやってないから、パーツもありませんというメールばかり。(定休日後にメールをくれたお店がありまして、そちらでは扱いがあるそうです。もう注文してしまった後だったけど)

 

その後、再度Y-WORKsさんから有力情報を教えていただいて、福岡のアールエスさん(http://www.rs2006.co.jp/)にメールしてみたところ、確認がてら電話が。

何がほしくて、何がしたいのかを伝えたところ、「じゃあ、オス側があれば大丈夫ですね」といわれ、見積を出してもらうことに。

 

で、今日届きました。

とりあえず、こっちのコネクタにはGNDが出てないので、もしかしたら違うコネクタからGNDだけ持ってこないとダメなんじゃないかと思いつつ、コネクタ届いて満足しないようにします。

 

聞いてみるもんですね。Y-WORKsさんありがとうございました。

Esenthel Engineを試してみてるんですけども。 - 落ち着いてライトについて読んでみた

ライトがちゃんとあたらないんですよねーとかいいつつ、実行時間でライトの場所が変わるようにDirectional Lightを設定していた俺です。

 

ライトの種類

http://msdn.microsoft.com/ja-jp/library/cc373077.aspx

というのがありましたので、これを読んでライトの種類を確認しました。

続きを読む

Esenthel Engineを試してみてるんですけども。 - Application States

http://www.esenthel.com/wiki/index.php?title=Application_States

のページをわかる範囲で訳しました。

基本、Wikiに載っていることはほんとに簡単な説明だけであり、

たいていは動画解説を見ろって誘導されちゃうか、Tutorialの

プロジェクトに含まれるソースを見ろってことみたいです。

それ以外は、ヘッダファイルを確認するとかそういう内容なので

まとまった資料を探すためにもWikiを見る一環として書いてます。

 


 

アプリケーションステート

 

ステート(state クラス)は、様々なアプリケーションの状態管理で

使われる。

 

たとえば、例を挙げると

・イントロ

・メニュー

・ゲーム

など。

 

それぞれのステートは、

・初期化

・シャットダウン

・アップデート(更新

・描画

の各関数を持つ

 

初期化とシャットダウンは、オプション関数なのでNULLでもいい

 

アクティブなアプリケーションの状態は1つしかない

違うステートクラスに変更されると最初に呼ばれていたものは

シャットダウン関数(あれば)が呼び出される。

その後、新しいステートクラスで初期化が呼び出される。

 

初期化関数はステートのロードが成功したら、必ずtrueを返す。

そうでない場合はfalseを返す。もしfalseが返ってきたら

アプリケーションは、終了する。

 

ステートがアクティブになると、アップデートと描画の関数は

各フレームごとにエンジンから呼び出される。

 

 

以下のような関数があるとする

 

・StateIntro(InitIntro, ShutIntro, UpdateIntro, DrawIntro関数を含む)

・StateMenu(InitMenu, ShutMenu, UpdateMenu, DrawMenu関数を含む)

・StateGame(InitGame, ShutGame, UpdateGame, DrawGame関数を含む)

 

以下のような順番でステートは呼ばれる。

 

StateIntro - プレイヤーは導入部を見る

StateMenu  - プレイヤーはメニューに入り、新規ゲーム開始を選ぶ

StateGame  - プレイヤーはゲームを開始、その後メニューに抜ける

StateMenu  - メニューでexitを選んで、ゲームを終了する

 

さっき書いたシナリオでは、Esenthel Engineでは次の順番で関数を呼び出す

 

・InitPre(ここは初期化前の関数。エンジンのオプションなどをセットアップする。一度だけ呼ばれる)

・Init(全体の初期化関数。データの読み込みなどを行う。一度だけ呼ばれる)

 ・InitIntor(StateIntroに切り替わり、introの初期化関数が呼ばれる)

  ・UpdateIntro(各フレームでステート内の更新と描画が呼ばれるようになる)

  ・DrawIntro

  ・ (繰り返し)

  ・UpdateIntro

  ・DrawIntro

 ・ShutIntro(StateMenuに切り替わるので、introの終了処理をする)

 ・InitMenu

  ・UpdateMenu

  ・DrawMenu

  ・ (繰り返し)

  ・UpdateMenu

  ・DrawMenu

 ・ShutIntro(StateMenuに切り替わるので、introの終了処理をする)

 ・InitMenu

  ・UpdateMenu

  ・DrawMenu

  ・ (繰り返し)

  ・UpdateMenu

  ・DrawMenu

 ・ShutMenu

 ・InitGame

  ・UpdateGame

  ・DrawGame

  ・ (繰り返し)

  ・UpdateGame

  ・DrawGame

 ・ShutGame

 ・InitMenu

  ・UpdateMenu

  ・DrawMenu

  ・ (繰り返し)

  ・UpdateMenu

  ・DrawMenu

 ・ShutMenu

・Shut(これは、全体的なシャットダウン関数。一度だけ呼ばれる)