Pythonのソースコードあるから、ありがとうございます。
Metasequoiaを起動し、メニュー→オブジェクト→作成→文字列の作成を出します。

立体文字がパネル→オブジェクトパネルに「obj2」として作成されます。
この立体文字をシーンから非表示(目の玉クリック)にしておきます。
次に、パネル→スクリプトエディタを開きます。
以下、コピペして保存します。atatatata.py
import random # 乱数を使うためのモジュール
doc = MQSystem.getDocument()
hako = "" # 出力した文字をためていく変数(文字列)
running = True # プログラムを続けるかどうかのフラグ
while running:
# 0 または 1 をランダムに生成
x = random.randint(0, 1)
# 乱数の値によって「あ」か「た」を決める
if x == 0:
char = "あ"
else:
char = "た"
# 画面に出力(改行しない)
print(char, end="")
# 出力した文字を hako に追加
hako = hako + char
# 最後の 5 文字が「あたたたた」なら終了
if len(hako) >= 5 and hako[-5:] == "あたたたた":
print() # 改行
MQSystem.println("お前はもう死んでいる")
for obj in doc.object:
if obj is not None and obj.name == "obj2":
# 0xFFFFFFFF (または -1) で表示状態になります
obj.visible = 0xFFFFFFFF
running = False
スクリプトエディタのスクリプト→実行で、コンソールにランダムに「あたたたた」表示され、立体文字が表示されました。ありがとうございます。

以下、オブジェクトの表示・非表示の方法です。
Metasequoiaのスクリプトでオブジェクトの表示・非表示を切り替えるには、MQObject の visible プロパティ を操作します。
この visible プロパティは数値で管理されており、単純な True/False ではなく、「編集画面で表示」「レンダリングで表示」などのフラグの組み合わせですが、基本的には以下の値を覚えれば大丈夫です。
-
非表示にする:
0を代入 -
表示する:
0xFFFFFFFF(または-1) を代入
以下に、特定の名前(今回は "obj2")を探して切り替えるコードを紹介します。
1. "obj2" を【非表示】にするスクリプト
obj.visible = 0 を設定します。
doc = MQSystem.getDocument()
# 全オブジェクトを走査して "obj2" を探す
for obj in doc.object:
if obj is not None and obj.name == "obj2":
# visibleを 0 にすると非表示になります
obj.visible = 0
MQSystem.println("obj2 を非表示にしました。")
2. "obj2" を【表示】に戻すスクリプト
obj.visible = 0xFFFFFFFF を設定します。
(0xFFFFFFFF は16進数ですべてのビットを立てるという意味で、これで「常に表示」の状態になります)
doc = MQSystem.getDocument()
for obj in doc.object:
if obj is not None and obj.name == "obj2":
# 0xFFFFFFFF (または -1) で表示状態になります
obj.visible = 0xFFFFFFFF
MQSystem.println("obj2 を表示しました。")
3. 【応用】表示・非表示をトグル(交互に切り替え)する
ボタン一つで「表示/非表示」を交互に切り替えたい場合は、現在の状態を確認して逆の値を入れます。
doc = MQSystem.getDocument()
for obj in doc.object:
if obj is not None and obj.name == "obj2":
if obj.visible == 0:
# 非表示なら表示へ
obj.visible = 0xFFFFFFFF
MQSystem.println("obj2: ON")
else:
# 表示(0以外)なら非表示へ
obj.visible = 0
MQSystem.println("obj2: OFF")
解説
Metasequoiaのオブジェクトリストは、名前で直接呼び出す機能(辞書のような機能)が標準ではないため、上記のように for ループで名前が一致するかどうかを判定して特定するのが基本的なやり方になります。
以上、metasequoia pythonでした。
以下、参考資料サイトです。ありがとうございます。
Hello World あたたたた Lua編です。ありがとうございます。
