濃密金石文 http://nmksb.seesaa.net/ ゲームを遊んだり作ったり本を読んだ感想を書いたり。タイトルで言うほど濃密ではなく基本的にあっさり味です。 ja
  • http://nmksb.seesaa.net/article/508012422.html もう一度、godotで3D迷宮に入門する UnityからGodotに修行場を切り替えてからもう2~3年立つかなかなりGodotのやり方に慣れて、Unityでどうやってゲーム作るのか忘れたくらいなんだけど未だにUnityで実現できてたのがGodotでできてない奴があるその一つが3D迷宮俺の原体験であるWizardryを再現させるためには、是非ともこの3D迷宮を実装したいわけなんだけどGodotでのこいつの使い所がいまいちわかってないんだよな今どういう所が詰まっってるのか、ここで書きながら頭整理させてみようと思うんー、で.. ゲーム LoyalTouch 2025-01-03T06:33:07+09:00 <![CDATA[
    UnityからGodotに修行場を切り替えてからもう2~3年立つかな
    かなりGodotのやり方に慣れて、Unityでどうやってゲーム作るのか忘れたくらいなんだけど
    未だにUnityで実現できてたのがGodotでできてない奴がある
    その一つが3D迷宮
    俺の原体験であるWizardryを再現させるためには、是非ともこの3D迷宮を実装したいわけなんだけど
    Godotでのこいつの使い所がいまいちわかってないんだよな
    今どういう所が詰まっってるのか、ここで書きながら頭整理させてみようと思う

    んー、できれば正月休みで一本何か完成させてブログに上げたかったんだけどねー
    うまくいかないねー


    godotでわからんこと1 3D素材はどうやって作るの

    こう、初歩的なところで躓いてるのはわかるんだけどね
    以前3D迷宮みたいなの作った時は、自力でキューブを作ってそこにレンガのテクスチャ貼りつけるとかして
    色々やってたみたいなんだよな。自分でやってて忘れちゃったけど

    でも、これだと単純な立方体とか直方体みたいなのしか作れなくて、
    扉や階段みたいなのは作れないっぽいんだけど、どうすんだこれ

    例えば2D素材だったら、GraphicGaleみたいなドット絵エディタでドット作って
    TileMapに読み込む、みたいな方法を使うんだけど
    3Dだったらblenderで3D素材を作ってMeshLibraryという仕組みで取りこむらしい

    んー、なるほどねぇ

    と、そこまではわかったんだけど、じゃblenderで扉・階段・柱みたいなのどうやって作るのとか
    テクスチャどうやって貼るのとか、そういうのはまだよくわかってないっす
    難しいなあ

    godotでわからんこと2 アニメーションのやりかた

    3D迷路の中を自由に歩き回る方法については、だいぶやり方を覚えてきた
    定番はこうやる
    • まずプレイヤーとなる3Dオブジェクトを作る。これはからっぽのNode3Dでいい
    • プレイヤーの子にカメラとライトをつける。親のプレイヤーを回転させたり平行移動させたりすると、カメラとライトが追随する
    • 左右キーでrotation_degreesに90度プラス、あるいはマイナスの値を追加する
    • 上下キーでtransform.basis.z.normalized()方向に値をプラスする
    これで上下と回転をうまいこと制御しながら3D迷路の中を歩き回れるんだけど
    単純にこれを実装すると一気に90度回転、あるいは一気に1マス進んでしまうため
    今回転した? 進んだ? という操作が全然わからなくなってしまう。急に画面が変化してビビる

    というわけで、徐々に回転や平行移動するアニメーションを加えながら移動操作するのが定番なわけだ
    アニメーションがないと辛いぞ

    なんだけど、アニメーションを実装するとき、どうも特定の角度に回転しようとするとものすごい量の回転をする場合がある
    つーか、270→0度、あるいは360→90度に回転する時限定だと思うんだけどね、この挙動

    恐らく原因は

    func my_rotate_y(direction :int) ->void:
      # 次の目標角度を計算
      target_rotation.y += rotation_angle * direction
      # 回転角度を0〜360度に正規化
      var tween = get_tree().create_tween()
      tween.tween_property(self, "rotation_degrees", target_rotation, duration)
      target_rotation.y = wrapf(target_rotation.y, 0, 360)

    こんな感じでTweenを多用してるからで、slerpとtimerを駆使すれば直ると思う・・・んだけど

    迷宮作れなくてもいいんでは

    いや、元々俺はTRPG風RPGを作りかかったんであって、
    Wizardryは好きだからそれに近いものを作ろうと思っただけなんだったな?

    ここで悩んでるほどなら
    • 戦闘システム
    • キャラメイク・成長システム
    • ADVパート
    とかを個別に作りこんで、何個かミニゲーム作った方が建設的なんでは
    んー、ちょっとそっちの方に方針転換するか
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/507602888.html 魔界塔士SaGa、今振り返るマンネリからの脱却のもがき Sa・Ga COLLECTIONって題名で出てたhttps://play.google.com/store/apps/details?id=com.square_enix.android_googleplay.SagaCollection_Sjp&amp;hl=jaなつかしいなー、って思って、とりあえず1からやり直してるんだけど子供の時やった印象とだいぶ違うな? ゲーム LoyalTouch 2024-12-27T20:58:03+09:00 <![CDATA[
    Sa・Ga COLLECTIONって題名で出てた


    なつかしいなー、って思って、とりあえず1からやり直してるんだけど
    子供の時やった印象とだいぶ違うな?


    明確に目指してたレベルのないRPG

    一番印象に残ってるのがこれなのよ。子供の時はゲームボーイでRPGやるからには簡単にする必要あって
    こうなったんだろうなと思ってたけど、いやこれは違うね。

    明らかに経験値を貯めてレベルアップするという方向性を否定したかったんだと思う
    そう考えるとFF2の方向の正常進化で、ロマサガがFF2と似てるって話もすごい納得行くわ
    もうこの時期には経験値とレベルアップっていうシステムにマンネリを感じていたんだろう

    で、うまく行ってたかって言うとまあ、雑だったわけだが
    人間のパラメーター上昇が金で買うタイプなんで、青龍あたりで攻撃力がカンストするとか
    まだランダムにパラメーター上がるエスパーのがバランスよかったかも
    ああ、だからSaGa2では人間もランダムパラメーターアップになったのか。そりゃそうか・・・

    システムの意図としては、SaGaの人間の成長のさせ方が一番シンプルでわかりやすいんだよね
    攻撃アイテムも回復アイテムも成長も、全部戦闘を通じて入手するお金1本でリソース管理する
    どこを成長させるかは買ったアイテムで選択可能

    ただ、成長のリソースが一本だと特定のパラメーターを集中させちゃうんで簡単にカンストするね
    いかんね
    そういうわけで、昔からRPGはお金と経験値、2つのパラメーターがあったわけなんですねー
    よくわかりました

    無神論のFF、悪神のSaGa

    あと、世界観的にちょっと思ったのがあって、SaGaの神様ってチェーンソーで一発死に
    最終ボスで悪い奴って印象が強いじゃないですか
    あれシリーズ通してわりとSaGaの神様って良くない奴が多くて、
    SaGa3でも社会の裏で手を引いてる悪の組織みたいな扱いだったんだよ
    2の女神はいい人だった。やや天然だけど

    これってエニックス合併前のスクウェア全般の傾向だったかな?
    と思ってよくよく思い返してみたら、FF、俺の知ってる1~6までの話では
    召喚獣みたいなのはあるものの特に神なんかいなかった
    神殿はあるのに

    あれ? スクウェア、あんなにファンタジー作品作ってるのに神嫌い?
    いや、聖剣伝説シリーズではちゃんとマナの女神がいるか
    あれ何だろう、FFは毎作品全然違う世界観なのに一貫して神が不在
    SaGaには神はいてもどこかで倒す対象になる

    んー、やっぱ神は悪なのでチェーンソーで殺すべきという世界観なのか
    ちなみにチェーンソーで神が死ぬバグは


    これが原因っぽい。防御力が高い方がバラバラになりやすいという・・・

    ファンタジーからも脱却したかった

    ちなみにストーリー前半の方は城に王がいたり浮島に乗って冒険したりと
    普通のファンタジー路線なんだけど
    後半に進むと破壊された東京を暴走族が反逆して暴れ回るみたいな
    AKIRAみたいな世界観になっていったり、
    核戦争で世界が滅びた情景が模擬的に表われたりと
    90年代後半に流行った世紀末SFの世界にだんだんと近づいていっている

    あーそうそう、世界が戦争でぐちゃぐちゃになって人間がエスパーに進化して
    冷戦の時ってみんなこういう世界観を共有してたんだよな

    って気分を思い出してる。

    こう見てみるとシステム的にもシナリオ的にも、経験値貯めてレベルアップして中世ヨーロッパの世界で剣と魔法で活躍するという
    ドラクエ的なRPGから何とか脱却しようともがいていた姿が、SaGaの姿なんだなっていうのがよくわかるわ

    俺もこういう動き一部は歓迎していて、
    経験値とレベルアップのシステムはどれもこれも画一的だし
    ゲーム側に用意された戦士や魔法使いのスキルアップのテーブルに乗って攻略してるだけで
    つまらんって思ってたから、わりとこのシリーズ好意的に見てたんだよね

    ただ、世界観としては王道ファンタジー好きだったんで、なんでSF混ぜるんだよってちょい不満だった
    この不満が聖剣伝説シリーズへの傾倒に繋がっていくのだが・・・

    実は2が一番好き

    なお、これだけ1を熱く語っているものの、実はこれからやる2がシリーズの中で一番好きなんだよね
    バランスの取れた成長システム、装備で色んなパラメーターが上がるメカの仕組み、アツい冒険のシナリオ
    →1のシナリオはかっこいいが主人公も街のモブもセリフが殺伐としててややウケる

    1クリアしたら2だ、超楽しみ!
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/507014924.html mixi2が来た。nostrの時代は来るか いや近年は新SNS勃興のブームですねやっぱりアレか? Twitterが買収されてXになった影響がでかいのかそう考えるととんでもないことしてくれたなイーロンんで、年の瀬になって最大のニュースが決ましたたぶん最大。もうこれから数日でもっとデカいSNS関係のニュースは来ねえだろmixi2ですhttps://mixi.social/なんて安易な名前。最近の流行りなのにmixi2.0とすら名乗らない 日記 LoyalTouch 2024-12-20T06:22:24+09:00 <![CDATA[
    いや近年は新SNS勃興のブームですね
    やっぱりアレか? Twitterが買収されてXになった影響がでかいのか
    そう考えるととんでもないことしてくれたなイーロン

    んで、年の瀬になって最大のニュースが決ました
    たぶん最大。もうこれから数日でもっとデカいSNS関係のニュースは来ねえだろ
    mixi2です


    なんて安易な名前。最近の流行りなのにmixi2.0とすら名乗らない


    生きとったんかいワレ、mixiの思い出

    実はmixiはそんなやったことないんだよね。足跡をつけたら何かコメントを書かなければいけない、あの文化が苦手で。
    それにしてもTwitterに先立って日本にSNSを根付かせた功績はすげぇもんだし、
    もうとっくの昔に会社自体なくなっていたと思っていたら
    ソシャゲで生き残っていたらしい


    でもモンスト一本で生き残るのは辛い、って上の記事にも書いていたところなんで
    次の手を打つべきだろうなー、って思っていたところに
    祖業で再度話題になるという華麗な復活劇
    これは美しい

    技術的には、全面的にFlutterで書き直されてるらしく、
    Dart興味なかったんだけどなるほどこれは面白いなって思った


    でも、まあ足跡のトラウマがあるからあまり食指が伸びないんだけどね

    偽中国語SNS対多爆誕

    ちなみに直前に流行ったSNSとして対多ってのがあってですね


    全部漢字でしか入力できないんだけど、本格的な中国語を書けるんじゃなく全部偽中国語
    日本人がインチキ中国語造語して書き込む奴。ちょうどこれよ

    我「本日在宅勤務可?」
    会社「不可!感染流行終了!出勤重要!」
    我「否!要継続感染予防!適度在宅勤務、効率上昇!」
    会社「本当?業務効率化?」
    我「本当!我誠実!普段以上集中!」
    会社「在宅勤務了承…」
    我「嗚呼…真・女神転生起動…」
    https://togetter.com/li/1801280

    読める・・・すごく読めるけど全然中国語じゃない
    という正直言葉遊びでしかないSNS、すぐネタがなくなって終了するんじゃないかと思いきや
    複雑なこと書けない荒れなくて平和ということで、みんな定着してるらしい
    なんという・・・

    俺達のnostrどうなる

    さて、以前から注目してた自由な分散SNS、nostr
    こう色んなSNSが話題になるとみなさんの興味も薄れて寂れるかな・・・
    と思ってたらさにあらず、地道に投稿が増えてる模様

    さっそく今のmixi2の話題がどうなってるか確認するため
    #mixi2 って検索をしてみたら、みなさん平和にmixi2の招待コードを貼りまくっていた

    牧歌的だ・・・癒される・・・

    そうそう、人間の流れってどこかに集約してしまうのはあるあるネタだけど健全じゃなくって
    こうやって複数のSNSを話題ごとに使い分けていく方向性って大事だと思うんだよね
    nostrで漠然と話題を調べてmixi2で特定の人と深く交流するとか、やりたい

    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/506246734.html GridContainerでインベントリを埋めよう 例えば装備欄、こんな感じでデータを表示する項目があると思うんだけどこの名前、Value、+1、+1って書いてる部分ここは可変な文字を書く部分で、GodotとしてはLabelで埋めなきゃいけないここを手作業で24個Label配置するのは地獄だよね?何とかしましょう。GridContainerの出番だ ゲーム LoyalTouch 2024-12-13T06:32:25+09:00 <![CDATA[
    例えば装備欄、こんな感じでデータを表示する項目があると思うんだけど

    スクリーンショット 2024-12-13 222634.png

    この名前、Value、+1、+1って書いてる部分
    ここは可変な文字を書く部分で、GodotとしてはLabelで埋めなきゃいけない
    ここを手作業で24個Label配置するのは地獄だよね?

    何とかしましょう。GridContainerの出番だ


    GridContainerを使おう

    GridContainerは子ノードを格子状に配列する便利コンテナーだ
    今回の表は名前、効果値、命中補正、回避補正の4つの列があるので、
    インスペクターのColumnsを4に設定する
    あとはただただLabelをadd_childしていけば4列に整列されるんだけど

    スクリーンショット 2024-12-13 224233.png

    このままだと文字のサイズのままで詰まってしまう
    列の幅を何とか固定したいんだけど
    GridContainerにはそんなプロパティなさそう。どうしたら・・・

    困ったらChatGPTさんに聞こう

    こういう場合頼れるのはChatGPT
    助けてGPTえもん、GridContainerが不便だよ
    って聞くと
    スクリーンショット 2024-12-13 224456.png
    子ノードの方で制御するらしい!
    Labelのインスペクターを色々調べると
    Layout > Custom Minimum って設定箇所があった
    スクリーンショット 2024-12-13 224714.png
    おー、いいねえ。この値を罫線に合わせて適切に設定してみよう

    まずGridContainerの子に、行の1番上に4つだけLabelを定義する
    スクリーンショット 2024-12-13 224826.png
    それぞれ 160、90、40、40px程度にした

    こいつを5回コピーしてGridContainerの子に配置するといい
    コードはこんな感じ

    func add_line(target: GridContainer, count: int) -> void:
      var sources: Array[Label]
      for child in target.get_children():
        sources.append(child)

      for i in count:
        for src in sources:
          var dst = src.duplicate()
          dst.name = src.name + ("_%d" % [i])
          target.add_child(dst)

    最初のブロックは、先頭1行4列のLabelを読みこんで、sources配列に格納しているところだ
    続いてのブロックで、この先頭1行を第二引数で指定した分だけadd_childする
    よーし、これでちゃんと列の幅に合わせてLabelが配置されるぞ、と思ったら

    はみ出る文字列

    スクリーンショット 2024-12-13 225531.png

    文字列が短かい時は問題ないけど、長い時は圧迫しちゃうね
    Labelの列幅の最大値も指定したい場合はどうすればいいんだ

    っていう話だと、こっちはClip Textってプロパティがインスペクターにみつかった
    こいつをonにしてやると

    スクリーンショット 2024-12-14 070235.png

    あー、いい感じに収まりますね

    これにて完成!
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505969645.html レトロゲーム作成エンジン、pyxelで遊ぼう 最近はすっかり何か作るたびにGodotを立ち上げることが多くなったけど腕ならしに他のゲームエンジンを触ってみたくなることもあるわけで今回ちょっと気になったのでpyxelっていうのを触ってみたhttps://github.com/kitao/pyxel/blob/main/docs/README.ja.md見た感じ、SDLのpythonラッパーだねしかし、ドットエディタとかミュージックエディタが標準でついてくる面白! ゲーム LoyalTouch 2024-12-06T06:15:52+09:00 <![CDATA[
    最近はすっかり何か作るたびにGodotを立ち上げることが多くなったけど
    腕ならしに他のゲームエンジンを触ってみたくなることもあるわけで
    今回ちょっと気になったのでpyxelっていうのを触ってみた


    見た感じ、SDLのpythonラッパーだね
    しかし、ドットエディタとかミュージックエディタが標準でついてくる
    面白!


    インストールしてみよう

    インストールにはpython3とpip3が必要。Windowsでこの環境を揃えるのは結構な手間なんだけど
    今我々にはWSL2という強い味方がいる

    WSLでubuntuを立ち上げ

    公式ドキュメントに従い

    sudo apt install python-pip libsdl2-dev
    sudo pip3 install -U pyxel

    で、インストール可能

    pyxel copy_examples

    のコマンドを実行すると、カレントディレクトリにpyxel_examplesっていうフォルダーが生えてきて、
    このフォルダー内に色んなサンプルが出てくる

    pyxel run サンプル名

    の実行でサンプルで遊ぶことができるので、なるほどこういう感じか、という風に見て遊べる

    サンプルのソース見てみるか

    一番最初のサンプル、01_hello_pyxel.py を開いてみよう
    なるほど、ロゴがキラキラ光ってきれいな
    Game21.gif

    これ、どういうソースで実行されてるんだろうか
    いっちょ見てみよう

    importpyxel


    classApp:
        def__init__(self):
            pyxel.init(160, 120, title="Hello Pyxel")
            pyxel.images[0].load(0, 0, "assets/pyxel_logo_38x16.png")
            pyxel.run(self.update, self.draw)

        defupdate(self):
            ifpyxel.btnp(pyxel.KEY_Q):
                pyxel.quit()

        defdraw(self):
            pyxel.cls(0)
            pyxel.text(55, 41, "Hello, Pyxel!", pyxel.frame_count % 16)
            pyxel.blt(61, 66, 0, 0, 0, 38, 16)

    App()

    なるほど
    最初の__init__がおそらくコンストラクターで、
    ウィンドウのサイズやタイトルを決定して画像を読みこんだりしてるみたいだ

    次のupdate関数はQを押したら画面を終了するっていうのを表してるんだな
    恐らく、キー入力イベントなんかはこのupdate関数で処理するんだろう

    最後のdraw関数で描画、pyxel.textでHello, Pyxel!っていう文字を描くんだろうけど
    一番最後の pyxel.frame_count % 16 ってのは何か
    たぶんパレットの色だ。16色のパレット色だけがpyxelで使える色で、
    毎フレームごとに色を変えて描画する
    これでキラキラ光る文字の部分を作ってるんだな

    次のpyxel.bltがやや見なれないが
    bltってSDLでよく見る命令、画像を描画する奴だね!
    なるほどなるほど、ちょいとわかってきた。
    お次はpyxelの目玉、リソースエディタだ

    絵も音楽も作れる!

    このコマンドを起動すると

    pyxel edit hellopyxel.pyxres

    カレントフォルダーにhellopyxel.pyxresってファイルを作って、こんな感じの画面が出てくる
    もちろん最近のWSLでも画面が出てくる! ステキ!

    スクリーンショット 2024-12-07 173411.png

    8x8 16色のキャラクターをポチポチ描けるらしいんだけど、このミニマム具合がとってもなつかしいねえ
    昔MSXでDante作ってた時思い出すよ
    ちなみにグラフィックだけじゃなく、タイルマップや音楽も作れるらしい
    本当、これだけでちょっとしたゲームなら作れちゃうな!

    ゲームに組み込もう

    さて、パタパタアニメで動く主人公を作ったら、さっきのHelloWorldを改造しよう

    importpyxel

    classApp:
        def__init__(self):
            pyxel.init(160, 120, title="Hello Pyxel")
            pyxel.load("hellopyxel.pyxres")
            #pyxel.images[0].load(0, 0, "assets/pyxel_logo_38x16.png")
            pyxel.run(self.update, self.draw)
            pyxel.playm(0, loop=True)

        defupdate(self):
            ifpyxel.btnp(pyxel.KEY_Q):
                pyxel.quit()

        defdraw(self):
            pyxel.cls(0)
            pyxel.text(55, 41, "Hello, Pyxel!", pyxel.frame_count % 16)
            #pyxel.blt(61, 66, 0, 0, 0, 38, 16)
            pyxel.blt(61, 66, 0, 8 * (pyxel.frame_count // 4 % 2), 0, 8, 8)

    App()

    こう。さっき作ったばかりのリソースはpyxel.load("hellopyxel.pyxres")で読み込めるらしい
    そいつを描画するのがさっきも使ったblt

    pyxel.blt(61, 66, 0, 8 * (pyxel.frame_count // 4 % 2), 0, 8, 8)

    pyxel.frame_count % 2で、パタパタアニメできるんだけど、これだと60フレームで高速パタパタしてしまう
    //4などして速度調製するのがよさげ。ちなみに//はpythonの演算子で、整数切り捨てで値を返す除算らしい
    このソースを実行すると

    Game22.gif

    こう!

    godotとの使い分け

    なお、作ったゲームはWebでも公開できる
    godotにもWeb公開の機能はあるんだけど、すんげー重いんだよね
    本格的なゲーム作るんならgodotなんだろうけど
    こういうピクセルアート的なお手軽ゲーム作るならpyxel、いいんじゃないか!

    ただgodotもpyxelもpythonベースかぁ

    どなたか、rubyベースの奴作ってくれね?
    書きやすいんだよねruby

    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505846654.html イーロンマスク大暴れ、今度はゲームを作る イーロン・マスク氏、突如「AIゲームスタジオを立ち上げる」と表明。「ゲームを再び素晴らしいものにする」と意気込むhttps://automaton-media.com/articles/newsjp/elonmusk-20241128-319813/金持ってるからってやりたい放題だな! 人生楽しそうでいいわところでアメリカのIT業界とゲームって、相性いいようでかなり相性悪く、googleも手を出しては失敗してたりするhttp://nmksb.seesaa.net/articl.. ゲーム LoyalTouch 2024-11-29T06:33:42+09:00 <![CDATA[
    イーロン・マスク氏、突如「AIゲームスタジオを立ち上げる」と表明。「ゲームを再び素晴らしいものにする」と意気込む

    金持ってるからってやりたい放題だな! 人生楽しそうでいいわ

    ところでアメリカのIT業界とゲームって、相性いいようでかなり相性悪く、
    googleも手を出しては失敗してたりする


    かなり長く投資しなきゃいけないのに、アメリカのIT業界は飽き性で資金回収ができなかったらすぐ撤退するからだな
    そう考えるとMicrosoftはかなり頑張ってるわ。マインクラフトなんかも手に入れてしばらくは磐石だろうし
    さて、イーロンマスクのゲームスタジオはどういう展開を見せるんだろう
      

    AIってどういうことだよ

    まだ何一つ詳細が語られてないので、イーロンマスクがどんなゲームを作るのか全然わからんのだけど
    唯一キーワードとして聞こえてくるのがAIを活用したゲームスタジオ

    AIで何すんの?

    んまあ、ITとAIって技術的にかなり相性いいし、
    実のところ文化としても漫画や小説なんかと比べてゲーム作成現場ってかなりAIに優しい
    他の芸術分野、特に絵描き文化なんかAIにものすごく反発が強くて、俺らの絵を学習するなって反対運動がすごいんだけど
    ゲームって素材にAIの絵や音楽を使ってもあまり何も言われないし、プログラムのソースなんかは活用を推奨してるくらいだ

    ただ、そんなインディーズゲーム会社と同じことやるって話ならイーロンは参戦しないはず
    Xに投稿された大量の画像を使って、いい感じの素材を使ったゲームを作る?
    いやいや、そんなケチな事は考えてないだろう
    大量の文字データや会話を分析して、ものすごい自然な思考をするテーブルゲームを作ったり
    いやまたはAIがマスターしてくれて風景なんか自動生成してくれる没入型コンピューターTRPG作ったりするのかもしれん
    →何だコンピューターTRPGって用語。祖先のRPGからゴテゴテ修飾語ついて変な用語になってるな。まあ気にすんな!

    いやそういうの作ってくれたら買うわ。今までのイーロンの不信感は撤回する。ごめんなイーロン

    っていうことになるのかな・・・?

    本当に続けるんだろうか

    ただ、やや不安なのはイーロンは本当にゲームを作り続けるモチベーションがあるんだろうかってとこ
    というのもイーロンが手を出した事業、
    • Paypal(電子決済)
    • テスラ(電気自動車)
    • ソーラーシティ
    • 真空チューブ交通
    • ロボット
    みたいに、SFアニメに出てくるような見栄えのする事業に次から次へと手を出しては派手に新製品作るんだけど
    ある程度儲けたらそんな興味なくなるみたいで、Paypalなんか新しい機能全然作ってないし
    twitter改めXなんか変な改悪しかしてないしで、

    実際のところ、一番やりたいのはSpaceXで火星に行くこと
    その他の事業はそのための資金集めにすぎないんじゃないかって疑いがあるんだが・・・

    だってあいつSpaceXだけは上場してないし、ずっと火星行く火星行くって言いまくってるし
    ゲーム事業も今儲かりそうという嗅覚だけで参戦したのでは?

    実は俺のディアブロ作りたいだけ説

    あ、でも冒頭の記事内で
    ちなみにイーロン氏はゲーム好きとしても知られており、先日人気ポッドキャスト番組「Joe Rogan Experience」に出演した際には、『ディアブロ4』の高難易度コンテンツ「名匠の奈落」にて、タイムアタックの世界ランキングトップ20位以内に入っていると明かすなど、やり込みゲーマーの一面ものぞかせていた
    なんて書いてんな

    実はディアブロが好きすぎて、俺のディアブロを作ってみたくなっただけなんじゃないか
    なら、ずっと俺のWizardry作りたいって言ってる俺と同類じゃん・・・
    いやそういうの作ってくれたら買うわ。今までのイーロンの不信感は撤回する。ごめんなイーロン(2回目)
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505748016.html 地元じゃ無名なモンゴル版パトラッシュ?『スーホの白い馬の真実』 『スーホの白い馬』、国語の教科書に載ってるくらいなで、日本全国ほとんどの人が知ってますねだから大喜利で使えるんだなhttps://bokete.jp/boke/37194763スーホがまだチャンアカなのにそんなオイニーするの衝撃の展開に悲しくも余韻を残す結末、馬頭琴の由来が知れて勉強になるなどなど、結構盛り沢山な内容なんだけど、地元モンゴルの人に聞くと何それ・・・知らん・・・となるらしい。え、マジでじゃあそんな話がなぜ教科書に載るほど有名になったのか、元はどんな話だったのか、.. 読書 LoyalTouch 2024-11-22T06:41:28+09:00 <![CDATA[
    『スーホの白い馬』、国語の教科書に載ってるくらいなで、日本全国ほとんどの人が知ってますね
    だから大喜利で使えるんだな

    スクリーンショット 2024-11-22 063119.png


    スーホがまだチャンアカなのにそんなオイニーするの

    衝撃の展開に悲しくも余韻を残す結末、馬頭琴の由来が知れて勉強になる
    などなど、結構盛り沢山な内容なんだけど、地元モンゴルの人に聞くと

    何それ・・・知らん・・・

    となるらしい。え、マジで

    じゃあそんな話がなぜ教科書に載るほど有名になったのか、
    元はどんな話だったのか、そういうのを知れるのがこの本


    本場モンゴルの人が書いてるんでモンゴル人の感じる違和感なんかがかなりリアルに述べられてて面白かった!
    1章1章ごとにえ、マジでって事実が判明する驚きの書籍

    追記でネタバレ感想書くよ!
      
      
    モンゴル版フランダースの犬

    現地では全然知られてなくて日本でだけ異様に有名と言うと、フランダースの犬がよく知られてるんだけど
    本場ベルギーの人から見たら、風景がオランダに見えるとか、雪積もりすぎとか、
    原作では15歳の立派な準大人のわりに生活力なさすぎとか、
    とにかく散々な評判らしい


    この構図はスーホの白い馬も同じ
    本場モンゴルの人から見るとどうも違和感がすごいとのこと
    具体的に言うと
    • 夜暗くなるまで羊は放牧しない。夜中になると羊動かなくなるじゃん
    • 白馬が羊を守って狼と戦ってるみたいだけど、その前に番犬が戦うじゃん
    • 競馬大会の騎手ってちっちゃい子供しかやらないけど、殿様の婿にするには若すぎ
    • 競馬大会を春やってるっぽいけど春は去勢の時期で忙しいだろ
    • そもそもモンゴル人は追いつかないからって馬を弓で撃ったりしない。馬は大事だし人の乗ってない馬は人の乗ってる馬より遅い
    へー
    いや、そうなのかもしれないけど、日本人からしたらここら辺の話全然わからん

    ちなみにモンゴル人に自然な展開を聞くとどうなるかって言うと、
    馬を走らせすぎで窒息死させたんじゃない? って感想が出てくるらしい
    全然実感湧かんわ日本人からしたら。何だそれ走らせすぎると窒息死するっての

    そういや結構昔書いた書評で、人間は長距離走行に向いてるって話を書いた気がする
    気がするんだけど、これも二足歩行から派生した利点っぽいらしく、
    馬みたいに四足歩行の動物だと呼吸と走るリズムがシンクロしてしまうために長距離走ると呼吸ができなくなるそうな
    こんな所に話が繋がるのか・・・

    この手の違和感、日本人からすると
    アサシンクリードとかで畳が正方形とか神社で線香炊くとかそのレベルの話をしてるんだと思われる


    いやあ、まあでもこれ作者日本人だし、
    想像でモンゴルの風景を描いたらそりゃ色々失敗するよね
    って思ってたんだけど、これ日本人が0ベースで作った話じゃなくて
    中国人が書いた話らしい

    え、何でこうなったの

    あまりにも異文化、モンゴルの馬頭琴の話、中国の馬頭琴の話

    この話、元ネタがあって、1950年代に中国で出版された複数の書物に記載された馬頭琴っていうお話らしい
    なんでこの話を絵本にしたかって話なんだけど、絵を担当した赤羽末吉さんが昔満州に住んでいて、
    この風景を題材に描きたかったからなんだそうな。なるほどわからんでもない

    んで、その馬頭琴、当然中国人が書いた話だからモンゴル人が読んでも違和感ない話になるだろうと思うじゃん?
    原作の時点でかなりモンゴル人から見て変らしい
    いかに長年隣国として接してきた中国とモンゴルでも、相互理解は難しかったのか・・・

    じゃあ本場モンゴル人が違和感ない物語はどうなんだって話になる
    馬頭琴自体はモンゴルにあるものだし、これの由来を語る物語はどんなもんか
    一番有名な話フフーナムジルはこんな感じらしい・・・

    その昔、カッコウの鳴く声のような美声を持った青年ナムジルがいた。モンゴル語でカッコウのことはフフーと言うのでその名もフフーナムジル。
    彼は兵役のために遠くに旅に出て、その先で天女に出会い、数年を天女と過ごす
    しばらく過ごした後、故郷のことが恋しくなり、天女が止めるのを振り切り故郷へ帰る

    んー。なんだか浦島太郎に近いね。実は一番原作に近い浦島太郎も美男子で、乙姫様が亀に化けて龍宮城に連れていったって話らしいし
    いいよ、ここら辺は日本人にも理解できるストーリーラインだ。続きを見よう

    天女はナムジルに羽根の生えた馬ジョノン・ハルを贈る。この馬のおかげで、ナムジルは故郷にいる時も毎晩天女に会うことができて、幸せに暮しましたとさ

    という話で何だか浦島太郎よりハッピーエンドになっててよかった。乙姫も玉手箱みたいなのじゃなく高速移動する亀贈ってあげればよかったのに。というところだけど、ここから話が急転直下を迎える

    しかし故郷にはナムジルに恋心を抱く女性がいました。彼女はジョノン・ハルの秘密を知ると、嫉妬のあまり翼をもいで殺します

    はい???

    いきなりヤベェ女現れたんですが、モンゴル的にはこれでしっくり来るんですか?
    こういう役回り日本の昔話だと隣の爺さん婆さんがいい思いをしたから妬ましくなった婆さんくらいにしか割り当てられないんですが

    馬を失い天女にも会えなくなったナムジルは悲嘆に暮れましたが、ある時馬の革と尻尾の毛でギターを作り、上に馬の頭の彫刻をつけて弾きました。これが馬頭琴の始まりです

    おー、最後ちゃんとスーホの白い馬のオチになった。とはいえ、悪役が強欲な殿様じゃなくヤベェ女になってしまったことで読後感が全然違うんですが・・・
    というわけで、素のままの馬頭琴の物語だと全然日本の子供向けの話になじまないことがわかりました
    そりゃ色々アレンジするわな。中国人が書いたバージョンだとここら辺マイルドになってるんだろうか

    というわけで中国版馬頭琴の話も本書に紹介されてる。本書の冒頭あたりに、中国語版馬頭琴とスーホの白い馬を比較対照してる表があって、12個程度の相違点が上げられている、一番気になるのが11番、馬頭琴が出来上がった後なんだけど
    • 日本版スーホ : それをひくたびに、スーホは、白馬をころされたくやしさや、白馬にのって草原をかけ回った楽しさを思い出しました
    • 中国版馬頭琴 : 馬頭琴を弾く度に、スーホの中に殿様への憎しみがよみがえる
    おいここも不穏だぞ。どうも中国版は共産党の思想を強調するあまり殿様みたいなブルジョワジーへの反骨精神を強調する物語になってしまっているそうな。そもそもスーホという名前もモンゴル語ではスフ、これは共産党のシンボルの斧を指す言葉で、これが中国語で蘇和って書いたのを中国語読みしたものなんだそうな

    いかん、どの国の倫理観持ってきても教科書には載せられない
    これは大胆な日本アレンジしてもしかたない気がする

    まあでも悪くはないよって結び

    ただ散々アレンジしたのは日本の都合なんで、モンゴル人である本書の著者からしたら面白くない話なのかなって思ったら、
    そこまで悪印象はないらしい。最後に締めの話が書いてあった

    知られてない馬頭琴伝説について書く以上色々否定的な論調で書いたけどスーホの白い馬自体や中国語版馬頭琴の功績を否定するつもりはないし、満州国時代の日本とモンゴルの繋りを書き残す資料でもあるからきちんとしたことを知ってほしいだけだって言ってた
    いやバランス取れてていい結びですね

    俺の書評もこうありたいもんですよ
    散々茶化して書評書いてばっかだけど、読んだ本はいずれもよいものですよね(全然説得力のない結び。これが力量の差)
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505664804.html 他所からWSLにログインしてWindowsをLinuxサーバーにしよう うちにLinuxマシン一つあるんだけど、こいつは録画サーバーとして使ってるんで何かあった時に落ちるととても悲しいできればもう一つLinuxマシン作って、Dockerで色々立ち上げたりして遊びたいわけなんですがそんな遊んでるマシンいっぱい転がってるわけないしなーと思っていたところでふと思いついたんですが、最近Windowsに入ってるWSL、こいつがかなり使えるって話題じゃないですかWSLの中に入ってるLinuxを外部からログインできるようにしたら色々捗るんじゃない?なお、今回参.. インフラ LoyalTouch 2024-11-15T06:29:24+09:00 <![CDATA[
    うちにLinuxマシン一つあるんだけど、こいつは録画サーバーとして使ってるんで
    何かあった時に落ちるととても悲しい
    できればもう一つLinuxマシン作って、Dockerで色々立ち上げたりして遊びたいわけなんですが
    そんな遊んでるマシンいっぱい転がってるわけないしなー

    と思っていたところでふと思いついたんですが、
    最近Windowsに入ってるWSL、こいつがかなり使えるって話題じゃないですか
    WSLの中に入ってるLinuxを外部からログインできるようにしたら
    色々捗るんじゃない?

    なお、今回参考にしたURLはこちら


    まず基本的にどうしたらいいの

    WSLはWindowsの中のHyper-V、つまり仮想環境にLinuxを立ててる状態なんで、
    親マシンのWindowsのIPアドレス体系と別に仮想のIPアドレスがある感じ
    なんで、親マシンで通信を受けたら子マシンに伝達する、ポートフォワードが必要
    それをやってあげるのがnetshコマンド

    例えば親マシンが192.168.0.4ってIPアドレスで、子マシンのWSLが172.26.100.25だったとする
    このWSLにSSHでアクセスしたい。ポートはデフォルトの22で。そういう場合

    netsh interface portproxy add v4tov4 listenaddress=192.168.0.4 listenport=22 connectaddress=172.26.100.25 connectport=22

    こういうコマンドを、管理者権限のPowerShellで実行するとよいです
    んで、これだと親マシンのポート22が使えなくなって、ちょっと困るかもしれない
    んー、WindowsでSSHなんてあんま使わないから実は困らないかもしれない。でも気持ち悪いかも

    そういう場合、ポート10022で待ち受けたければ

    netsh interface portproxy add v4tov4 listenaddress=192.168.0.4 listenport=10022 connectaddress=172.26.100.25 connectport=22

    ってしてあげればOK
    これが基本的な流れ。なあんだ、たった1行でいいんじゃん
    って思うじゃん?

    接続先の子マシンのIPアドレス、マシン起動するたび毎回変わるんだなこれ
    何してくれるんじゃ

    毎回取得しに行こうぜ

    それじゃしょうがない、WSL側のIPアドレスを毎度取得しようぜっていう工夫が本文の引用先のURLの話です
    いやWSLのIPアドレス固定にできないの? って話だけど、できないらしい
    普通にHyper-V立てればいけるっぽいんだけど、それじゃ面倒臭えよな

    ということでWSL側で少し苦労しましょう。少しだけでいいんです

    まず接続したいWSLを規定にする。powershellで

    wsl -s Ubuntu-24.04

    とか、そんなコマンド打つ
    そんで、接続先のWSLでこういうシェルを書くわけだ

    ip address show eth0 | awk '/inet / {print $2}' | awk -F / '{print $1}'

    うわあ何じゃこりゃ
    awk怖い! 魔術!

    てなるけど、まあ分解すると
    ip address show eth0

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:15:5d:83:9b:b5 brd ff:ff:ff:ff:ff:ff
        inet 172.26.100.25/20 brd 172.26.111.255 scope global eth0
            valid_lft forever preferred_lft forever
        inet6 fe80::215:5dff:fe83:9bb5/64 scope link
            valid_lft forever preferred_lft forever

    って感じでネットワーク情報をずらずら出してくるんで、そいつの文字列情報を切り貼りして
    青文字の部分だけを持ってくるのが | awk '/inet / {print $2}' | awk -F / '{print $1}' っていうawkなんだな

    これを適当な場所、例えば /usr/local/bin/getip.sh って場所に保存して
    PowerShellで

    bash /usr/local/bin/getip.sh

    って実行してやれば、WSL側のIPが得られる

    親側も取得しようぜ

    一方、親マシンもわりとdhcpでアドレス取っているんで、起動のたびにIP変わったりする
    そいつについてはPowerShellで結構簡単に取得できる。そのスクリプトはこれだ

    (Get-NetIPAddress | where{$_.InterfaceAlias -eq "イーサネット" -and $_.AddressFamily -eq "IPv4"}).IPAddress

    はいこれも黒魔術。何やってるか全然わからないっすね。分解していこう
    まずGet-NetIPAddressで得られるのは

    IPAddress : 192.168.1.18
    InterfaceIndex : 16
    InterfaceAlias : Wi-Fi
    AddressFamily : IPv4
    Type : Unicast
    PrefixLength : 24
    PrefixOrigin : Dhcp
    SuffixOrigin : Dhcp
    AddressState : Preferred
    ValidLifetime : 21:34:30
    PreferredLifetime : 21:34:30
    SkipAsSource : False
    PolicyStore : ActiveStore
    ...

    こんな感じのリストだ。IP以外もいっぱい情報ついてくるのはWSL側と一緒なんだけど、
    PowerShellはLinuxのshellと違ってこの値をちゃんと連想配列で返してくれる
    だから、素直に絞りこみとかを使って情報取得できる。素敵!

    絞り込みはInterfaceAliasおよびAddressFamilyで行う
    Get-NetIPAddressやってみればわかるけど、本番のIPアドレスの他にDocker用の仮想IPアドレスとか
    Bluetoothアダプタとか、そういういらないものがずらずら取れるので
    $_.InterfaceAlias -eq "イーサネット"
    って条件をつけておかないと複数表示されちゃう
    また、IPv6の値とかが取れることもあるので、
    $_.AddressFamily -eq "IPv4"
    こちらの条件も必須だ

    この2つを条件につけた命令が、さきほどのPowerShellというわけだな

    一発アクセスPowerShellの完成

    こうやってIPを自動取得して作ったPowerShellがこちら

    $WSL2_IPV4=bash /usr/local/bin/getip.sh
    $HOST_IPV4=(Get-NetIPAddress | where{$_.InterfaceAlias -eq "イーサネット" -and $_.AddressFamily -eq "IPv4"}).IPAddress
    netsh interface portproxy delete v4tov4 listenport=10022 # 古い設定を削除
    netsh interface portproxy add v4tov4 listenaddress=$HOST_IPV4 listenport=10022 connectaddress=$WSL2_IPV4 connectport=22

    紹介先URLでは、これをタスクスケジューラに組み込んで勝手に実行とかさせてたけど
    今んとこそこまでは不要かな
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505581187.html 振り向けば奴がいる・・・テレサロジックの実装 マリオのテレサのように、こちらを向いていない時だけ追いかけてくる敵を実装したい場合どうすればいいのか、今回はここをやっていきましょう後ろを向くと襲いかかってくる!ただ、見下ろし型アクションなので、マリオと違って上下左右、90度ごとの判定をしなきゃいけないよ ゲーム LoyalTouch 2024-11-08T06:31:06+09:00 <![CDATA[
    マリオのテレサのように、こちらを向いていない時だけ追いかけてくる敵を実装したい場合
    どうすればいいのか、今回はここをやっていきましょう

    game11.gif

    後ろを向くと襲いかかってくる!

    ただ、見下ろし型アクションなので、マリオと違って上下左右、90度ごとの判定をしなきゃいけないよ


    プレイヤーに近づくコード

    無条件にプレイヤーに近づくのは、こんな風に書けばいい

    velocity = (player.position - position).normalized() * speed
    move_and_slide()

    1行目は
    • プレイヤーと敵の座標の差分を計算
    • normalized()で大きさを1に合わせる
    • speedを掛け算して任意のスピードにする
    ってことをやっていて、2行目は1行目で計算した移動量に合わせて、
    当たり判定も含めていい感じに移動させてくれる魔法の関数

    これでプレイヤーに近づいてくれる

    こっちを向いたら止まって

    ではプレイヤーが自分の方向を向いているというのはどう表現するのか
    angle_to を使います

    var target_length = player.position - position
    var angle_diff = rad_to_deg(player.direction.angle_to(target_length))

    player.directionは、今プレイヤーが向いている向き。値としては
    • 右(1, 0)
    • 左(-1, 0)
    • 上(0, -1)
    • 下(0, 1)
    の4つを取る
    このベクトルとプレイヤーと敵の差のベクトルの角度を取るのが、angle_toだ
    取る値はラジアンで、このままではすごく使いづらいのでrad_to_degで360度に変換する

    で、これが±135度以内だったら、追いかけてくるようにするとよい
    つまりこうだね

    if abs(angle_diff) < 135:
      velocity = target_length.normalized() * Speed
    else:
      velocity = Vector2.ZERO
    move_and_slide()

    これで45度以上だと追いかけてくる!
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505480781.html 弾を跳ね返す Godotでパズル性のあるアクションゲームを作ってます倒すのに少し工夫が必要な敵なんかを作っていて、遠くから狙うと倒せるけど、近くで弾を射つとガードして弾を跳ね返す敵なんて面白いもんを作ろうとしてますどうやって実現しようね ゲーム LoyalTouch 2024-11-01T06:22:01+09:00 <![CDATA[
    Godotでパズル性のあるアクションゲームを作ってます
    倒すのに少し工夫が必要な敵なんかを作っていて、
    遠くから狙うと倒せるけど、近くで弾を射つとガードして弾を跳ね返す敵なんて
    面白いもんを作ろうとしてます

    どうやって実現しようね


    単純に弾を跳ね返してみよう

    まず単純に跳ね返すだけなら簡単だ。
    弾はvelocityって言って移動量のベクトルを持ってるんだから、
    何かしら関数を用意して

    bullet.velocity *= -1

    とかしてやれば真逆の方向に行く
    game7.gif

    でも、単純にこれじゃ面白くないわな

    斜めに打った弾を90度跳ね返す

    これをできるようにするとかなりパズルチックになると思うんですよ

    game8.gif

    これはどう実現するか。横から当たったらX軸だけ反転、縦から当たったらY軸だけ反転すればいいと思われる。
    ベクトル演算で言えば

    • 横から当たった場合 : bullet.verocity *= Vector2(-1, 1)
    • 縦から当たった場合 : bullet.verocity *= Vector2(1, -1)

    でオッケー
    縦から当たったか横から当たったかって知りたい場合はどうするのか。
    これは、弾と当たった対象の座標の差を調べればOK、つまりベクトルの差を取るんだな

    var counter_position = bullet.position - position

    これが、x軸の絶対値の方が大きければ、横に当たってて、y軸の絶対値の方が大きければ縦に当たってるってわかる
    つまり

    var counter_vector
    if abs(counter_position.x) > abs(counter_position.y):
      counter_vector = Vector2(-1, 1)
    else:
      counter_vector = Vector2(1, -1)
    bullet.verocity *= counter_vector

    こうやればOK
    正味if文の部分はもっと計算式にすればかっこいいんだろうけど、俺にわかりやすいコードはここまでなんでこれで勘弁

    これでどんなパズルができるのかな

    んじゃナナメに弾が跳ね返って何が楽しいのよって話だけど
    こういう挙動でないと解決できないパズル、いくつか作れるよね
    例えばこんな風に、近くで破壊しようとすると爆風に巻きこまれて死んでしまうパズル
    近づかないと弾が打てないかと思いきや・・・
    game9.gif

    こんな感じで跳ね返せば遠くから打てる! とか

    game10.gif

    色々応用が効くと思うんだなー
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505370069.html スマホ版Wizardry ダフネ が出た 2024/10/15ローンチの新作スマホアプリWizardry Variants Daphneだそうです!https://wizardry.info/daphne/PS5とかsteamで狂王の試練場#1のリメイクが出てたりしてここんとこWizardryのリメイクがブームだねぃスマホだけに基本無料プレイ、俺も期待してプレイしてみたぜ今のところの感想は好きだけどこれはWizardryなのか? ゲーム LoyalTouch 2024-10-25T06:23:43+09:00 <![CDATA[
    2024/10/15ローンチの新作スマホアプリ
    Wizardry Variants Daphneだそうです!


    PS5とかsteamで狂王の試練場#1のリメイクが出てたりして
    ここんとこWizardryのリメイクがブームだねぃ

    スマホだけに基本無料プレイ、俺も期待してプレイしてみたぜ
    今のところの感想は好きだけどこれはWizardryなのか?


    キャラメイクができないぞ?

    まず最初にキャラ作成する時なんだけど、いつものように種族性格を決めボーナスをもらって特性値に追加していくパターンじゃなく
    最初に何個か質問に答えて、それに従ってパラメーターが決まっていくタイプだった
    これ、古くはウルティマの職業選び、近くはドラクエ3の性格選びだな
    RPGによくあるタイプなんだけど、Wizardryでこれを採用するとはー

    その後もキャラメイクのタイミングは特になく、
    仲間と言えば迷宮に転がってたり骨集め男から買う骨を復活させて仲間にするという方法しかない
    ただ、仲間にしたばかりのキャラは10未満のボーナスポイントを割り振ることができて、
    種族や性格は決められないものの、ここはWizardryの片鱗を見せてくれてた

    職業が自由に選べないっていうのはなかなか厳しくて、例えば今の俺のパーティーだと
    魔法使いが一人もいないんだよな
    • 主人公
    • 戦士
    • 戦士
    • 僧侶
    • 盗賊
    • 盗賊
    みたいなパーティー、ちなみに主人公の職業も選べない。いやまあ、仲間の職業選択ミスしたら
    主人公の力で何とかしなきゃいけないからな。ドラクエ3で勇者がかならずいるようなもんで、救済措置の一種かなこれ
    んー、カティノとか使えなくて大丈夫なんだろうかこのパーティー

    Wizらしさとは

    こいつをWizardryと呼ぶ意味は・・・と思ったんだけど、よくよく考えたらWizardryって別にキャラメイクして職業選んで転職するゲームってわけでもないか。つーのも、ファンの間で賛否両論のWizardry #4 ワードナの逆襲の存在があるからだ。

    こいつは全然Wizardry然としてない
    主人公はワードナ、キャラメイクどころか味方はモンスターを召喚する、レベルアップの概念がないなど
    今までのシステム全無視のゲームなんだけど、俺としてはちゃんとWizardryだと思ってる

    なんでかって言うと世界観を共有してるからだ。何たってワードナが主人公だし、
    敵はかつて自分達が使ってたパーティーメンバーだし

    だからシステム的には今回のダフネ、ワードナの逆襲にやや#1~#3を混ぜたようなもので、
    どっちかって言うとスタンダードなWizardryに近づいてはいるんだよね
    でもここまで世界観が違って、しかもシステムも異なるとなると、これはWizardryでいいのか・・・

    俺はこのシステムでWizardryの名を冠するなら、
    フラックの逆襲
    主人公はマーフィーズゴーストを3体率いるフラックさんです
    迷宮内に散在するフードをかぶった人間型の彫像をみつけ、お香を炊いてあげてください
    金色の光を発しながらいろんなナニガスズゴーストがあらわれます
    こいつらを次々に召喚しながら地上を目指してください

    そう、これならWizardryっぽい気がするんだけどどうすかね!

    まあでも楽しいよ

    とはいえ、スマホで基本プレイ無料にするんなら
    パーティーメンバーは召喚でガチャで・・・ってしないと収益出ないから
    スマホ版にするんならこのやり方で正しいと思うよ

    何よりまた3D迷宮を楽しめるんで、Wizardryの名前はいったん忘れて、ハードな迷宮探索を楽しもう
    首を撥ねられた! 石の中にいる!
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505257791.html Inkscapeがバージョンアップしたよ! 無償の高機能ドローソフト「Inkscape 1.4」が公開 ~カスタマイズ性を拡充 - 窓の杜 (impress.co.jp)だそうな!今回のバージョンアップ、主に文字関連のバージョンアップらしく、ゲームでロゴ作成に活用してた俺にとっては気になる改善 ゲーム LoyalTouch 2024-10-18T06:33:18+09:00 <![CDATA[
    だそうな!
    今回のバージョンアップ、主に文字関連のバージョンアップらしく、
    ゲームでロゴ作成に活用してた俺にとっては気になる改善


    統合フォントブラウザーが便利

    まず目につく修正としてはこちら。
    フォントの変更がその場で確認できるようになっている

    スクリーンショット 2024-10-19 220336.png

    前は右下のウィンドウでちまちま確認してから反映しなきゃいけなかったのが

    文字表示したい場所その場ですぐ反映されるようになったって奴ー!

    スクリーンショット 2024-10-19 221238.png
    特に文字幅がどうなってるのか、今まで全然わからなかったんで、これ便利だよね!

    まあ、冒頭の紹介記事によると

    ただし、まだ試験機能という扱いになっており、初期設定では無効になっている。利用の際は[編集]-[環境設定]ダイアログの[インターフェイス]-[ウィンドウ]ページでオプションを有効化し、「Inkscape」を再起動させる必要がある。

    だそうなんで、まだ何かバグ残ってるらしいけど、まあ便利だしぃ

    その他気になる奴

    文字関係では、SVGフォントエディター
    スクリーンショット 2024-10-19 223257.png
    って機能がデカデカと乗ってて、これ何だろうってのがすげぇ気になるんだよね
    気になるは気になるんだけど、今のところ使いかたがわからず、調査中・・・
    これわかったら記事にするわー
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505143497.html スマホを換えたよ! HTC Desire 22 pro Galaxy S20が、充電できなくなったまあ正確に言うと、完全に充電できないんじゃなくてqiからの充電はできるもののUSBからの充電ができなくなったんです身近にqiの充電器がそんなあるわけでもないので、これはかなりの痛手なんとか数ヶ月は使ってたものの、ついに耐えきれなくなって買いました前回買ったのは3年前らしく、どうも3年で買い換えてる模様んー、3年が限界なのかな?http://nmksb.seesaa.net/article/481828446.htmlとにかく困ってたん.. 日記 LoyalTouch 2024-10-11T06:40:52+09:00 <![CDATA[
    Galaxy S20が、充電できなくなった
    まあ正確に言うと、完全に充電できないんじゃなくて
    qiからの充電はできるもののUSBからの充電ができなくなったんです

    身近にqiの充電器がそんなあるわけでもないので、これはかなりの痛手
    なんとか数ヶ月は使ってたものの、ついに耐えきれなくなって買いました

    前回買ったのは3年前らしく、どうも3年で買い換えてる模様
    んー、3年が限界なのかな?


    とにかく困ってたんで、同じくqiが使えて安い、20000円弱の型落ち品を買ったんだけど
    結果、思ったより使えます


    必要な装備は全部入り!

    俺のスマホ選定で必要だったのはFelicaとQiなんだけど、こいつは両方とも入ってた
    何だったらQiはあきらめて、外付けのアダプター付けようかと思ってたんだけど
    けっこう普通に使えてよかったわー

    あと、諦めてたので入れられてよかったのはsimとmicrosd
    simはesimかと思って色々手続大変だなー、って思ってたら
    普通にsimカード差す部分あって、ここに入れたらAPNの設定とか何もなしに普通に動いたんでこりゃすげえってなった
    あと、simカード2枚目とmicrosdが排他って書いてたの、勘違いしててmicrosd使うにはesimにしなきゃいけないのかと思ってたんだけど
    カードスロットの両面にsimカードとmicrosdをそれぞれ差したら普通に使えたわ

    まあmicrosdもsimカードも、スロットを使うということは壊れるってことだから
    本来はないにこしたことはないだけど
    俺、動画とか撮り貯めちゃってるもんなぁ・・・

    ちなみに、sim+microsdカードスロットは押しピンで押して開けるタイプじゃなくて
    爪で開けられる細い穴があってそこから出せるタイプ
    工具要らずはいいね!

    お引越しが結構簡単になってた

    ちなみにいつもスマホを換える時にわちゃわちゃやらなきゃいけないお引っ越し
    これが前回やった時より結構簡単になってる気がするぞ?

    一番面倒かなーって思ってたのが電子マネー関連
    俺が使ってる電子マネーはこんだけあるんだけど、だいたいおサイフケータイアプリを起点として
    そこから機種変更手続すればよかった
    • waon → 機種変更をお考えの方は_こちら_ → 登録情報の確認(氏名、生年月日、電話番号) → 機種変更パスワード発行 → センターに保管
    • suica → 会員メニュー → カードを預ける → おサイフケータイアプリ → 受け取る
    • nanaco → メニュー(3点アイコン) → カード設定 → 機種変更(nanacoの引き継ぎ) → 引継番号を発行する → 7idのパスワード
    • id → dカードアプリ → おサイフケータイ設定 → d払い設定(dアカウントパスキー)
    • edy → ハンバーガーメニュー → 機種変更の手続き
    やや面倒なのが各種銀行のワンタイムパスワード
    paypay銀行なんかはトークンアプリを使うために24時間待たなきゃいけなくて、
    ああ、これやっとかないと詐欺とかに使われるんだなってわかってちょっと面白かった。いや面白がるな

    なお、simで電話番号をつながないと引きつぎできないものがあるかと思ってたんだけど
    そいつはdocomoのdアカウントパスキーくらいのものだった
    一度dアカウントパスキーを端末に保存しとけば、その次からはパスキーのアプリ側で認証するらしい
    いや、なかなか考えられてるね。再々モバイルネットワークに繋いで認証するの嫌だもんね確かに

    その他のアプリはだいたいアカウントとパスワードさえ知っておけば
    再ログインできるもんばっかなので、むしろkeepassを忘れるな! だけ覚えとけばOKだった

    やや残念なところ

    画面が暗いな? ってのはちょっと残念なとこだけど
    こいつは有機ELじゃなく液晶だかららしい。いつのまに有機ELに目が慣れてしまった・・・
    まあ型落ちのミドルクラスマシンだからしょうがないね。老後にリッチになったら5万のスマホ買うよ

    あと、喜び勇んでmagsafe使ったら結構これスマホ熱くなるんですが大丈夫かこれ
    常用すると痛むな、普段はUSB使うか ←本末転倒な様子

    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/505063420.html ItemListを素直に使ってみる 色々便利なものを知らないで頑張って作っちゃってますね。Godot今回はItemListを知らなかったので、こいつを使ってみましたどんなのかって言うとこんな感じでボックスの中にテキストがあってそれを選択する感じのやつマウスを近づけたりキー操作したりすると、そのアイテムが選ばれます今までこれなしでどうやってたの? って言われるとBoxContainerにLabelを追加してやりくりしたりもっと昔にはLabelを直接特定座標に描画したりなぜそこまで苦労していたのか・・・ ゲーム LoyalTouch 2024-10-04T06:23:46+09:00 <![CDATA[
    色々便利なものを知らないで頑張って作っちゃってますね。Godot
    今回はItemListを知らなかったので、こいつを使ってみました
    どんなのかって言うと

    スクリーンショット 2024-10-04 061736.png

    こんな感じでボックスの中にテキストがあってそれを選択する感じのやつ
    マウスを近づけたりキー操作したりすると、そのアイテムが選ばれます

    スクリーンショット 2024-10-04 061912.png

    今までこれなしでどうやってたの? って言われると

    BoxContainerにLabelを追加してやりくりしたり
    もっと昔にはLabelを直接特定座標に描画したり

    なぜそこまで苦労していたのか・・・


    基本の使い方

    基本的には、インスペクターのItemsプロパティのTextの部分に
    選択肢となる文字列を入れていくといい

    スクリーンショット 2024-10-05 153911.png

    今回はSTAGE1とかSTAGE2とか、そういう名前になるはず

    現在選択している値の取得の方法は、ちょっとこれでふさわしいのかわからない

    まず上下キーとかマウスクリックで該当の場所を選択すると、item_selectedシグナルが発火されるので
    任意のオブジェクトのスクリプトにそれを繋げると、動作する

    んだけど、そうすると上下キー押しただけでステージ選択されちゃうんだよな
    俺はステージを上下キーで選択した後、スペースキーとかでステージ決定したいんだが

    そういう時は、インデックス値だけ変更するようにして

    func _on_item_list_item_selected(index):
      selindex = index

    関数呼ばれたら現在のインデックスに相当するテキストを返す関数を作って

    func get_selection_value() -> String:
      if 0 <= selindex and selindex < %ItemList.get_item_count():
        return %ItemList.get_item_text(selindex)
      return ""

    別の、例えばメインロジックあたりで _input(event)から、この get_selection_value()を呼び出せばいい

    func _input(event):
      if event.is_action_pressed("ui_select"):
        if(stage is Opening):
          var key_name = (stage as Opening).get_selection_value()
          if key_name != "":
            set_stage(key_name)

    んだけど、これ何だかスマートでないよね。もっといい方法ないんか・・・

    カスタマイズ方法

    基本は黒い半透明の背景があって、そこに白い文字で書いていればいいんだけど
    背景白くしたいとか、文字変えたいとか、そういう場合は
    インスペクターのTheme Overrides の部分で変えるらしい

    背景はStyles → Panel とかだね。ここを青い半透明にしたら

    スクリーンショット 2024-10-06 092524.png

    選択肢の背景も青い半透明になる

    スクリーンショット 2024-10-06 092640.png

    フォントとかもここでいじれるはず

    インスペクター → Items → Iconに画像を設定すると

    スクリーンショット 2024-10-06 092917.png

    こうやってアイコンもつけれる。
    ]]><![CDATA[ ]]>
    http://nmksb.seesaa.net/article/504983567.html ゴーストオブヨーテイがやってくる。ゴーストオブツシマの続編! 来年発売らしいですね!https://blog.ja.playstation.com/2024/09/25/20240925-goy/ゴーストオブツシマと言えば、オープンワールド時代劇アクションっていうどう考えても地味にしかなりようのない世界設定でスマッシュヒットを叩き出した名作俺もクリアまでやったけど、一撃必殺のチャンバラ感がすごい出てて緊張感もありつつほどよい難易度に仕上がっててよかったわーそして次の舞台は俺の地元の北海道!羊蹄山と言えば京極ふきだし公園、子供の頃親にさん.. ゲーム LoyalTouch 2024-09-27T06:43:08+09:00 <![CDATA[
    来年発売らしいですね!


    ゴーストオブツシマと言えば、オープンワールド時代劇アクションっていう
    どう考えても地味にしかなりようのない世界設定で
    スマッシュヒットを叩き出した名作

    俺もクリアまでやったけど、一撃必殺のチャンバラ感がすごい出てて
    緊張感もありつつほどよい難易度に仕上がっててよかったわー

    そして次の舞台は俺の地元の北海道!
    羊蹄山と言えば京極ふきだし公園、子供の頃親にさんざんつれていってもらった場所で
    思い入れも強くて、これは今から期待できるぞ


    どういう時代の奴?

    一般的に日本の時代劇と言えば江戸時代を舞台にすると思うんだけど、
    前のゴーストオブツシマもモンゴル襲来の時代の対馬という、ニッチもいいところを攻めてきた
    今回の作品も、マイナーもマイナー、1603年の北海道らしい
    どういう時代なんだよ

    ざっくり調べた感じ、北海道でその当時記録されていたことはこんなもんだ
    • 14世紀初頭(ゴーストオブツシマから100年後あたり)、北海道には日ノ本、唐子、渡党の3種の原住民がいた
      • 渡党は道南に住んでいて日本語が通じる。このころ和人も道南に進出し、12個の拠点を持っていた
      • 唐子は日本海側にかけて住んでいて、サハリンを通じて中国と交易したりしてた
      • 日ノ本は太平洋側にかけて住んでいる。たぶんトビニタイ文化←オホーツク文化の末裔?
    • 1457年、コシャマインの戦いが発生。道南に12個の拠点を持っていた和人が2個にまで減る。以降和人とアイヌで100年くらい戦争する
    • 1550年、夷狄の商舶往還の法度が取り決められ、100年戦争が収束。道南の狭い地域を除いて和人は立ち入らないことにする
      • 唐子の後継集団の長はハシタイン
      • 日ノ本の後継集団の長はチコモタイン
    • 1603年、ゴーストオブヨーテイの時代
    • 1669年、メナシクルとシュムクルというアイヌの集団の戦争の仲裁に失敗した松前藩がメナシクルの長シャクシャインに攻められる。シャクシャインの戦い
      • メナシクルは日ノ本の後継集団と思われる
      • シュムクルは本州から渡来してきたという伝説を持つアイヌ集団。他の集団にはこの伝説は見られない←何者?
    • 以降、北海道内においてアイヌの地位が劣勢となる
    wikiとかから調べた


    こんな感じ。なんで、ゴーストオブヨーテイの時代って100年くらいアイヌと和人が戦って和人側不利の条件で和睦、そっからシャクシャインの戦いまでアイヌが優勢だった時代なんだね
    この感じでどうやって侍チャンバラアクションをやるんだ・・・

    女性主人公でどうなる温泉

    ところでトレイラーを見ると主人公の名前はアツ、お尋ねものの女性剣客らしいね
    いやそんな無茶な設定あるか、と言いたいとこだけど、別にゴーストオブツシマにも
    ゆな・政子殿・巴みたいな女武芸者山ほど出てたし
    そこは気にしなくていいや

    問題は前作主人公、仁君が体力回復場所の温泉で散々晒してたプリケツだ
    あれがあってこそのゴーストオブツシマでしょ?←言いすぎ
    スクリーンショット 2024-09-29 214635.png

    さすがにアツさんでプリケツやるのは厳しいんでは
    ゴーストの湯気で隠すのか

    ゴーストオブ由美かおる・・・

    北海道で期待されること

    ちなみに舞台が北海道ということで、わりとみなさんに人気の土地北海道、色んな期待がTiwtterで上げられてる

    ゴールデンカムイと絡める人
    スクリーンショット 2024-09-29 215315.png

    水曜どうでしょうと絡める人
    スクリーンショット 2024-09-29 215424.png
    やっぱどう調理しても美味しいな!

    俺は、そうだな、どうせ地元だし
    手稲のマスコットキャラクターていぬ君とコラボをだな

    スクリーンショット 2024-09-29 215659.png

    ・・・うん、ダメだなこのセンス

    ]]><![CDATA[ ]]>