Live2Dとかティラノスクリプトとか

Live2Dとティラノスクリプトの制作に関することとか

やること。やったこと。

ツイッターでツイートしたときに表示される画像をつくって
ちゃんと表示されるか確認した

httpsのつかえるサーバーでないと、タイムライン上でプレイできないとシケモクさんの記事にかいてあることを今更知った。
違うhttpsの使えるサーバーに公開前に移動するか迷う。

 

クイズ終了時に、何問とけたかをツイートしてシェアする、機能をつけようと思っている

そのときに、画像がつけれたらいいのにな。

このジャンルのクイズをパーフェクト正解!っていう画像

 

難易度MAXの問題は、答えが出ないようにしようかとおもったんだけど
問題つくってくれてるこが、答えはだすべきだといっていた。

そうかぁ。

 

今日は仕事で凄く疲れたから、明日。

やること。やったこと。

問題の選択画面を作っていて

glinkに入れたテキストの半角スペースが消えてしまう

アラートで表示された文字の半角スペースも消えてしまう

 

ググった

[eval]でもだめ。[iscript]で関数に半角スペース入りテキストを入れないと対応できないそうな。

でも、対応がわかってよかった。ありがとう。

あと、めんどくさかったら全角にしたら入るw

 

2択の問題がYesNoだけでない事件発生。
2択表示用の枠と、そのための処理を追加する。

うまくうごいてよかった。

 

Live2Dモデルをつつくと怒るのだけど

頭をつつくと怒って、からだをつつくと笑うようにしたいという話になった

処理はできたのだけど、笑うモーションがないので、後日追加したいところ

モデル処理はまとめてやろう。

 

難易度やジャンルの選択をする画面をつくって、全部つないだ

各ジャンルのクイズをcsvデータにして読み込みも確認した

テキストが長すぎたり短すぎたりして、glinkのボタンにあわないのを調整した

 

次やること

英語のcsvデータしかないので、日本語に翻訳して読み込ませる

モデルファイルの軽量化の試行と、おわさりモーションの試行

やること。やったこと。

テストプレイしてもらった友達からの意見


→live2Dモデルをつついたときに反応してほしい

当たり判定はLive2D Cubism Editorにはあるけど、ティラノスクリプトの用意されているタグには該当の設定がないので

自分にできる一番簡単なやりかたでいくと、透明のfixボタンを上にのせて、おされたらモーションするかなぁと。

→→[clickable]があったけど、これは停止してしまうから、やっぱりfixボタンかな

→完了

透明1ピクセルの画像を、クリッカブルマップみたいに配置してfixボタンで配置

ジャンプ先でwaitをしてもクリックが無効にならないくて連打されまくってしまうけど、それでも表示がおかしくない感じに調整できたのでOK

 

 

 

→live2Dモデルが表示されるあたりから、ラグい

これを言うのは一人だけで、10人くらいテストプレイしてもらったけど、androidから動かない子が一人、andoroidでも動いた子か一人、あとはiphoneipad、PCからで問題なく遊べてるって感じらしい。

音声のオンオフをつけたのだけど、それよりもlive2Dのモデルの解像度を可能な限り落として軽量化したらっていわれて

表示サイズはきまったのだから、そのサイズで書き出ししたっけ?というのを確認しようと思った。

あとは、テクスチャアトラスで、頭部以外のパーツを小さめ・解像度低めにすることでデータを抑えるとか。
テクスチャアトラス見たら、裏面なんか本当に小さくしてかまわないと思う。

モーションは全部2秒以下とか短くしてあって、idle3つ、他8つ。

触られたときに反応するようにすると、より重くなるかもしれないという懸念と
でもやりたいよねwっていう気持ち

透明のボタン作戦をやってみる
モデルのつつかれたときのモーション追加

テクスチャアトラスでデータを抑える作戦(いま500KB)

 

をやってみよう。

***

 

テキストのスペースぬけや、クリック回数を減らした方がいいとかのアドバイス
クイズの改良と、カテゴリー分けについて
てんこもりで話をして、小さいものは即調整した。

なのでこの後は

クイズの難易度やカテゴリの選択画面をつくる

モデルのつつかれたときのモーション追加(いまあるものをのせてる)

テクスチャアトラスでデータを抑える作戦(いま500KB)

やること。やったこと。

パーティクルを入れたかったんだけど
一回目の描画はうまくいっても、2回目スタートして次の描画がうまくいかなくてあきらめましたとさ。

色々ためしてみたんだけど

 

→解決

[plugin name=particle]は一回読めばいいからfirstにでもって書いてあったけど

[clearvar]のあとに読み込みが必要でしたとさ

[plugin name="live2d"]はほんとに一回でいいから、並べて書いたらだめでした。



出題のシャッフルのアルゴリズム
ビンゴゲームからもってきたらいいのではと気づいてしまって

書き換えている

→完了!うまく動いたー!!

 

tipsが長い時に、文字列に改ページをはさむか

問題格納のときに、任意の場所で改ページしておくか迷って

改ページしておくことにしたから

あったりなかったり長かったりするのをちょいちょいいじってる

→メッセージボックスに何文字表示できるかを調べて、改ページいらないことが判明したので、もう、ただ読み込んで表示すればよいから解決。

 

