おじさんの毎日

おじさんですぅ

GGSTを今から始める方へ!とりあえず覚えときゃいいポイント!!

どうもこんにちは。おじさんです。
最近GGSTに大型アプデがきて蔵土縁紗夢が追加されたりゲームシステムが一新したりしましたね。
これを機にguilty gearを始めようと思った方がたくさんいると思います。


そこで、ギルティギアを触ったことのない初心者さんたちに向けて、
今回は、これ覚えときゃ楽しめる!GGSTのポイントについて解説していきます!!





ゲームプレイ



まずは実際に戦うために覚えておいた方がよいことを説明していきます。
とりあえずこれさえ覚えときゃ戦えるポイントは

  1. コンボ
  2. 基礎システム



この二つだと思います。一つずつ解説していきます。



コンボ



まずこれができないと話は始まりません。

コンボを覚えることで一撃一撃のリターンが爆上がりします。
なぜなら100HPの敵がいたとして5ダメージを20回当てるより、50ダメージを2回当てる方が簡単で、楽だからです。
これだけで初心者帯では勝率を上げることができます。


それではコンボを覚えていきましょう!


 まずはキャラ決め

まずはここから始まります。
選ぶ基準はマジでなんでもいいです。見た目が好きだったり、プロゲーマーがおすすめしてたり。
いろいろあると思いますが、おすすめはやはり簡単なキャラから入るのがよいと思います。





目安としてはここの星が4以上あるとよいと思います。
決めたら次のステップへまいります


 コンボ探し

次にコンボの探し方です。





まずメインメニューに行って、「DOJO」から「COMBO SEARCH」を選択します。
そしたら「おすすめコンボ」の欄から自分の使いたいキャラを選んで選択します。
そうするとコンボレシピが5件ダウンロードされるのでそれをまずは覚えましょう!

これを覚えれば最低限戦えます。
皿にコンボ覚えたい方はYOUTUBEなどで検索してください



基礎システム



次にシステムを覚えていきます。





まず先ほどと同じようにメインメニューに行って「DOJO」を選択してから「TUTORIAL」、、、ではなく「MISSON」を選択してください。
チュートリアルは本当に基礎的な操作しか乗っておらず、格ゲー未経験者はともかく、経験者の方には参考にならないと思います。(見てはいいと思う)





ミッションを選択したらこのようなマップが出てくると思うので、経験者の方はフォレストエリアから始めるとよいと思います。
フォレストエリアからではバーストゲージやテンションゲージを用いた有効な攻防を学ぶことができます。
ココを完璧にクリアできればもうギルティギアの基礎は完璧といっても過言ではないでしょう!!



まとめ



まとめです

  • コンボと基礎システムさえ覚えれば楽しいよ

Unity6でのProbuilderセットアップ超入門。

こんにちは、おじさんです。
今回は、Unity上でモデリングをすることのできるProbuilderのセットアップについて解説してきます。





Probuilderのインストール



まずはProbuilderのインストールです。
Unityエディタを開いてもらって上のバーの「Window」から「Package Management」を選択し「Package Manager」を開いてください。





そしたらこのようなウィンドウが出てくると思うので、左の欄から「Unity Registry」を選択。
選択をするとアセット一覧がたくさん出てくるので下にスクロールしていき「ProBuilder」を探してください。
見つけたらProbuilderをクリックすると右側にインストールボタンがあるのでそれをクリックして少し待てばインストールの完了です。

私はすでにインストールをしているので出てきませんが、本来はここにインストールボタンが出てくるはずです。



Probuilderを使いやすくする



Unity5まではprobuilder専用のウィンドウがあったのですが、なんと6になってからそれが消えてしまいました。
そのため操作性が5に比べて下がってしまっています。
なのでUI配置をいじってProbuilderを使いやすくしていこうと思います。

まずエディタ画面を開いてください。





とりあえずProBuilderを動かすための最低限のUIだけを表示させていきたいと思います。
エディタのシーンビューの左下にこんな感じのバーがあると思うので私は丸で囲ってる奴だけを表示してます。


左から

  • モデリングやオブジェクトを操作するためのツール
  • ゲームビューの操作とProbuilder操作の切り替え
  • probuilderの操作設定
  • カメラの視点操作



です。
お好みで表示するのを増やしてもいいと思います。



実際に使ってみる



次に実際に使ってきたいと思います。





まず「Tools」バーの「Create Cube」をクリックしてください。
そうするとマウスカーソルに黄色い四角がついてくると思います。


