TimpaniでRPGを作ろう!

―8. トラブルシューティング―


トップページに戻る




作成中の謎


RPGをTimpaniで編集しようと思っても、「Timpaniの編集できるスタックではありません」というダイアログボックスが出る。
ResEditなどで、すでに開いているというのが一番原因として多いようです。
また、既存作品も、設定によっては、Timpaniで開くことができません。私の作品で、「ここの場面はどうして作ったのか知りたい!」ということが万が一ありましたら、メールか掲示板で連絡をいただければと思います。


文字を打ち込んでいる時に、カーソルを動かそうと思って矢印キーを押したら、画面が変わってしまった。
これは、HyperCard上では、矢印キーは、ページをめくる機能として使われているからです。押したのと反対の矢印キーを押せば、元に戻ります。


カードイベントのイベントの位置を、HyperCardを使って書き換えていたら、それ以来、アイコンとマップチップが1ビットずれてしまっている。
リンゴマーク+Mを押して、メッセージボックスを起動させ、そこに、「reset」と打ち込んでリターンキーを押すと戻ります。


新しい機種に買い替えたら、「セーブゲーム消去」機能が使えなくなった。
容量の多いHD上では、「スタック整理」と「新規スタック制作」の機能が使えないという現象が起こるためです。USBスティックなどの、外付けのドライブに入れて起動してください。


マップの順番を変えたい。
HyperCard Lite上で、「カットカード」→「ペーストカード」とするのが一番簡単なようです。


条件「アイテムがある時」が効かない。
スタックをHyperCard Liteで開けて、プルダウンメニュー「オブジェクト」から「スタック情報」を選択、ダイアログボックスから「スクリプト」を選択します。
「function condItm what --ある消費アイテムを持っているか」
の次の行に、
global MDATA
を挿入します。すると、この条件が使えるようになります。


Timpaniが急に誤動作するようになった。
Timpani自体を「スタック整理/Compact Stack」すると直ることが多いかと思います。








作品をプレイ/テストプレイしている時の謎


「出口」と「入口」、「外に出る」と「中に入る」が同じに見える。
OSXでは、HyperCardの視覚効果が働きません。OS9では、画面が狭くなったり広がったりという効果がきちんと表示されます。ぷごさんの「Dr.Effect」という外部命令を使えば、OSXでも、視覚効果が再現できるそうです。
また、私のコンピュータ(MacOS 10.3)では、UDIさんの「UxBack」という外部命令を使ってデスクトップを隠すと、この画面効果が、完全にではありませんが再現されます。


状態を変えたら、キャストがどこかに行ってしまった。
5.2.1.2. キャスト編集上の注意:2 キャスト位置のシンクロ」をお読みください。


作ったはずのキャストが、RPGをHyperCard Lite / Playerで起動して矢印キーなどでそのマップに行くと見えない。
最初にTimpani上でなく、HyperCard Lite / Player上でテストプレイするまで、キャストは、HyperCard Lite / Playerで見ることはできません。テストプレイをすれば、ちゃんと見えるようになります。


「テスト」スタックのオープニングテキストにある「Classicではdissolveが効かない…」というのは?
「OSXでは、HyperCardの視覚効果(の一種)が働かない」という意味です。


イベント中にエンカウントしてしまう。
スタックをHyperCard Liteで開けて、矢印キーで、マップがあるカード(どれでも構いません)に移動、プルダウンメニュー「オブジェクト」から「バックグラウンド情報」を選択、ダイアログボックスから「スクリプト」を選択します。
その中の、「on castWalk direc,cn,WC --キャラの歩く処理」という段落全文を、以下のものに置き換えてください。
on castWalk direc,cn,WC --キャラの歩く処理
global wchar,gwait,gMapChar,gbn,gchd
put short id of cd btn ("Cast"&cn) into btnID
put ((icon of cd btn id btnID) div 100)*100+direc*10 into ic
put (item direc of "0,-1,1,0") into x
put (item direc of "1,0,0,-1") into y
put loc of cd btn id btnID into bLoc
set icon of cd btn id btnID to ic
if WC is empty then
put empty into wchar
click at (item 1 of loc of cd btn id btnID)+x*32,(item 2 of loc of cd btn id btnID)+y*32
else put WC into wchar
--WCはwcharを指定してしまう。当たり判定を無効にする時などに使う。
if wchar is in gMapChar then --通行可能な文字は、マップによって変わることも。
--実際に動かす。
repeat with i=1 to 4
get the ticks
set loc of cd btn id btnID to ((item 1 of bLoc)+i*8*x),((item 2 of bLoc)+i*8*y)
set icon of cd btn id btnID to (ic+2-(i mod 2))
wait it-(the ticks)+1
end repeat
set icon of cd btn id btnID to ic
if gbn is not empty and gchd is "walking" then
put gbn into DT
put empty into gbn
send "gotin" to DT
end if
else exit castWalk
end castWalk

