UEMarketplaceで集めたアセットの一覧を出力する

使い方

1.マケプレのページを開く。
2.ChromeDeveloperToolのコンソールを表示する。
3.下記のコードを流し込む。
4.ログにcsvが吐かれるのでコピーして保存。
5.Google SpreadSheetにインポート。
6.各行の高さ、各列の幅などを調整。

使い道...?

プロジェクト開始前に「この機能の仮実装は一旦このアセットで」とか、
「今回はこの開発支援プラグイン使おうか」とか相談するのに使えるかもしれません。

const VAULT_URL = 'https://www.unrealengine.com/marketplace/api/assets/vault'
const pagingQueryResp = await (await fetch(VAULT_URL + '?lang=ja&start=0&count=1')).json()
const loopMax = Math.ceil(pagingQueryResp.data.paging.total/100)
let buffer = ''
function writeColumn(body){
    buffer = buffer + '"'+body+'",'
}
for(let i=0;i<loopMax;i++)
{
    // 指定範囲のアセット情報を問い合わせ
    const requestUrl = VAULT_URL + '?lang=ja&start='+(i*100)+'&count=100'
    console.log(requestUrl)
    const response = await fetch(requestUrl)
    console.log(response)
    const responseJson = await response.json()
    console.log(responseJson)
    const elements = responseJson.data.elements
    for (let item of elements)
    {
        // 除外したいものがあれば除外
        if(item.seller.name != 'Epic Games' && item.seller.name != 'Quixel Megascans')
        {
            // ほしい内容を拾う
            writeColumn('=IMAGE(""'+item.thumbnail+'"", 1)')
            writeColumn(item.title)
            writeColumn(item.description.replaceAll('"', '""'))
            if(item.categories && 0 < item.categories.length){
                writeColumn(item.categories[0].name)
            }else{
                writeColumn('')
            }
            writeColumn(item.seller.name)
            writeColumn('https://www.unrealengine.com/marketplace/ja/item/'+item.catalogItemId)
            buffer = buffer + '\n'
        }
    }
}
// ログに結果を出力
console.log(buffer)

なんとなくだらしないコードになってしまった気がする...
Google SpreadSheetにインポートして調整した結果

f:id:eims:20210827192509p:plain
結果イメージ