そしたらマウスの左クリックを長押ししてみてください。
クリックをしたところが図形の底面の始点となります。そっからマウスを動かして底面の大きさを決めます。

底面の大きさを決めたら長押しを解除します。
そうすると次に図形の高さを決めます。図形の高さが決まったら左クリックをして図形の作成は完了です。





そうすると「Tool Context」バーにProbuilderモードに切り替えるボタンがあるのでそれを押してください。
そうすることでProBuilderによるモデリングを開始することができます。



まとめ



今回はUnity6でのprobuilderのセットアップについて説明しました。
probuilderの古いバージョンのインストールや詳しい操作についても今後説明していこうと思います。

for文内にfetch書きたい時どうするか。

覚書です。



間違えたやつ



これが間違えたコードです。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    var articleDate, articlePath;

    for(var i = 0; i < r.length; i++) {
        articleDate = r[i].date;
        articlePath = r[i].path;
    
        fetch(articlePath)
        .then(response => response.text())
        .then(htmlString => {
            const parser = new DOMParser();
            const doc = parser.parseFromString(htmlString, "text/html");

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



これrって変数に入ってるJSONデータをfetch内で使いたかったんですけど、
fetch内でのarticleDateとarticlePathの中身が全部最後の要素になってしまってました。



これの原因がFetch文の仕様にあって、fetch文はいわゆる「非同期処理」というもので

非同期処理とは、あるタスクを実行をしている際に、他のタスクが別の処理を実行できる方式のことをいいます。 データベースから値を取得する際、通信状況によって取得まで時間がかかる処理とされています。 この時間のかかる処理を、シングルスレッドで実行すると、実行中は他のタスクを行うことができなくなります

Wantedly より



っていう感じになってます。
つまりFetchが実行している最中は何か処理することができないのです。
だからfor文のループがfetchを無視してしまい、fetch文を実行したときにはfor文のループが終わってしまっているっていうことです。



解決策



解決策です。
forループでletを使って変数を定義しましょう。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    for(var i = 0; i < r.length; i++) {
        let articleDate = r[i].date;
        let articlePath = r[i].path;
    
        fetch(articlePath)
        .then(response => response.text())
        .then(htmlString => {
            const parser = new DOMParser();
            const doc = parser.parseFromString(htmlString, "text/html");

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



これでOK。

「innerHTML指定してるのにHTMLが変わらねぇ!?」←これの対処法。

覚書です。



何をしたかったか



Javascriptにてブログを作っててすべての記事のデータを取得して、それをHTML上に表示するプログラムを作っていました。
プログラムの流れとして

  1. document.getElementByClassNameを使って記事を表示させるところのHTMLの要素を取得
  2. 記事のデータを取得(ここは問題ない)
  3. 取得した記事のデータを①に反映



って感じに作ってました。
そして実際の問題があった部分のコードがこちらです。

const MainContents = document.getElementsByClassName("main_contents");
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ここが②のコード(割愛)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for(var i = 0; i < articleData.length; i++) {                          //articleDataってのがブログの記事のデータです
    MainContents.innerHTML += "<div class='article_title'>"+articleData[i].title+"</div>";
}



では、このコードのどこが間違っていたかを解説していこうと思います。



原因



まず何が原因だったかというと、getElementByClassNameの仕様がわかっていなかったためです。



getElementsByClassNameは引数として

  • 指定したHTMLの要素
  • 指定した要素のHTMLCollection



という2つのものを返します。



はい。勘のいい方ならここでお気づきになったと思います。
getElementByClassNameは引数が配列なのです。

なのでinnerHTMLを指定する前に配列の要素を操作するために必要な[index]をつけなければいけないのです。



まとめ



まとめです。

  • getElementsByClassNameの引数は配列であるため、操作を行う際はインデックスを指定する必要がある

vimにて「E576: Error while reading ShaDa file: last entry specified that it occupies 42 bytes, but file ended earlier」というエラーが出た時の対処法。

覚書です。



対処法



まず、結論から行くとshadaファイルを消しましょう。
これですべて治ります。


shadaファイルってのがvimの終了時に状態を記録するviminfoっていうファイルのエイリアスらしくて、
そのファイルが何等かの原因で破損とかしてるからエラーが出るそうです。
なので消してあげましょう。


neovimのshadaファイルはC:\Users\ユーザー名\AppData\Local\nvim-data\shadaにあります