この訂正方法は、S口さんに教えていただきました。本当にありがとうございました。


オープニングテキストの最終行が欠ける。
カード"DispText"上にある、オープニングテキストが表示されるフィールドを大きくします。

RPGをHyperCard Liteで開いて、りんごマークとMを同時に押し、あらわれた欄に「go cd "DispText"」と打ち込み、リターンキーを押します。
真っ黒いカードに移動するので、上のプルダウンメニュー「ツール」から、右上の、表マークを選択します。
白い罫線が表示されるので、そのあたり(大体でかまいません)をクリックすると、このフィールドの範囲が、動く破線で表示されます。この動く破線の下の辺りをドラッグして、フィールドを大きくします。
上のプルダウンメニュー「ツール」から、左上の、「手」マークを選択して、お終いです。

この訂正方法は、沫那 玖珠琉さんに教えていただきました。本当にありがとうございました。


セーブ画面で「戻る」ボタンをクリックすると、タイトル画面に行ってしまう。
美和・龍さんが、解決になるスクリプトを寄せてくださいました。


ゲーム中に、フィールドを使って文章を表示したら、自分のコンピューターではちゃんと表示されるのに、テストプレイをした他の人から「全部表示されない」と言われた。
時々ある現象のようです。フォント、ポイントを指定していても、文字が表示される大きさが微妙に違うことから、フィールドに収まりきらず、全て表示されないことがあります。


Timpaniでちゃんと指定したのに、テストプレイをした他の人から「アイコンが化けている」と言われた。
これも、時々ある現象のようです。もう一度設定し直すしかないようです。


「マップ移動」をしたあと、プレイヤーキャラが動かなくなる。
マップグラウンドスクリプト内の「BlackMove」ハンドラを、以下のものと差し替えてください。
on BlackMove CdName,x,y
MapTran CdName,x,y
global gchd
put empty into gchd
exit to hypercard
end BlackMove

スタックをHyperCard Liteで開けて、矢印キーを使ってマップの表示されているカードのうちのいずれかに行ってから、プルダウンメニュー「オブジェクト」から「バックグラウンド情報」を選択、ダイアログボックスから「スクリプト」を選択します。
出たウィンドウの下の方、「on BlackMove」で始まる段落の全文を、上に挙げたものに差し替えて下さい。「保存」を押して、ウィンドウを閉じてください。

この訂正方法は、名取さんに教えていただきました。本当にありがとうございました。






カードイベントで、イベント発動条件を「初めて来た時」にしたら、イベント戦闘が終わる度に「初めて来た時」で指定したイベントが発動してしまう。
スタックをHyperCard Liteで開けて、矢印キーで、マップがあるカード(どれでも構いません)に移動、プルダウンメニュー「オブジェクト」から「バックグラウンド情報」を選択、ダイアログボックスから「スクリプト」を選択します。
その中の、「--戦闘用」のすぐ下にある「on EventFight En1,En2,En3,Lv1,Lv2,Lv3,CdName」という段落全文を、以下のものに置き換えてください。
on EventFight En1,En2,En3,Lv1,Lv2,Lv3,CdName
global MDATA
get (number of this card)-(number of cd 1 of bg id 4056)+1
if it > 0 then SetBooleFlg it,3,true
put "On" into item 3 of line 8 of MDATA
FightTo En1,En2,En3,Lv1,Lv2,Lv3,"OnCard",CdName
end EventFight



この訂正方法は、マイナスさんに教えていただきました。本当にありがとうございました。






戦闘中、またステータス画面で、「playBGMが分かりません」というエラーメッセージが出る。
スタックをHyperCard Liteで開けて、りんご+Mを押して、メッセージボックスを開きます。
全てのスクリプト内を一括検索するために、メッセージボックスに、「ss」と打ち込んでリターンキーを押します。
出てきた「playBGM」という行を全て削除します。ひとつのスクリプト内に複数ある場合もありますので、注意してください。

この項執筆にあたっては、Kenichi Maehashiさんに技術上の助言をいただきました。本当にありがとうございました。






召喚したあとに、キャラクターのアイコンが、召喚中のままかたまってしまう。
プロジェクトをTimpaniで開け、生データから「TechsDATA」を選びます。召喚データの入っている行に、コマンド「StandPose」を付け加えます。コマンド同士は、コンマ区切りになっていることに注意してください。



赤で囲った部分を付け加えます。
拙作『ヒエニアの本』からの画像です。






これで、このコーナーは終わりです。

ここまで読んでいただき、本当にありがとうございました。

それでは、皆様の作品をプレイできる日を楽しみにしています!



トップページに戻る










最終更新:2006年8月25日