忍者ブログ

でんきみちブロgu。(あ行。)

大変古い古すぎるレビューの置場。お絵かき掲示板消失により3年ぶりに雑記に転用(2017年)。現在はノベルゲーム制作とライブ2Dがマイブーム。

ティラノビルダー。乱数設定の誤差について。

茶色のバーをぽいっと入れると変数設定できるじゃないですか。
で、乱数も手軽に設定できるので、

敵からのダメージの変数
操作 「引き算」 オペラント 「乱数」200~300と設定して
よっしゃ。とか思うじゃないですか。

ところがゲームをプレビューしてみると
500とか600マイナスされちゃって…あれ???
なんでーーとなっていました。

原因が分かりました。

ティラノビルダー制作テクニックwikiさまの乱数の項を
よく読むとわかります。
(アポなので計算の仕方わかるまでにめっちゃ時間かかりましたけど…^p^)


実はティラノスクリプトの乱数設定は

右側の数値×0.9999…+下限=上限 
という計算式でできていたのです!!!


衝撃だ。

だから300~500のダメージを出したいときはこんな
計算してこんなふうに入力しないといけないのだ



左側の数値が1より大きくなる場合、
右側の数値を上限にしたい数から計算して
少なくするとOKだったのだ!!!

300~201に設定すると
300~500の範囲で乱数がでます。

(300~500と設定していると
(500 * 0.9999) + 300 = 799.95の計算で
300~799の間で数値がでてしまう。)


ビルダーの乱数で困っている人がいましたら。
計算してみてください。


追記!!(2019/02/17)************************************

ティラノのプラグインなどを配布されている!


こ・ぱんだ さん が詳しい補足解説の記事を書いてくださりました!
0.999じゃなくて

 ( 最大値 - 最小値 ) + 1 = [最大値に入力する数値] 

というのが正しい計算式のようです。詳しくはリンク先で!


100~400にしたかったら
(400-100)+1=301

100~301と入力すればよい


0.999の掛け算するより単純でした^^;

ありがとうございます!!
この乱数の誤差はティラノビルダーの不具合なようです。
計算はあくまで対応策。
そのうちのバージョンでは修正して頂けそうですm(_ _)m


********************************
追記!(2019/02/23)
ティラノビルダーがv183にバージョンアップされました!
v183では乱数計算が修正されているそうです!!

v182より前のものを使って制作している場合は自分で計算して
なんとかしましょう。




PR

ティラノビルダーでシステム画像ボタンにオンカーソル画像差分。

ティラノビルダーではメッセージウィンドウとUIを
手軽にドラック編集できるので大変便利ですが

現在(ビルダーバージョン1.70、1.80)、メッセージウィンドウと一緒に表示される

システムボタンがカーソルオンで差分が反応しない仕様になっています。

ボタン画像のフォルダには差分が入っているのであれ?っと
思った方もいるはず。

私も、差分画像は言ってるのに何で動かんのやろ~と思っていました。

で、気が付きました。


ゲームファイルのフォルダ>data>scenario>system
>message_window.ks

にメッセージウィンドウとシステムボタンのタグが記述されています。
ビルダーのUI編集画面で操作すると更新されます

この
message_window.ks
の中のroleボタン(システムボタンのこと)を表示するタグにオンカーソルで画像が変化する
タグを挿入すれば差分がでるようになります。

  [button name="role_auto" role="auto" graphic="button/auto.png"  x="500" y="17" width="50" height="94" visible="false" ]
  
   
buttonタグについて、公式タグリファレンスを見るとありますが

enterimg= というのがオンカーソルで画像が変化させる指示になります。

  [button name="role_auto" role="auto" graphic="button/auto.png" enterimg=button/auto2.png  x="500" y="17" width="50" height="94" visible="false" ]

こんな感じに挿入すれば差分が動きます。
ビルダー(1.82は未確認)
※動くのはPCでのプレイのみで、iosではenterimg=は反応しません。



**********************************
メニュー画面のボタン画像差分について


