見出し画像

非プログラマのRen'Pyノート:エラーの種類&エラーメッセージの読み方

renpyは海外製なので、エラーメッセージも英語です。ちょこっと調べてみたものの、日本語化する方法は今の所ないみたいです(2023年1月現在)。

自分が知る限りエラーの出方は大きく以下の4つに分かれます。全種類は網羅できていませんが、頻出エラーをまとめてみました。

ちなみに、エラーメッセージの青色の部分がリンクになってるので、クリックすると当該箇所に飛べます。便利だ。


1.起動時にメッセージが出て起動できない

文字もうちょっと大きく表示されて欲しいなあ

私が一番よく遭遇するのがこれ「スクリプトの変換に失敗しました」、英語がバーっと並ぶので戦慄しちゃいますが、こういう感じで表示されたときは、一番上の行を見ていただき、以下単語があればこのエラー、とうっすら覚えておくと焦らず対処できます。

〜Unexpected indentation at 〜:
文頭のスペースに誤りがある場合に出ます。
labelの前にはタブスペース要らない、一般のセリフとか命令文はタブスペースひとつ、ifとかmenu以下は階段状に、など色々なルールがあります。

〜Line is indented, but the preceding one-line python statement statement does not expect a block〜:
文頭にスペースが要らんとこに入ってる。

〜non-empty block〜:
これも文頭に入れるスペースが間違っているケース。
if節やmenuで出がちで、意味的には「空っぽのtabスペースが必要だよ」みたいな感じ。

〜twice at〜:
ゲーム中に一回しか使っちゃいけないような用語が2回以上書かれている。
label名とか定義周りに多いです。

自分がよくやらかすのが「スクリプトファイル(.rpy)の名前を変更したが、バックアップファイルに情報が残っていてエラーが出る」というものです。この場合「.rpyc」で終わるファイルを全部消すと解決します


2.ゲーム中にエラーメッセージが出て進行停止

冒頭が「例外が発生しました」というメッセージ。

一番多いのが、音楽ファイルが適切なフォルダに入ってないorファイル名を間違っていて、再生される直前にこのエラーが出る、というものです。起動時にはこのエラー出ないので、通して遊んでみる必要があります。

ちなみに、このタイプのエラーは「Full traceback」より「前」の最後の行にハッキリしたエラー内容が書いているのでそこに注目します。

なおMac版ではファイル名に大文字がついてると問答無用でこのエラーが出るようです

〜Could'nt find〜:
適切なフォルダに適切な素材が入ってないorファイル名が間違っている

なお、同じ「ファイルがないorファイル名が間違っている」でも画像である場合このエラーは出ず、本項「3」のようにしれっと進行されます。

ちなみにrenpyでは「ファイル名は大文字と小文字が区別される」としか書かれていないのですが、大文字がファイル名に入ってると自分の場合(Macです)はこのエラーが確定で出ますので、ファイル名は何しか小文字で統一しています。

〜Exception: Unknown text tag〜
自分の場合はリンクを貼る際、urlの{a=http〜}のaの部分に日本語を入れた場合に再現しました。

SyntaxError: invalid syntax:
構文が間違ってる。構文がなんなのか分かりませんが、自分の場合はif分岐のとこの条件を重複して書いちゃったときに出ました。

3.エラーなんだが代替データでしれっと進行

一番多いのが、画像ファイルが適切なフォルダに入ってないとか、呼び出す画像名を間違えている、といったケース。謎の女子のシルエットがドーンと表示されてしまいます。

hoehoeという画像を表示するよう書いたが、imageフォルダには入ってないケース

画像は、キャラだろうが顔グラだろうがボタンだろうが、何しかこの女子シルエットで代替されます。表示位置によっては画面外に吹っ飛んでて気づかないケースもあるので注意が必要です。

sceneの画像がない場合は背景がドーンとグレイになり、画面上部にファイル名が表示されるのですぐわかるかと思います。

4.エディタが立ち上がってなんか怒られる

ゲームを起動したままスクリプトファイルをごっそり入れ替えたとか、大元のフォルダ名を変更したといった場合に出がちです。

これはなんか割とかなりまずいエラーの類だという認識でいるので、大人しくバックアップしたデータまで戻るか、新しく進めたところを順に消していくかなどして解決しています。

エラーメッセージについては現時点で拾い漏れが多いと思うので、もしrenpyを始めた方で「しょっちゅうこのエラーが出がち」というものがあれば、コメントにメッセージをペーストいただければ分かる範囲で調べて追記します。



この記事が気に入ったらサポートをしてみませんか?