Acho q tem um estranhamento inicial mesmo, ante a vastidão de possibilidades. Isso é normal... O 3ds tbm é bastante intimidatório de inicio xd... Vai vendo alguns tutoriais q vc pega...
Um exercicio q acho q deve ser bom pra vc, seria por exemplo ver varios videos sobre criação de personagem de primeira pessoa (tem bastante mesmo desses no yt), e alguns sobre detecção de colisão (sphere colision por exemplo), pra fazer uma coisa tipo assim olha:
-Cria um personagem tipico de primeira pessoa com a movimentação e pulo, etc (só isso já é um exercicio de relevância...)...
-(No caso aí, como é passeio arquitetônico, n vai precisar de model nenhum (pro personagem, pode fazer como se fosse um fantasma msm XD), aí c vc quiser fazer coisas como uma mão aparecendo qdo for interagir com as coisas, aí é 'outros 500', aí vc pensa nisso depois tbm se quiser e tal...)
-Configura os inputs pra ter tbm um chamado "Interagir" ou um nome parecido...
-Faz os inputs tbm pra controle ("joystick", eu recomendo o controle do Xbox 1 S q é Bluetooth (apesar q eu gostava bastante do controle do Xbox 360, só q esse tinha q ter um receptor q é super raro de achar (e eu dei o meu pro meu irmãozinho XD))) q como vai ter poucas ações, é viável e facil de pensar, e tbm evoca uma certa ludicidade no usuário, o que facilita à 'Imersão' no ambiente virtual...isso é relevante por motivos q no final do texto eu comento...
-Faz no 3ds mesmo um mockup de uma 'casa' ou qualquer 'interior arquitetônico' e tal, SÓ as paredes e chão (e teto hehe... to falando só a arquitetura mesmo, com os buracos pras coisas (portas, janelas, etc..)...
-Faz uma coisa simples mesmo, ou, se vc quiser, faz um corredor com varias portas e cada sala vc testa uma coisa diferente heheheh (isso é 'classico' de se fazer XD)...
-Nesse model, faz o vão das portas (e janelas, etc..) meio 'padrão' (leia-se: 'do tamanho pra casar certinho com as suas portas e janelas e etc..') e tal... :3..
-Faz um model de porta, com o batente, só q dois objetos separados a porta e o batente, note q os dois tem q ter o pivot no lugar correto pra porta girar, e no mesmo lugar, pra importar certinho em cima (e, como o batente n vai girar tbm, n tem problema deixar no mesmo lugar q o da porta (q vai girar XD...)) e evidentemente tbm pra porta girar certinho sem ter q fazer gambiarra na engine...
-Ou, uma janela de correr (com todas as parada lá de borda ao redor (onde a janela 'corre'), tem um nome arquitetônico bonito pra essas coisas, mas eu sou psicologo então esqueci disso hehe...), é a mesma coisa q a porta, a diferença é a q porta vai girar e a janela de correr vai se mover... mas o método e o conceito são, basicamente, os mesmos...
-No editor do UE4, depois de ter importado os models (e feito os materiais deles, e separados essas coisas certinho nos diretorios e ter nomeado tudo de uma maneira coerente tbm (=D)) vc cria um 'ator' da "porta" (ou janela, etc..).. q vc põe o nome de 'porta' msm (ou janela, ou se vc tiver varias portas, chama de algo como 'Porta_Interiores_X' e tal...)
-No ator 'Porta', põe o model da porta e o model do batente, na mesma coordenada (geralmente "zerinho" (0,0,0)), e deixa a porta como 'filho' (dependente) hierarquico do batente.
-Ainda no ator 'Porta', cria um volume de detecção de colisão (uma esfera, mas acho q talvez um box até seria mais simples..) e posiciona esse box (esse volume) na porta e com uma grossura q vc ache boa (a idéia é q, quando tiver colisão (ou intersecção) entre a 'colisão' do personagem e esse volume, e o usuario apertar a tecla (ou botão no caso de controle de xBox) de "Interagir", a porta vai abrir (ou, se tiver aberta, vai fechar) e tal...)...
-Ainda no ator 'Porta' (ou janela, etc.. no caso da janela é a mesma coisa só q ao invés de girar c vai mover...) , vc tem q criar uma variavel (um 'booleano', q é, resumidamente "sim ou não" ou "1 ou 0" e tal... se chama de "booleano" por causa de um cara fodão lá da lógica e matemática, q o sobrenome dele era Boole..) chamada, por exemplo "oPlayerTaPerto" (ou outro nome q vc imaginar na hora.. q nem esse q eu imaginei na hora aqui tbm..)..Delxa ela em 0 como padrão.
-Cria tbm outra variavel do tipo booleano, chamada (por exemplo) "aPortaTaAberta". e deixa essa em 0 (falso) como padrão tbm (ou em verdadeiro caso a porta começe ja aberta, etc...)...
-Derivando do volume de colisão lá do ator 'Porta' (isso ainda dentro do ator 'Porta'..), (vc clica e arrasta o nome la do volume pra area do blueprint, pra fazer uma referência), tem um node pra quando começa o overlap (entre a colisão do personagem e do ator 'Porta'), acho q chama "Component Begin Overlap", é um node de execução (ou seja, depois dele vão estar as coisas q vão acontecer quando a colisão do player começar a fazer intersecção com a colisão do box lá q vc pos)...
-A unica coisa que vai ser feita, nesse Begin Overlap, é q a variavel "oPlayerTaPerto" vai ser mudada pra "True" ou "Verdadeiro" ou "1" (:3)...
-Tbm derivando do node do volume de colisão, chama um node chamado "Component End Overlap", e a unica coisa q vai ser feita desse aí é q a variavel "oPlayerTaPerto" vai ser mudada pra "Falso" (ou "0", etc..)...
-Então (ainda no ator "porta" e tal), vc tem q criar um node de execução pro "Interagir" q vc tinha definidos nos inputs e tal..
-Desse node a 'linha lá' (de execução de comandos xd (a linha branca)) vai pra um "Branch" (se vc segurar 'B' e clicar no campo de edição lá do blueprint já aparece esse node, de tão ubíquo q ele é..), põe um 'Branch' ali e liga da (saída da) execução do input lá "Interagir" pra esse branch... o 'Branch' aí nos blueprint do UE4 é (literalmente) o mesmo q um "If" ("se") e "Else" ("em outro caso") na programação...
- Nesse branch, na entrada de condição (a vermelha), vc põe o (a variavel) "oPlayerTaPerto" (ou seja, o que saír do 'True' do Branch, vai ser feito UNICAMENTE quando "oPlayerTaPerto" (q tá sendo definido por aqueles comandos usando um box de colisão, etc...) for "Verdadeiro"...)
- Saíndo desse branch, do false n sai nada, do true vai pra outro branch (e, se vc fosse por ícones clicáveis 3d por exemplo, esse seria o momento deles aparecerem), só q nesse a condição vai ser a variavel (booleano) "aPortaTaAberta" (isso vai fazer a porta abrir se tiver fechada, e fechar, se tiver aberta...).
-Crie um node chamado "Timeline" (isso faz tipo animações de parametros no ue4 e tal..).. o update do timeline vc liga num node pra girar o componente porta (não o batente), e o valor (na timeline) vai ser uma animação do valor da rotação (imagino q em Z) do componente 'porta', começando com ele fechado e terminando com ele aberto...
-E então naquele ultimo Branch (o q a condição é "aPortaTaAberta") do "false" vc liga pro "Reverse From End" do Timeline... isso vai fazer com q, caso a porta esteja aberta, se vc "interagir" com a porta, ela fecha (e vice-versa tbm e tal, se a porta tiver fechada e vc interagir ela abre, etc...)...
Acho q esse bang da porta abrir e fechar é um exercicio bom (depois de ter pegado legal, faz umas gavetas, ou as portas com maçanetas q giram, e só interagem se vc clicar num icone (q ficaria em cima da maçaneta no caso da porta, ou em cima do puxador no caso de gaveta, etc..) q só aparece se o player estiver perto, etc...), só vc ir vendo varios tutos aí q c pega a manha relativamente rapido e tal...
Eu ia falar mais coisa mas esqueci.. mas acho q é mais ou menos isso aí mesmo :)
@edit: Ah é.. depois de abrir a porta, tem q definir a variavel "aPortaTaAberta" como 'true' ("Verdadeiro" ou 1), e depois de terminar de fechar a porta de volta tem q definir a variavel "aPortaTaAberta" como 'false'...
@edit2: Ah é.. tem q pegar a rotação local da porta antes de aplicar o giro da timeline, e então adicionar o giro à porta, etc.. etc...
@edit3: Ah é, uma boa maneira de entender os "booleanos" mais basicos é vc pensar nessas variaveis como uma frase terminando com ponto de interrogação, por exemplo, dessas aí q eu mencionei do exemplo, tem essas "questões de relevância" pro ator lá... O Player tá perto?.. A Porta tá Aberta?.. etc.. xd...
A Beleza está entre a Ética e a Razão!..