あとメニュー画面のボタンの画像差分はビルダー1.80では
差分が反応するようになっていますが、

セーブ、ロード、バックログ画面の戻るボタン
差分が反応しません


手動でこれらのHTMLファイルを編集すると差分が動くようにできます。

ゲームファイルフォルダ>tyrano>htmlにある
backlog.html
load.html
save.htmlのファイルです。

menu.htmlをメモ帳かワードパットで開きます。
(ワードパットは文字化けしてダメになることがあるのでメモ帳のが安全
 もしくはMery(←フリーソフト)だと見やすいです)

テキストの下の方に
    <script class="block_menu">
    var tmp_src = "";
   
    $(".menu_item").hover(function(){
    tmp_src = $(this).find("img").attr("src");
    var img_src = tmp_src.replace(".gif","2.gif").replace(".png","2.png");
    $(this).find("img").attr("src",img_src);
    },
    function(){
   
    //もとにもどす
    $(this).find("img").attr("src",tmp_src);
    });
    </script>
というのが記述されているので
①これをコピーして
②バックログ、ロード、セーブのファイルの末にペーストします。
 ※一番下の</div>の上に挿入します。
③ <script class="block_menu">を<script class="menu_item">に
 変更します。
(変更しなくてもいいかもしれませんが、
 クローズボタンのタグがmenu_itemだったので変更しました
これでbackボタンの画像差分が動くようになります。
※iosでは動きません。

ボタンがカーソルオンで反応するとそれっぽくてかっこいいですよね。







ティラノビルダー。Gリンクボタンの背景画像




静止画ですが、クリックするとひゅーっと開くボタンを
やって見たくてやってみました。
残念ながら閉じるときはひゅーっとなりません。





画像ボタンで顔ボタンを表示してます
それぞれを押すと押されたキャラの追加ボタンの表示に飛ぶ。
飛んだラベルのところで、ボタン表示のタグと表示時にアニメーションの指示を
スクリプトで記述してます。
[button name="izakas1" graphic="i_izaka.png" storage="tyosa2_kuroionna.ks" target=*kodo x="477"  y="295"]

[glink  name="izakas" color="black"  storage="tyosa2_kuroionna.ks"  size="20"   width="60"  text="交渉"   target="*kosyo"  x="550"  y="300"  graphic="i_izaka_sukiru.png" ]

[glink 
name="izakas2" color="black"  storage="tyosa2_kuroionna.ks"  size="20"   width="100"  text="ジャンケン"   target="*jyanken"  x="550"  y="300"  graphic="i_izaka_sukiru.png" ]
@anim name="izakas1" left=150 time=400 method="easeInSine"
@anim name="izakas" left=220 time=400 method="easeInSine"
@anim name="izakas2" left=368 time=400 method="easeInSine"
[wait time=100]
[button~ は画像ボタン表示のタグです
graphic="i_izaka.png" で画像を呼び出してます。(画像ボタンのフォルダに入れとく)

[glink ~ はビルダーでテキスト選択ボタンを表示してるタグです
graphic="i_izaka_sukiru.png" でボタンの背景画像にオリジナルのものを使えます。
 ←こんな画像を画像ボタンのフォルダに入れて使ってます。

@anim ~でname指定したボタン画像にアニメーションの指示を入れてます。
name="izakas2" の場合[glink ~で表示された場所(x="550" )から left=368に動く指示です。

storage="tyosa2_kuroionna.ks"はシナリオファイル
target=*kodo  はラベルのことです。

なんかけっこう手かかってるようなきがするけど
ちょっとしゅーって動くボタンが表示できて楽しいです^▽^*

ちな、ティラノスクリプト公式テクニックサンプル集②の
キーフレームアニメ[kanim]とアニメ[anim]の違いを参考にしてます。
https://tyrano.jp/sample/sample2

ロールボタンとかfixボタン(常に表示)のボタン
やcall、returnとかと工夫したらメニューもこういう風にできるかも…?
まだやりかたわかんないけど、そのうち気が向いたら試行錯誤してみよう…。


******************************************************************

余談ですが。graphic=で呼び出す画像をgifにしたらこういう効果もつけれました。

 ←※禁無断使用。素材ではありません
[glink  name="glink1" color="black"  storage="tansaku1.ks"  size="20"   width="180"  text="階段"  target="*kaidan"  x="158"  y="155"  graphic="botan1.gif"]

とスクリプト記述でこんな感じ。


ひと手間でいろいろできそうです。




ティラノビルダー。ジャンケン(簡易ターン制バトル)



動画にしようとしたけど重すぎてアップできなかったんで静止画で
ジャンケンモチーフのカードバトルをビルダーで作ったやつの記録です。
画像の繋ぎ間違えてるとこあるかもしれませんがだいたいこれでできてます。

キャラクターはライブ2Dでモーションを付けました。
右上のHP表示はメッセージレイヤーとメッセージウィンドウサイズを指定して
出してます。


以下シナリオファイルの概要

・セーブ防止に歯車ボタン非表示
・変数設定(HP)
・メッセージウィンドウ変更のスクリプト
・キャラクター登場
・画像ボタン表示(グー、チー、パー)
・グーを選択した時
 →ランダムで相手がグー、チー、パーを出す
・チーを選択した時
 →ランダムで相手がグー、チー、パーを出す
・パーを選択した時
 →ランダムで相手がグー、チー、パーを出す
・グーで相子の時
・チーで相子の時
・パーで相子の時
・グーでジャンケンに勝った時(damageok)
・チーでジャンケンに勝った時(damageok)
・パーでジャンケンに勝った時(damageok)
 →エフェクト、変数調整
・グーでャンケンに負けた時(damageno)
・グーでャンケンに負けた時(damageno)
・グーでャンケンに負けた時(damageno)
 →エフェクト、変数調整
 →ガードカードへ
・ガードカード
 ウェイト1000の間、画像ボタンを表示(表示位置はランダムにした)
・勝利
 HPの変数をジャンプの条件で設定しておく
・敗北
 HPの変数をジャンプの条件で設定しておく
・瀕死モーション
  HPの変数をジャンプの条件で設定しておく


        
   

グーチーパー、それぞれに分岐を作ったので結構長くなってしまいましたが
なかなか楽しいミニゲームになったんじゃないかな^w^
相手が出すジャンケンの手をグーチーパーそれぞれ選んだ時で確率変えたり
してるのでややこしくなっている。

ティラノビルダー1.70で作ったんですが1.70に入っているティラノスクリプト4.50だと
例えばウェイト1000→1秒たつ前にジャンプウェイトキャンセルタグ→
ウェイトはキャンセルされるがメニューボタンが反応しなくなる
という現象が発生しまして、(ビルダー1.80では発生するかどうか未確認)
ウェイトキャンセルタグを入れ、操作開始する前にウェイト時間を使い切る工夫が必要でした。

本編中でセーブできなくなると困るので
ジャンケンに負けた時にガードボタンやカウンターボタン(ウェイト制限有)が押せるのは
おまけモードだけにしています。


よかったらゲームもやってね^^
「不死の捜査録」
https://novelgame.jp/games/show/727



Live2D目のまばたき口の開閉について。

ライブ2Dの公式のガイドでモデルの作り方が見れます、
チュートリアルの目や口の作り方では



これぐらいパーツが細かくなります。
もちろんこれでもいいのですが、10体も作ってると
調整が面倒で(そんなに表情使わないキャラも居たし…)

ということで、切り替え方式という作り方を知ったのでメモっときます。




切り替え方式だと、パーツ(つまりレイヤー分け)がガクッと少なくなります。





口だとこういう感じ、綴じた口の上に開いた口のレイヤーをのせておき
開いた口を間に縮める部分を設定して
透明度をいじって、消す。→口が閉じて見える。
 





目もこんな感じ。細くしつつ、透明度0にする。
(これだと眼球のみは動かせませんが)

パーツを減らすと制作スピードは上がりました。
調整が難しい時は良い作り方です。