明後日追加のクイズデータがくるはずだから、それまでにおわらせておきたいな。

引き続き改造中 二次配列とglinkの文字センタリング

クイズをつくってと頼んだら
3択クイズだよっていったのに、イエスノーとか4択のクイズが届いた。

ので、それも扱えるように改造しているけど

バラバラにかいたら動くのに、二次配列にまとめると動かない

まず、定義の時点で
[eval exp="f.option="]
[eval exp="f.option[0]=
"]
[eval exp="f.option[1]="]
[eval exp="f.option[2]=
"]
[eval exp="f.option[3]=[]"]

ってかかないとだめなの?ほんとに?

1,2,3,4の入ってる配列にそれぞれ+2するforしたら

1.2.3は普通に+2されて3,4,5になるのに、4は42になるんですけど

バグ?配列ちゃんと扱えない?

配列数字かえて数字3つにしたら、1,2が+2されて3,4になって、32になりました。

配列に数字を入れるのもforで回して入れてるから私が手入力でうっかり全角数字でしたとかないよ?

数値をかえても最大値だけが文字列になるみたいなので、parseIntかましたら解決しました。

本当に意味が解らない。


少しglink.cssのgraphicを変えた
選択肢をglinkで表示したときに、ボタンのサイズ変更なしで、中のテキストが上下左右ともセンタリングされるようにした

.button_graphic {

  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: 0;
    outline: none;
    cursor: pointer;
    text-decoration: onone;
    font: 14px/100% Arial, Helvetica, sans-serif;
    color:white;
    text-shadow: 0 1px 1px rgba(0,0,0,.3);
    box-sizing: border-box;

}

 

 

ティラノスクリプト Live2Dモデル  クイズゲーム

できあがったものがこれ

SalmonRunQuiz

 

特徴

  1. Live2Dモデルを使っている
  2. クリック待ち画像を変更した
  3. メッセージウィンドウの上に画像を表示して名前表示枠として使っている
  4. 日本語/英語、音声のオン/オフが選択できる
  5. クレジット画面ではセンタリングで文字を表示している
  6. クイズデータは別ファイル、csvファイルで管理して読み込んでいる
  7. 出題のときに、重複しないランダムの整数を生成してつかっている

 

1-3はこれまでの記事で。

 

言語、音声の選択は、選択に応じたタイトル/出題ページにジャンプするようにしながらシステム関数に選択を保存。

センタリング

cssファイルを操作して、センタリング表示。

 

データをcsvファイルから読み込む

そのままのcsvファイルだと、英語版でテキストに『,』が使えなくなってしまうので、『,』の代わりに『#』で区切って配列に入れたり

改行は無視して『;』で区切って配列に入れたり

オリジナルのものにしてある。

 

重複しない整数の乱数生成

アルゴリズムを調べて、JavaScriptで記述されたものを使った。

 

[macro]や[iscript]の中で定義した変数は、そこを出てしまうと消えてしまうけれど、定義しておいた変数を中で使うことはできる。

基本的にfirst.ksでまとめて定義、必要なら初期化をした。

 

ティラノスクリプト ブラウザ版とexeの違い

ティラノスタジオでexeファイルにエクスポートすればすぐに動作確認できたのに、ブラウザ版でエクスポートすると、アップロードしないとindex.htmlを開いても動作確認ができない仕様だった。

アップロードした後も、ブラウザ版用にいくつも手を加えないといけなかった。

 

■Live2Dモデルのバージョン

exeだと4でも動いたが、アップロードするときは3.3以前のバージョンで書き出さないと表示もされない

 

■音楽ファイルの形式の変更

さらにゲームの配布方法によって、利用できる形式が異なります。
ゲーム制作の前に以下を必ず確認して自分にあった形式を使って下さい

音楽の再生 公式

ブラウザ形式で音楽を再生するときにハマりやすい罠

 

公式の記事に従ってogg、m4aともに配置していたけれどPCからでないと動かなかった。mp3にしたら解決した。

 

■タイトル画面の前に表示する画面を追加した

ブラウザ形式のゲームにアクセスしたとき、ユーザーのアクションなしにロードが始まらない

「クリックしてスタート」というような画面が必要だった

文字を表示するときに[wait time]を演出としてはさむことで、ロード時間を稼いだ。読み込みがおわらないのに表示されるせいで、クリックで誤動作が起きる対策。

音声を再生するときにトラブルが起きやすいのと、携帯からプレイの場合音量調整がプログラムからできないので、音声オンオフを選択できるようにした

 

■閉じるが動かない

exe版のときは、閉じるでゲームが終了していたのが、ブラウザ版ではブラウザが閉じることができなかった。調べたけれど動作しないので閉じるボタンを撤去した。

ネット上の情報(公式含)とやってみた結果が違うことがとても多かった。

 

first.ks

  • クリックしてスタート画面
  • マクロの読み込み
  • 関数、変数の定義、初期化
  • 画像のプレロード
  • 音声のオンオフの選択
  • 音声オンのときの音声のプレロード
  • 選択に応じたタイトル画面へジャンプ

 

ブラウザ版は無料のサーバーにFFFTPでアップロードしている

ノベルゲームではない上に2次創作なので、公式のノベルゲームコレクションは使えなかった。